10d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks// This file is automatically generated from
20d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks// frameworks/rs/tests/java_api/RSUnitTests/RSUnitTests.py
30d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks/*
40d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * Copyright (C) 2017 The Android Open Source Project
50d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks *
60d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * Licensed under the Apache License, Version 2.0 (the "License");
70d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * you may not use this file except in compliance with the License.
80d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * You may obtain a copy of the License at
90d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks *
100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks *      http://www.apache.org/licenses/LICENSE-2.0
110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks *
120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * Unless required by applicable law or agreed to in writing, software
130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * distributed under the License is distributed on an "AS IS" BASIS,
140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * See the License for the specific language governing permissions and
160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * limitations under the License.
170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks */
180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubankspackage com.android.rs.unittest;
200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.content.Context;
220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.content.res.Resources;
230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.support.v8.renderscript.Allocation;
240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.support.v8.renderscript.Element;
250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.support.v8.renderscript.RenderScript;
260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.support.v8.renderscript.Type;
270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport java.util.Random;
290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubankspublic class UT_alloc_copy extends UnitTest {
310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public UT_alloc_copy(Context ctx) {
330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        super("Allocation CopyTo", ctx);
340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void run() {
370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        RenderScript mRS = createRenderScript(false);
380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeTo_Byte(mRS);
400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeTo_Short(mRS);
410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeTo_Int(mRS);
420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeTo_Float(mRS);
430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeTo_Long(mRS);
440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy2DRangeTo_Byte(mRS);
460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy2DRangeTo_Short(mRS);
470d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy2DRangeTo_Int(mRS);
480d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy2DRangeTo_Float(mRS);
490d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy2DRangeTo_Long(mRS);
500d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
510d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeToUnchecked_Byte(mRS);
520d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeToUnchecked_Short(mRS);
530d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeToUnchecked_Int(mRS);
540d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeToUnchecked_Float(mRS);
550d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        allocation_copy1DRangeToUnchecked_Long(mRS);
560d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
570d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        mRS.destroy();
580d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        passTest();
590d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
600d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
610d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeTo_Byte(RenderScript mRS) {
620d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
630d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
640d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
650d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
660d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        byte[] inArray = new byte[arr_len];
670d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        byte[] outArray = new byte[arr_len];
680d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        random.nextBytes(inArray);
690d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
700d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8(mRS));
710d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
720d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
730d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
740d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
750d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
760d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeTo(offset, count, outArray);
770d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
780d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
790d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
800d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
810d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
820d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
830d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
840d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
850d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
860d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
870d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0) {
880d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
890d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
900d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
910d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
920d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
930d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
940d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Byte TEST PASSED");
950d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
960d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
970d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
980d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
990d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1000d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeTo_Short(RenderScript mRS) {
1010d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
1020d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
1030d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
1040d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1050d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        short[] inArray = new short[arr_len];
1060d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        short[] outArray = new short[arr_len];
1070d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1080d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
1090d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = (short)random.nextInt();
1100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16(mRS));
1130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
1140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
1150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
1160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
1170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
1180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeTo(offset, count, outArray);
1190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
1210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
1220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
1230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
1240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
1250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
1260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
1270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
1290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0) {
1300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
1310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
1320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
1330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
1340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
1360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Short TEST PASSED");
1370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
1380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
1390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
1410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeTo_Int(RenderScript mRS) {
1430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
1440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
1450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
1460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1470d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int[] inArray = new int[arr_len];
1480d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int[] outArray = new int[arr_len];
1490d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1500d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
1510d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextInt();
1520d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1530d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1540d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS));
1550d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
1560d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
1570d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
1580d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
1590d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
1600d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeTo(offset, count, outArray);
1610d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1620d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
1630d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
1640d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
1650d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
1660d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
1670d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
1680d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
1690d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1700d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
1710d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0) {
1720d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
1730d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
1740d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
1750d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
1760d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1770d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
1780d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Int TEST PASSED");
1790d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
1800d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
1810d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1820d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
1830d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1840d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeTo_Float(RenderScript mRS) {
1850d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
1860d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
1870d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
1880d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1890d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        float[] inArray = new float[arr_len];
1900d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        float[] outArray = new float[arr_len];
1910d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1920d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
1930d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextFloat();
1940d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
1950d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1960d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32(mRS));
1970d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
1980d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
1990d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
2000d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
2010d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
2020d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeTo(offset, count, outArray);
2030d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2040d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
2050d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
2060d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
2070d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
2080d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
2090d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
2100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
2110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
2120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
2130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0f) {
2140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
2150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
2160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
2170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
2180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
2190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
2200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Float TEST PASSED");
2210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
2220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
2230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
2240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
2250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeTo_Long(RenderScript mRS) {
2270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
2280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
2290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
2300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        long[] inArray = new long[arr_len];
2320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        long[] outArray = new long[arr_len];
2330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
2350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextLong();
2360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
2370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64(mRS));
2390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
2400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
2410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
2420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
2430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
2440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeTo(offset, count, outArray);
2450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
2470d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
2480d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
2490d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
2500d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
2510d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
2520d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
2530d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
2540d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
2550d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0) {
2560d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
2570d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
2580d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
2590d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
2600d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
2610d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
2620d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Long TEST PASSED");
2630d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
2640d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
2650d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
2660d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
2670d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2680d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy2DRangeTo_Byte(RenderScript mRS) {
2690d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
2700d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(128);
2710d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int height = random.nextInt(128);
2720d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xoff = random.nextInt(width);
2730d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int yoff = random.nextInt(height);
2740d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xcount = width - xoff;
2750d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int ycount = height - yoff;
2760d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = xcount * ycount;
2770d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2780d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        byte[] inArray = new byte[arr_len];
2790d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        byte[] outArray = new byte[arr_len];
2800d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        random.nextBytes(inArray);
2810d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2820d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8(mRS));
2830d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width).setY(height);
2840d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
2850d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray);
2860d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray);
2870d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
2880d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
2890d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
2900d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
2910d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
2920d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
2930d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
2940d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
2950d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
2960d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
2970d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Byte TEST PASSED");
2980d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
2990d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
3000d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
3010d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
3020d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3030d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy2DRangeTo_Short(RenderScript mRS) {
3040d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
3050d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(128);
3060d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int height = random.nextInt(128);
3070d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xoff = random.nextInt(width);
3080d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int yoff = random.nextInt(height);
3090d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xcount = width - xoff;
3100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int ycount = height - yoff;
3110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = xcount * ycount;
3120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        short[] inArray = new short[arr_len];
3140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        short[] outArray = new short[arr_len];
3150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
3170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = (short)random.nextInt();
3180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
3190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16(mRS));
3210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width).setY(height);
3220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
3230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray);
3240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray);
3250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
3270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
3280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
3290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
3300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
3310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
3320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
3330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
3340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
3350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Short TEST PASSED");
3360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
3370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
3380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
3390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
3400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy2DRangeTo_Int(RenderScript mRS) {
3420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
3430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(128);
3440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int height = random.nextInt(128);
3450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xoff = random.nextInt(width);
3460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int yoff = random.nextInt(height);
3470d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xcount = width - xoff;
3480d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int ycount = height - yoff;
3490d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = xcount * ycount;
3500d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3510d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int[] inArray = new int[arr_len];
3520d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int[] outArray = new int[arr_len];
3530d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3540d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
3550d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextInt();
3560d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
3570d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3580d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS));
3590d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width).setY(height);
3600d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
3610d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray);
3620d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray);
3630d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3640d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
3650d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
3660d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
3670d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
3680d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
3690d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
3700d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
3710d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
3720d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
3730d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Int TEST PASSED");
3740d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
3750d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
3760d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
3770d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
3780d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3790d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy2DRangeTo_Float(RenderScript mRS) {
3800d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
3810d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(128);
3820d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int height = random.nextInt(128);
3830d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xoff = random.nextInt(width);
3840d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int yoff = random.nextInt(height);
3850d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xcount = width - xoff;
3860d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int ycount = height - yoff;
3870d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = xcount * ycount;
3880d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3890d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        float[] inArray = new float[arr_len];
3900d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        float[] outArray = new float[arr_len];
3910d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3920d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
3930d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextFloat();
3940d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
3950d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
3960d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32(mRS));
3970d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width).setY(height);
3980d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
3990d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray);
4000d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray);
4010d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4020d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
4030d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
4040d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
4050d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
4060d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
4070d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
4080d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
4090d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
4100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
4110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Float TEST PASSED");
4120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
4130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
4140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
4150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
4160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy2DRangeTo_Long(RenderScript mRS) {
4180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
4190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(128);
4200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int height = random.nextInt(128);
4210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xoff = random.nextInt(width);
4220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int yoff = random.nextInt(height);
4230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int xcount = width - xoff;
4240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int ycount = height - yoff;
4250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = xcount * ycount;
4260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        long[] inArray = new long[arr_len];
4280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        long[] outArray = new long[arr_len];
4290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
4310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextLong();
4320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
4330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64(mRS));
4350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width).setY(height);
4360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
4370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray);
4380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray);
4390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
4410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
4420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
4430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
4440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
4450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
4460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
4470d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
4480d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
4490d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Long TEST PASSED");
4500d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
4510d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
4520d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
4530d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
4540d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4550d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4560d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeToUnchecked_Byte(RenderScript mRS) {
4570d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
4580d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
4590d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
4600d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4610d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        byte[] inArray = new byte[arr_len];
4620d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        byte[] outArray = new byte[arr_len];
4630d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        random.nextBytes(inArray);
4640d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4650d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8(mRS));
4660d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
4670d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
4680d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
4690d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
4700d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
4710d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeToUnchecked(offset, count, outArray);
4720d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4730d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
4740d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
4750d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
4760d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
4770d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
4780d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
4790d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
4800d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
4810d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
4820d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0) {
4830d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
4840d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
4850d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
4860d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
4870d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
4880d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
4890d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Byte TEST PASSED");
4900d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
4910d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
4920d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
4930d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
4940d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
4950d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeToUnchecked_Short(RenderScript mRS) {
4960d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
4970d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
4980d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
4990d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5000d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        short[] inArray = new short[arr_len];
5010d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        short[] outArray = new short[arr_len];
5020d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5030d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
5040d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = (short)random.nextInt();
5050d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5060d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5070d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16(mRS));
5080d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
5090d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
5100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
5110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
5120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
5130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeToUnchecked(offset, count, outArray);
5140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
5160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
5170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
5180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
5190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
5200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
5210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
5220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
5240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0) {
5250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
5260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
5270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
5280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
5290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
5310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Short TEST PASSED");
5320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
5330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
5340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
5360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeToUnchecked_Int(RenderScript mRS) {
5380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
5390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
5400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
5410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int[] inArray = new int[arr_len];
5430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int[] outArray = new int[arr_len];
5440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
5460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextInt();
5470d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5480d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5490d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS));
5500d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
5510d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
5520d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
5530d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
5540d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
5550d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeToUnchecked(offset, count, outArray);
5560d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5570d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
5580d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
5590d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
5600d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
5610d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
5620d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
5630d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
5640d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5650d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
5660d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0) {
5670d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
5680d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
5690d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
5700d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
5710d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5720d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
5730d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Int TEST PASSED");
5740d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
5750d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
5760d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5770d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
5780d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5790d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeToUnchecked_Float(RenderScript mRS) {
5800d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
5810d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
5820d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
5830d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5840d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        float[] inArray = new float[arr_len];
5850d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        float[] outArray = new float[arr_len];
5860d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5870d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
5880d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextFloat();
5890d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
5900d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5910d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32(mRS));
5920d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
5930d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
5940d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
5950d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
5960d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
5970d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeToUnchecked(offset, count, outArray);
5980d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
5990d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
6000d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
6010d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
6020d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
6030d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
6040d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
6050d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
6060d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
6070d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
6080d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0f) {
6090d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
6100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
6110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
6120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
6130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
6140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
6150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Float TEST PASSED");
6160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
6170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
6180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
6190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
6200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
6210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void allocation_copy1DRangeToUnchecked_Long(RenderScript mRS) {
6220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Random random = new Random(0x172d8ab9);
6230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int width = random.nextInt(512);
6240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int arr_len = width;
6250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
6260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        long[] inArray = new long[arr_len];
6270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        long[] outArray = new long[arr_len];
6280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
6290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < arr_len; i++) {
6300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            inArray[i] = random.nextLong();
6310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
6320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
6330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64(mRS));
6340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        typeBuilder.setX(width);
6350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create());
6360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int offset = random.nextInt(arr_len);
6370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        int count = arr_len - offset;
6380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeFrom(offset, count, inArray);
6390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        alloc.copy1DRangeToUnchecked(offset, count, outArray);
6400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
6410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        boolean result = true;
6420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = 0; i < count; i++) {
6430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (inArray[i] != outArray[i]) {
6440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
6450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
6460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
6470d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
6480d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
6490d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        for (int i = count; i < arr_len; i++) {
6500d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            if (outArray[i] != 0) {
6510d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                result = false;
6520d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]);
6530d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                break;
6540d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            }
6550d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
6560d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        if (result) {
6570d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Long TEST PASSED");
6580d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        } else {
6590d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks            failTest();
6600d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        }
6610d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
6620d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks}
663