16cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks/* 26cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * Copyright (C) 2017 The Android Open Source Project 36cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * 46cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * Licensed under the Apache License, Version 2.0 (the "License"); 56cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * you may not use this file except in compliance with the License. 66cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * You may obtain a copy of the License at 76cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * 86cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * http://www.apache.org/licenses/LICENSE-2.0 96cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * 106cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * Unless required by applicable law or agreed to in writing, software 116cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * distributed under the License is distributed on an "AS IS" BASIS, 126cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * See the License for the specific language governing permissions and 146cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * limitations under the License. 156cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks */ 166cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 176cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubankspackage com.android.rs.unittest; 186cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 196cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.content.Context; 206cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.content.res.Resources; 216cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.Allocation; 226cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.Element; 236cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.RenderScript; 246cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.Type; 256cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 266cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport java.util.Random; 276cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 286cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubankspublic class UT_alloc_copy extends UnitTest { 296cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 306cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public UT_alloc_copy(Context ctx) { 316cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks super("Allocation CopyTo", ctx); 326cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 336cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 346cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void run() { 356cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks RenderScript mRS = createRenderScript(false); 366cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 376cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeTo_Byte(mRS); 386cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeTo_Short(mRS); 396cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeTo_Int(mRS); 406cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeTo_Float(mRS); 416cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeTo_Long(mRS); 426cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 436cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy2DRangeTo_Byte(mRS); 446cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy2DRangeTo_Short(mRS); 456cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy2DRangeTo_Int(mRS); 466cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy2DRangeTo_Float(mRS); 476cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy2DRangeTo_Long(mRS); 486cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 496cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeToUnchecked_Byte(mRS); 506cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeToUnchecked_Short(mRS); 516cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeToUnchecked_Int(mRS); 526cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeToUnchecked_Float(mRS); 536cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks allocation_copy1DRangeToUnchecked_Long(mRS); 546cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 556cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks mRS.destroy(); 566cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks passTest(); 576cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 586cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 596cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeTo_Byte(RenderScript mRS) { 606cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 616cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 626cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 636cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 646cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks byte[] inArray = new byte[arr_len]; 656cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks byte[] outArray = new byte[arr_len]; 666cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks random.nextBytes(inArray); 676cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 686cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8(mRS)); 696cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 706cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 716cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 726cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 736cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 746cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeTo(offset, count, outArray); 756cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 766cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 776cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 786cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 796cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 806cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 816cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 826cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 836cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 846cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 856cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0) { 866cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 876cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 886cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 896cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 906cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 916cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 926cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Byte TEST PASSED"); 936cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 946cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 956cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 966cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 976cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 986cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeTo_Short(RenderScript mRS) { 996cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 1006cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 1016cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 1026cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1036cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks short[] inArray = new short[arr_len]; 1046cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks short[] outArray = new short[arr_len]; 1056cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1066cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 1076cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = (short)random.nextInt(); 1086cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1096cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1106cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16(mRS)); 1116cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 1126cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1136cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 1146cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 1156cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 1166cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeTo(offset, count, outArray); 1176cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1186cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 1196cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 1206cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 1216cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 1226cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1236cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 1246cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1256cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1266cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 1276cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0) { 1286cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 1296cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1306cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 1316cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1326cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1336cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 1346cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Short TEST PASSED"); 1356cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 1366cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 1376cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1386cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1396cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1406cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeTo_Int(RenderScript mRS) { 1416cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 1426cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 1436cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 1446cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1456cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int[] inArray = new int[arr_len]; 1466cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int[] outArray = new int[arr_len]; 1476cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1486cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 1496cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextInt(); 1506cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1516cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1526cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS)); 1536cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 1546cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1556cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 1566cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 1576cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 1586cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeTo(offset, count, outArray); 1596cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1606cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 1616cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 1626cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 1636cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 1646cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1656cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 1666cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1676cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1686cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 1696cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0) { 1706cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 1716cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1726cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 1736cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1746cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1756cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 1766cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Int TEST PASSED"); 1776cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 1786cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 1796cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1806cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1816cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1826cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeTo_Float(RenderScript mRS) { 1836cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 1846cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 1856cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 1866cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1876cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks float[] inArray = new float[arr_len]; 1886cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks float[] outArray = new float[arr_len]; 1896cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1906cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 1916cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextFloat(); 1926cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 1936cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 1946cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32(mRS)); 1956cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 1966cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1976cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 1986cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 1996cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 2006cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeTo(offset, count, outArray); 2016cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2026cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 2036cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 2046cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 2056cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 2066cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 2076cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 2086cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2096cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2106cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 2116cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0f) { 2126cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 2136cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 2146cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 2156cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2166cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2176cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 2186cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Float TEST PASSED"); 2196cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 2206cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 2216cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2226cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2236cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2246cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeTo_Long(RenderScript mRS) { 2256cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 2266cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 2276cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 2286cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2296cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks long[] inArray = new long[arr_len]; 2306cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks long[] outArray = new long[arr_len]; 2316cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2326cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 2336cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextLong(); 2346cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2356cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2366cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64(mRS)); 2376cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 2386cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 2396cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 2406cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 2416cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 2426cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeTo(offset, count, outArray); 2436cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2446cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 2456cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 2466cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 2476cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 2486cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 2496cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 2506cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2516cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2526cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 2536cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0) { 2546cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 2556cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 2566cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 2576cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2586cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2596cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 2606cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeTo_Long TEST PASSED"); 2616cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 2626cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 2636cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2646cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2656cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2666cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy2DRangeTo_Byte(RenderScript mRS) { 2676cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 2686cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(128); 2696cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int height = random.nextInt(128); 2706cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xoff = random.nextInt(width); 2716cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int yoff = random.nextInt(height); 2726cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xcount = width - xoff; 2736cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int ycount = height - yoff; 2746cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = xcount * ycount; 2756cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2766cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks byte[] inArray = new byte[arr_len]; 2776cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks byte[] outArray = new byte[arr_len]; 2786cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks random.nextBytes(inArray); 2796cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2806cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8(mRS)); 2816cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width).setY(height); 2826cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 2836cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 2846cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 2856cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 2866cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 2876cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 2886cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 2896cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 2906cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 2916cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 2926cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2936cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2946cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 2956cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Byte TEST PASSED"); 2966cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 2976cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 2986cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 2996cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3006cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3016cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy2DRangeTo_Short(RenderScript mRS) { 3026cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 3036cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(128); 3046cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int height = random.nextInt(128); 3056cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xoff = random.nextInt(width); 3066cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int yoff = random.nextInt(height); 3076cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xcount = width - xoff; 3086cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int ycount = height - yoff; 3096cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = xcount * ycount; 3106cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3116cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks short[] inArray = new short[arr_len]; 3126cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks short[] outArray = new short[arr_len]; 3136cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3146cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 3156cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = (short)random.nextInt(); 3166cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3176cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3186cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16(mRS)); 3196cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width).setY(height); 3206cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 3216cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 3226cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 3236cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3246cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 3256cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 3266cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 3276cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 3286cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 3296cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 3306cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3316cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3326cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 3336cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Short TEST PASSED"); 3346cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 3356cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 3366cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3376cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3386cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3396cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy2DRangeTo_Int(RenderScript mRS) { 3406cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 3416cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(128); 3426cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int height = random.nextInt(128); 3436cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xoff = random.nextInt(width); 3446cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int yoff = random.nextInt(height); 3456cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xcount = width - xoff; 3466cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int ycount = height - yoff; 3476cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = xcount * ycount; 3486cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3496cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int[] inArray = new int[arr_len]; 3506cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int[] outArray = new int[arr_len]; 3516cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3526cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 3536cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextInt(); 3546cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3556cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3566cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS)); 3576cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width).setY(height); 3586cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 3596cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 3606cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 3616cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3626cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 3636cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 3646cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 3656cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 3666cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 3676cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 3686cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3696cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3706cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 3716cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Int TEST PASSED"); 3726cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 3736cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 3746cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3756cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3766cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3776cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy2DRangeTo_Float(RenderScript mRS) { 3786cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 3796cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(128); 3806cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int height = random.nextInt(128); 3816cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xoff = random.nextInt(width); 3826cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int yoff = random.nextInt(height); 3836cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xcount = width - xoff; 3846cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int ycount = height - yoff; 3856cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = xcount * ycount; 3866cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3876cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks float[] inArray = new float[arr_len]; 3886cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks float[] outArray = new float[arr_len]; 3896cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3906cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 3916cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextFloat(); 3926cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 3936cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 3946cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32(mRS)); 3956cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width).setY(height); 3966cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 3976cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 3986cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 3996cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4006cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 4016cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 4026cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 4036cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 4046cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 4056cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 4066cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4076cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4086cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 4096cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Float TEST PASSED"); 4106cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 4116cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 4126cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4136cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4146cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4156cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy2DRangeTo_Long(RenderScript mRS) { 4166cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 4176cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(128); 4186cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int height = random.nextInt(128); 4196cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xoff = random.nextInt(width); 4206cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int yoff = random.nextInt(height); 4216cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int xcount = width - xoff; 4226cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int ycount = height - yoff; 4236cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = xcount * ycount; 4246cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4256cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks long[] inArray = new long[arr_len]; 4266cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks long[] outArray = new long[arr_len]; 4276cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4286cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 4296cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextLong(); 4306cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4316cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4326cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64(mRS)); 4336cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width).setY(height); 4346cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 4356cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 4366cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 4376cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4386cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 4396cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 4406cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 4416cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 4426cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 4436cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 4446cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4456cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4466cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 4476cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy2DRangeTo_Long TEST PASSED"); 4486cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 4496cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 4506cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4516cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4526cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4536cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4546cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeToUnchecked_Byte(RenderScript mRS) { 4556cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 4566cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 4576cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 4586cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4596cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks byte[] inArray = new byte[arr_len]; 4606cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks byte[] outArray = new byte[arr_len]; 4616cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks random.nextBytes(inArray); 4626cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4636cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8(mRS)); 4646cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 4656cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 4666cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 4676cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 4686cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 4696cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeToUnchecked(offset, count, outArray); 4706cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4716cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 4726cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 4736cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 4746cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 4756cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 4766cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 4776cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4786cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4796cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 4806cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0) { 4816cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 4826cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 4836cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 4846cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4856cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4866cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 4876cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Byte TEST PASSED"); 4886cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 4896cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 4906cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4916cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 4926cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4936cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeToUnchecked_Short(RenderScript mRS) { 4946cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 4956cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 4966cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 4976cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 4986cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks short[] inArray = new short[arr_len]; 4996cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks short[] outArray = new short[arr_len]; 5006cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5016cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 5026cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = (short)random.nextInt(); 5036cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5046cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5056cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16(mRS)); 5066cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 5076cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 5086cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 5096cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 5106cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 5116cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeToUnchecked(offset, count, outArray); 5126cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5136cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 5146cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 5156cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 5166cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 5176cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 5186cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 5196cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5206cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5216cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 5226cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0) { 5236cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 5246cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 5256cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 5266cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5276cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5286cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 5296cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Short TEST PASSED"); 5306cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 5316cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 5326cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5336cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5346cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5356cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeToUnchecked_Int(RenderScript mRS) { 5366cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 5376cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 5386cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 5396cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5406cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int[] inArray = new int[arr_len]; 5416cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int[] outArray = new int[arr_len]; 5426cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5436cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 5446cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextInt(); 5456cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5466cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5476cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS)); 5486cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 5496cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 5506cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 5516cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 5526cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 5536cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeToUnchecked(offset, count, outArray); 5546cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5556cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 5566cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 5576cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 5586cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 5596cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 5606cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 5616cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5626cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5636cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 5646cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0) { 5656cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 5666cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 5676cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 5686cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5696cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5706cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 5716cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Int TEST PASSED"); 5726cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 5736cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 5746cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5756cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5766cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5776cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeToUnchecked_Float(RenderScript mRS) { 5786cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 5796cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 5806cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 5816cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5826cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks float[] inArray = new float[arr_len]; 5836cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks float[] outArray = new float[arr_len]; 5846cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5856cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 5866cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextFloat(); 5876cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 5886cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5896cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32(mRS)); 5906cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 5916cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 5926cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 5936cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 5946cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 5956cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeToUnchecked(offset, count, outArray); 5966cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 5976cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 5986cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 5996cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 6006cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 6016cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 6026cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 6036cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6046cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6056cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 6066cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0f) { 6076cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 6086cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 6096cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 6106cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6116cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6126cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 6136cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Float TEST PASSED"); 6146cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 6156cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 6166cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6176cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6186cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 6196cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks public void allocation_copy1DRangeToUnchecked_Long(RenderScript mRS) { 6206cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Random random = new Random(0x172d8ab9); 6216cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int width = random.nextInt(512); 6226cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int arr_len = width; 6236cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 6246cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks long[] inArray = new long[arr_len]; 6256cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks long[] outArray = new long[arr_len]; 6266cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 6276cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < arr_len; i++) { 6286cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks inArray[i] = random.nextLong(); 6296cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6306cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 6316cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64(mRS)); 6326cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks typeBuilder.setX(width); 6336cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 6346cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int offset = random.nextInt(arr_len); 6356cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks int count = arr_len - offset; 6366cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeFrom(offset, count, inArray); 6376cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks alloc.copy1DRangeToUnchecked(offset, count, outArray); 6386cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks 6396cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks boolean result = true; 6406cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = 0; i < count; i++) { 6416cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (inArray[i] != outArray[i]) { 6426cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 6436cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 6446cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 6456cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6466cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6476cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks for (int i = count; i < arr_len; i++) { 6486cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (outArray[i] != 0) { 6496cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks result = false; 6506cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 6516cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks break; 6526cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6536cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6546cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks if (result) { 6556cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks android.util.Log.v("Allocation CopyTo Test", "copy1DRangeToUnchecked_Long TEST PASSED"); 6566cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } else { 6576cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks failTest(); 6586cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6596cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks } 6606cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks} 661