summaryrefslogtreecommitdiffstats
path: root/tests/RenderScriptTests/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/RenderScriptTests/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java')
-rw-r--r--tests/RenderScriptTests/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java120
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/RenderScriptTests/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java b/tests/RenderScriptTests/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java
new file mode 100644
index 0000000..f435dde
--- /dev/null
+++ b/tests/RenderScriptTests/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.rs.test_compat;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.support.v8.renderscript.*;
+import android.util.Log;
+
+public class UT_copy_test extends UnitTest {
+ private Resources mRes;
+ boolean pass = true;
+
+ protected UT_copy_test(RSTestCore rstc, Resources res, Context ctx) {
+ super(rstc, "Copy", ctx);
+ mRes = res;
+ }
+
+ void testFloat2(RenderScript rs, ScriptC_copy_test s) {
+ Allocation a1 = Allocation.createSized(rs, Element.F32_2(rs), 1024);
+ Allocation a2 = Allocation.createSized(rs, Element.F32_2(rs), 1024);
+
+ float[] f1 = new float[1024 * 2];
+ float[] f2 = new float[1024 * 2];
+ for (int ct=0; ct < f1.length; ct++) {
+ f1[ct] = (float)ct;
+ }
+ a1.copyFrom(f1);
+
+ s.forEach_copyFloat2(a1, a2);
+
+ a2.copyTo(f2);
+ for (int ct=0; ct < f1.length; ct++) {
+ if (f1[ct] != f2[ct]) {
+ failTest();
+ Log.v("RS Test", "Compare failed at " + ct + ", " + f1[ct] + ", " + f2[ct]);
+ }
+ }
+ a1.destroy();
+ a2.destroy();
+ }
+
+ void testFloat3(RenderScript rs, ScriptC_copy_test s) {
+ Allocation a1 = Allocation.createSized(rs, Element.F32_3(rs), 1024);
+ Allocation a2 = Allocation.createSized(rs, Element.F32_3(rs), 1024);
+
+ float[] f1 = new float[1024 * 4];
+ float[] f2 = new float[1024 * 4];
+ for (int ct=0; ct < f1.length; ct++) {
+ f1[ct] = (float)ct;
+ }
+ a1.copyFrom(f1);
+
+ s.forEach_copyFloat3(a1, a2);
+
+ a2.copyTo(f2);
+ for (int ct=0; ct < f1.length; ct++) {
+ if ((f1[ct] != f2[ct]) && ((ct&3) != 3)) {
+ failTest();
+ Log.v("RS Test", "Compare failed at " + ct + ", " + f1[ct] + ", " + f2[ct]);
+ }
+ }
+ a1.destroy();
+ a2.destroy();
+ }
+
+ void testFloat4(RenderScript rs, ScriptC_copy_test s) {
+ Allocation a1 = Allocation.createSized(rs, Element.F32_4(rs), 1024);
+ Allocation a2 = Allocation.createSized(rs, Element.F32_4(rs), 1024);
+
+ float[] f1 = new float[1024 * 4];
+ float[] f2 = new float[1024 * 4];
+ for (int ct=0; ct < f1.length; ct++) {
+ f1[ct] = (float)ct;
+ }
+ a1.copyFrom(f1);
+
+ s.forEach_copyFloat4(a1, a2);
+
+ a2.copyTo(f2);
+ for (int ct=0; ct < f1.length; ct++) {
+ if (f1[ct] != f2[ct]) {
+ failTest();
+ Log.v("RS Test", "Compare failed at " + ct + ", " + f1[ct] + ", " + f2[ct]);
+ }
+ }
+ a1.destroy();
+ a2.destroy();
+ }
+
+ public void run() {
+ RenderScript pRS = RenderScript.create(mCtx);
+ ScriptC_copy_test s = new ScriptC_copy_test(pRS);
+ pRS.setMessageHandler(mRsMessage);
+
+ testFloat2(pRS, s);
+ testFloat3(pRS, s);
+ testFloat4(pRS, s);
+ s.invoke_sendResult(true);
+
+ pRS.finish();
+ waitForMessage();
+ pRS.destroy();
+ }
+}
+