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