/*
* Copyright ( C ) 2024 The Android Open Source Project
*
* Licensed under the Apache License , Version 2 . 0 ( the " License " ) ;
* you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an " AS IS " BASIS ,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
* See the License for the specific language governing permissions and
* limitations under the License .
*/
class Main {
private static class ByteArrayTests {
public static byte [] init(byte [] arr) {
for (byte i = 0 ; i < arr.length; i++) {
arr[i] = (byte ) i;
}
return arr;
}
public static void assertEquals(int expected, int actual) {
if (expected != actual) {
throw new Error("Expected " + expected + ", got " + actual);
}
}
public static byte [] createArrayOfZeroes(int size) {
byte [] arr = new byte [size];
return arr;
}
public static byte [] createIncrementedArray(int size) {
byte [] arr = new byte [size];
init(arr);
return arr;
}
public static void checkIncrementedArray(byte [] dst) {
for (byte i = 0 ; i < dst.length; i++) {
assertEquals(i, dst[i]);
}
}
public static void $noinline$test1(byte [] src, byte [] dst) {
System.arraycopy(src, 0 , dst, 0 , 15 );
}
public static void $noinline$test2(byte [] src, byte [] dst) {
System.arraycopy(src, 0 , dst, 0 , 127 );
}
public static byte [] $noinline$test3() {
byte size = 15 ;
byte [] src = new byte [size];
src = init(src);
byte [] dst = new byte [size];
System.arraycopy(src, 0 , dst, 0 , size);
return dst;
}
public static byte [] $noinline$test4() {
int size = 127 ;
byte [] src = new byte [size];
src = init(src);
byte [] dst = new byte [size];
System.arraycopy(src, 0 , dst, 0 , size);
return dst;
}
public static byte [] $noinline$test5() {
byte [] src = new byte [80 ];
src = init(src);
byte [] dst = new byte [80 ];
System.arraycopy(src, 0 , dst, 0 , 80 );
return dst;
}
public static byte [] $noinline$test6() {
byte [] src = new byte [127 ];
src = init(src);
byte [] dst = new byte [127 ];
System.arraycopy(src, 0 , dst, 100 , 27 );
return dst;
}
public static void check6(byte [] dst) {
for (byte i = 0 ; i < 100 ; i++) {
assertEquals(0 , dst[i]);
}
for (byte i = 100 ; i < 127 ; i++) {
assertEquals(i - 100 , dst[i]);
}
}
public static byte [] $noinline$test7() {
byte [] src = new byte [127 ];
src = init(src);
System.arraycopy(src, 0 , src, 100 , 27 );
return src;
}
public static void check7(byte [] dst) {
for (byte i = 0 ; i < 100 ; i++) {
assertEquals(i, dst[i]);
}
for (byte i = 100 ; i < 127 ; i++) {
assertEquals(i - 100 , dst[i]);
}
}
public static byte [] $noinline$test8() {
byte [] src = new byte [127 ];
src = init(src);
System.arraycopy(src, 100 , src, 0 , 27 );
return src;
}
public static void check8(byte [] dst) {
for (byte i = 0 ; i < 27 ; i++) {
assertEquals(100 + i, dst[i]);
}
for (byte i = 27 ; i < 127 ; i++) {
assertEquals(i, dst[i]);
}
}
public static void $noinline$test9(byte [] src, byte [] dst, byte i) {
System.arraycopy(src, 0 , dst, 0 , i);
}
public static void runTests() {
System.out.print("[ByteArrayTests]: " );
byte [] src15 = createIncrementedArray(15 );
byte [] dst15 = createArrayOfZeroes(15 );
$noinline$test1(src15, dst15);
checkIncrementedArray(dst15);
byte [] src150 = createIncrementedArray(127 );
byte [] dst150 = createArrayOfZeroes(127 );
$noinline$test2(src150, dst150);
checkIncrementedArray(dst150);
checkIncrementedArray($noinline$test3());
checkIncrementedArray($noinline$test4());
checkIncrementedArray($noinline$test5());
check6($noinline$test6());
check7($noinline$test7());
check8($noinline$test8());
for (byte i = 1 ; i < 127 ; i++) {
byte [] src = createIncrementedArray(i);
byte [] dst = createArrayOfZeroes(i);
$noinline$test9(src, dst, i);
checkIncrementedArray(dst);
}
System.out.println("passed" );
}
}
private static class CharArrayTests {
public static char [] init(char [] arr) {
for (int i = 0 ; i < arr.length; i++) {
arr[i] = (char ) i;
}
return arr;
}
public static void assertEquals(int expected, int actual) {
if (expected != actual) {
throw new Error("Expected " + expected + ", got " + actual);
}
}
public static char [] createArrayOfZeroes(int size) {
char [] arr = new char [size];
return arr;
}
public static char [] createIncrementedArray(int size) {
char [] arr = new char [size];
init(arr);
return arr;
}
public static void checkIncrementedArray(char [] dst) {
for (int i = 0 ; i < dst.length; i++) {
assertEquals(i, dst[i]);
}
}
public static void $noinline$test1(char [] src, char [] dst) {
System.arraycopy(src, 0 , dst, 0 , 15 );
}
public static void $noinline$test2(char [] src, char [] dst) {
System.arraycopy(src, 0 , dst, 0 , 150 );
}
public static char [] $noinline$test3() {
int size = 15 ;
char [] src = new char [size];
src = init(src);
char [] dst = new char [size];
System.arraycopy(src, 0 , dst, 0 , size);
return dst;
}
public static char [] $noinline$test4() {
int size = 150 ;
char [] src = new char [size];
src = init(src);
char [] dst = new char [size];
System.arraycopy(src, 0 , dst, 0 , size);
return dst;
}
public static char [] $noinline$test5() {
char [] src = new char [80 ];
src = init(src);
char [] dst = new char [80 ];
System.arraycopy(src, 0 , dst, 0 , 80 );
return dst;
}
public static char [] $noinline$test6() {
char [] src = new char [150 ];
src = init(src);
char [] dst = new char [150 ];
System.arraycopy(src, 0 , dst, 100 , 50 );
return dst;
}
public static void check6(char [] dst) {
for (int i = 0 ; i < 100 ; i++) {
assertEquals(0 , dst[i]);
}
for (int i = 100 ; i < 150 ; i++) {
assertEquals(i-100 , dst[i]);
}
}
public static char [] $noinline$test7() {
char [] src = new char [150 ];
src = init(src);
System.arraycopy(src, 0 , src, 100 , 50 );
return src;
}
public static void check7(char [] dst) {
for (int i = 0 ; i < 100 ; i++) {
assertEquals(i, dst[i]);
}
for (int i = 100 ; i < 150 ; i++) {
assertEquals(i - 100 , dst[i]);
}
}
public static char [] $noinline$test8() {
char [] src = new char [150 ];
src = init(src);
System.arraycopy(src, 100 , src, 0 , 50 );
return src;
}
public static void check8(char [] dst) {
for (int i = 0 ; i < 50 ; i++) {
assertEquals(100 + i, dst[i]);
}
for (int i = 50 ; i < 150 ; i++) {
assertEquals(i, dst[i]);
}
}
public static void $noinline$test9(char [] src, char [] dst, int i) {
System.arraycopy(src, 0 , dst, 0 , i);
}
public static void runTests() {
System.out.print("[CharArrayTests]: " );
char [] src15 = createIncrementedArray(15 );
char [] dst15 = createArrayOfZeroes(15 );
$noinline$test1(src15, dst15);
checkIncrementedArray(dst15);
char [] src150 = createIncrementedArray(150 );
char [] dst150 = createArrayOfZeroes(150 );
$noinline$test2(src150, dst150);
checkIncrementedArray(dst150);
checkIncrementedArray($noinline$test3());
checkIncrementedArray($noinline$test4());
checkIncrementedArray($noinline$test5());
check6($noinline$test6());
check7($noinline$test7());
check8($noinline$test8());
for (int i = 1 ; i < 256 ; i++) {
char [] src = createIncrementedArray(i);
char [] dst = createArrayOfZeroes(i);
$noinline$test9(src, dst, i);
checkIncrementedArray(dst);
}
System.out.println("passed" );
}
}
private static class IntArrayTests {
public static int [] init(int [] arr) {
for (int i = 0 ; i < arr.length; i++) {
arr[i] = (int ) i;
}
return arr;
}
public static void assertEquals(int expected, int actual) {
if (expected != actual) {
throw new Error("Expected " + expected + ", got " + actual);
}
}
public static int [] createArrayOfZeroes(int size) {
int [] arr = new int [size];
return arr;
}
public static int [] createIncrementedArray(int size) {
int [] arr = new int [size];
init(arr);
return arr;
}
public static void checkIncrementedArray(int [] dst) {
for (int i = 0 ; i < dst.length; i++) {
assertEquals(i, dst[i]);
}
}
public static void $noinline$test1(int [] src, int [] dst) {
System.arraycopy(src, 0 , dst, 0 , 15 );
}
public static void $noinline$test2(int [] src, int [] dst) {
System.arraycopy(src, 0 , dst, 0 , 150 );
}
public static int [] $noinline$test3() {
int size = 15 ;
int [] src = new int [size];
src = init(src);
int [] dst = new int [size];
System.arraycopy(src, 0 , dst, 0 , size);
return dst;
}
public static int [] $noinline$test4() {
int size = 150 ;
int [] src = new int [size];
src = init(src);
int [] dst = new int [size];
System.arraycopy(src, 0 , dst, 0 , size);
return dst;
}
public static int [] $noinline$test5() {
int [] src = new int [80 ];
src = init(src);
int [] dst = new int [80 ];
System.arraycopy(src, 0 , dst, 0 , 80 );
return dst;
}
public static int [] $noinline$test6() {
int [] src = new int [150 ];
src = init(src);
int [] dst = new int [150 ];
System.arraycopy(src, 0 , dst, 100 , 50 );
return dst;
}
public static void check6(int [] dst) {
for (int i = 0 ; i < 100 ; i++) {
assertEquals(0 , dst[i]);
}
for (int i = 100 ; i < 150 ; i++) {
assertEquals(i-100 , dst[i]);
}
}
public static int [] $noinline$test7() {
int [] src = new int [150 ];
src = init(src);
System.arraycopy(src, 0 , src, 100 , 50 );
return src;
}
public static void check7(int [] dst) {
for (int i = 0 ; i < 100 ; i++) {
assertEquals(i, dst[i]);
}
for (int i = 100 ; i < 150 ; i++) {
assertEquals(i - 100 , dst[i]);
}
}
public static int [] $noinline$test8() {
int [] src = new int [150 ];
src = init(src);
System.arraycopy(src, 100 , src, 0 , 50 );
return src;
}
public static void check8(int [] dst) {
for (int i = 0 ; i < 50 ; i++) {
assertEquals(100 + i, dst[i]);
}
for (int i = 50 ; i < 150 ; i++) {
assertEquals(i, dst[i]);
}
}
public static void $noinline$test9(int [] src, int [] dst, int i) {
System.arraycopy(src, 0 , dst, 0 , i);
}
public static void runTests() {
System.out.print("[IntArrayTests]: " );
int [] src15 = createIncrementedArray(15 );
int [] dst15 = createArrayOfZeroes(15 );
$noinline$test1(src15, dst15);
checkIncrementedArray(dst15);
int [] src150 = createIncrementedArray(150 );
int [] dst150 = createArrayOfZeroes(150 );
$noinline$test2(src150, dst150);
checkIncrementedArray(dst150);
checkIncrementedArray($noinline$test3());
checkIncrementedArray($noinline$test4());
checkIncrementedArray($noinline$test5());
check6($noinline$test6());
check7($noinline$test7());
check8($noinline$test8());
for (int i = 1 ; i < 256 ; i++) {
int [] src = createIncrementedArray(i);
int [] dst = createArrayOfZeroes(i);
$noinline$test9(src, dst, i);
checkIncrementedArray(dst);
}
System.out.println("passed" );
}
}
public static void main(String[] args) {
ByteArrayTests.runTests();
CharArrayTests.runTests();
IntArrayTests.runTests();
}
}
Messung V0.5 in Prozent C=90 H=88 G=88
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-29)
¤
*© Formatika GbR, Deutschland