Merge "Add test for clipped convolve and color matrix." into lmp-dev
diff --git a/tests/src/android/renderscript/cts/intrinsic_colormatrix.rs b/tests/src/android/renderscript/cts/intrinsic_colormatrix.rs
index 30b40c4..15c781c 100644
--- a/tests/src/android/renderscript/cts/intrinsic_colormatrix.rs
+++ b/tests/src/android/renderscript/cts/intrinsic_colormatrix.rs
@@ -17,10 +17,8 @@
#include "shared.rsh"
-void reference(rs_matrix4x4 m, float4 add, rs_allocation in, rs_allocation out) {
- uint32_t w = rsAllocationGetDimX(in);
- uint32_t h = rsAllocationGetDimY(in);
-
+void reference(rs_matrix4x4 m, float4 add, rs_allocation in, rs_allocation out,
+ int x1, int y1, int x2, int y2) {
rs_element ein = rsAllocationGetElement(in);
rs_element eout = rsAllocationGetElement(out);
rs_data_type dtin = rsElementGetDataType(ein);
@@ -28,8 +26,8 @@
uint32_t vsin = rsElementGetVectorSize(ein);
uint32_t vsout = rsElementGetVectorSize(eout);
- for (uint32_t y = 0; y < h; y++) {
- for (uint32_t x = 0; x < w; x++) {
+ for (uint32_t y = y1; y < y2; y++) {
+ for (uint32_t x = x1; x < x2; x++) {
float4 pin = 0.f;
if (dtin == RS_TYPE_FLOAT_32) {
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicBase.java b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicBase.java
index 7d952f6..bd02d7e 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicBase.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicBase.java
@@ -21,6 +21,7 @@
import android.renderscript.Allocation;
import android.renderscript.Element;
import android.renderscript.Type;
+import android.renderscript.Script;
public class IntrinsicBase extends RSBaseCompute {
protected final String TAG = "Img";
@@ -59,12 +60,24 @@
return e;
}
- protected Allocation makeAllocation(int w, int h, Element e) {
+ protected Allocation makeAllocation(int w, int h, Element e, boolean clear) {
Type.Builder tb = new Type.Builder(mRS, e);
tb.setX(w);
tb.setY(h);
Type t = tb.create();
- return Allocation.createTyped(mRS, t);
+ Allocation a = Allocation.createTyped(mRS, t);
+
+ if (clear) {
+ final int s = a.getBytesSize();
+ byte[] b = new byte[s];
+ a.copyFromUnchecked(b);
+ }
+
+ return a;
+ }
+
+ protected Allocation makeAllocation(int w, int h, Element e) {
+ return makeAllocation(w, h, e, true);
}
protected void makeSource(int w, int h, Element e) {
@@ -123,4 +136,11 @@
checkForErrors();
}
+ protected Script.LaunchOptions makeClipper(int x, int y, int x2, int y2) {
+ Script.LaunchOptions lo = new Script.LaunchOptions();
+ lo.setX(x, x2);
+ lo.setY(y, y2);
+ return lo;
+ }
+
}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicColorMatrix.java b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicColorMatrix.java
index 2ac7d6f..ac48783 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicColorMatrix.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicColorMatrix.java
@@ -25,7 +25,8 @@
private void subtest(int w, int h, Matrix4f mat, Float4 add,
Element.DataType dtIn, int vsIn,
- Element.DataType dtOut, int vsOut) {
+ Element.DataType dtOut, int vsOut,
+ boolean clip) {
if (mat == null) {
@@ -42,21 +43,34 @@
makeSource(w, h, ein);
- mAllocRef = makeAllocation(w, h, eout);
- mAllocDst = makeAllocation(w, h, eout);
+ mAllocRef = makeAllocation(w, h, eout, true);
+ mAllocDst = makeAllocation(w, h, eout, true);
+
+ int x1 = 0, y1 = 0, x2 = w, y2 = h;
+ if (clip) {
+ x1 = 11;
+ y1 = 11;
+ x2 = w - 11;
+ y2 = h - 11;
+ }
mSi.setColorMatrix(mat);
mSi.setAdd(add);
- mSi.forEach(mAllocSrc, mAllocDst);
- mSr.invoke_reference(mat, add, mAllocSrc, mAllocRef);
+ if (clip) {
+ mSi.forEach(mAllocSrc, mAllocDst, makeClipper(x1, y1, x2, y2));
+ } else {
+ mSi.forEach(mAllocSrc, mAllocDst);
+ }
+ mSr.invoke_reference(mat, add, mAllocSrc, mAllocRef, x1, y1, x2, y2);
- android.util.Log.e("RSI test", "test ColorMatrix vsin=" + vsIn + ", vsout=" + vsOut + ", dim " + w + ", " + h);
+ //android.util.Log.e("RSI test", "test ColorMatrix vsin=" + vsIn + ", vsout=" + vsOut + ", dim " + w + ", " + h);
mVerify.invoke_verify(mAllocRef, mAllocDst, mAllocSrc);
mRS.finish();
}
- private void test(Element.DataType dtin, Element.DataType dtout, int subtest) {
+ private void test(Element.DataType dtin, Element.DataType dtout, int subtest,
+ boolean clip) {
Float4 add = new Float4();
Matrix4f mat = new Matrix4f();
java.util.Random r = new java.util.Random(100);
@@ -99,52 +113,84 @@
add.w = r.nextFloat() * (subtest - 1);
}
}
- android.util.Log.v("rs", "Mat [" + f[0] + ", " + f[4] + ", " + f[8] + ", " + f[12] + "]");
- android.util.Log.v("rs", " [" + f[1] + ", " + f[5] + ", " + f[9] + ", " + f[13] + "]");
- android.util.Log.v("rs", " [" + f[2] + ", " + f[6] + ", " + f[10] + ", " + f[14] + "]");
- android.util.Log.v("rs", " [" + f[3] + ", " + f[7] + ", " + f[11] + ", " + f[15] + "]");
+ //android.util.Log.v("rs", "Mat [" + f[0] + ", " + f[4] + ", " + f[8] + ", " + f[12] + "]");
+ //android.util.Log.v("rs", " [" + f[1] + ", " + f[5] + ", " + f[9] + ", " + f[13] + "]");
+ //android.util.Log.v("rs", " [" + f[2] + ", " + f[6] + ", " + f[10] + ", " + f[14] + "]");
+ //android.util.Log.v("rs", " [" + f[3] + ", " + f[7] + ", " + f[11] + ", " + f[15] + "]");
}
for (int i=1; i <= 4; i++) {
for (int j=1; j <=4; j++) {
subtest(101, 101, mat, add,
- dtin, i,
- dtout, j);
+ dtin, i, dtout, j, clip);
}
}
checkError();
}
public void test_U8_U8_Ident() {
- test(Element.DataType.UNSIGNED_8, Element.DataType.UNSIGNED_8, 0);
+ test(Element.DataType.UNSIGNED_8, Element.DataType.UNSIGNED_8, 0, false);
}
public void test_F32_F32_Ident() {
- test(Element.DataType.FLOAT_32, Element.DataType.FLOAT_32, 0);
+ test(Element.DataType.FLOAT_32, Element.DataType.FLOAT_32, 0, false);
}
public void test_U8_F32_Ident() {
- test(Element.DataType.UNSIGNED_8, Element.DataType.FLOAT_32, 0);
+ test(Element.DataType.UNSIGNED_8, Element.DataType.FLOAT_32, 0, false);
}
public void test_F32_U8_Ident() {
- test(Element.DataType.FLOAT_32, Element.DataType.UNSIGNED_8, 0);
+ test(Element.DataType.FLOAT_32, Element.DataType.UNSIGNED_8, 0, false);
}
public void test_U8_U8_Rand() {
- test(Element.DataType.UNSIGNED_8, Element.DataType.UNSIGNED_8, 2);
+ test(Element.DataType.UNSIGNED_8, Element.DataType.UNSIGNED_8, 2, false);
}
public void test_F32_F32_Rand() {
- test(Element.DataType.FLOAT_32, Element.DataType.FLOAT_32, 10);
+ test(Element.DataType.FLOAT_32, Element.DataType.FLOAT_32, 10, false);
}
public void test_U8_F32_Rand() {
- test(Element.DataType.UNSIGNED_8, Element.DataType.FLOAT_32, 10);
+ test(Element.DataType.UNSIGNED_8, Element.DataType.FLOAT_32, 10, false);
}
public void test_F32_U8_Rand() {
- test(Element.DataType.FLOAT_32, Element.DataType.UNSIGNED_8, 10);
+ test(Element.DataType.FLOAT_32, Element.DataType.UNSIGNED_8, 10, false);
}
+
+
+ public void test_U8_U8_IdentC() {
+ test(Element.DataType.UNSIGNED_8, Element.DataType.UNSIGNED_8, 0, true);
+ }
+
+ public void test_F32_F32_IdentC() {
+ test(Element.DataType.FLOAT_32, Element.DataType.FLOAT_32, 0, true);
+ }
+
+ public void test_U8_F32_IdentC() {
+ test(Element.DataType.UNSIGNED_8, Element.DataType.FLOAT_32, 0, true);
+ }
+
+ public void test_F32_U8_IdentC() {
+ test(Element.DataType.FLOAT_32, Element.DataType.UNSIGNED_8, 0, true);
+ }
+
+ public void test_U8_U8_RandC() {
+ test(Element.DataType.UNSIGNED_8, Element.DataType.UNSIGNED_8, 2, true);
+ }
+
+ public void test_F32_F32_RandC() {
+ test(Element.DataType.FLOAT_32, Element.DataType.FLOAT_32, 10, true);
+ }
+
+ public void test_U8_F32_RandC() {
+ test(Element.DataType.UNSIGNED_8, Element.DataType.FLOAT_32, 10, true);
+ }
+
+ public void test_F32_U8_RandC() {
+ test(Element.DataType.FLOAT_32, Element.DataType.UNSIGNED_8, 10, true);
+ }
}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve3x3.java b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve3x3.java
index 12eae9a..1880132 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve3x3.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve3x3.java
@@ -20,138 +20,187 @@
import android.util.Log;
public class IntrinsicConvolve3x3 extends IntrinsicBase {
- private void testConvolve3(int w, int h, Element.DataType dt, int vecSize) {
+ private void testConvolve3(int w, int h, Element.DataType dt, int vecSize, Script.LaunchOptions sc) {
float cf1[] = {0.f, 0.f, 0.f, 0.f, 1.f, 0.f, 0.f, 0.f, 0.f};
float cf2[] = {0.f, -1.f, 0.f, -1.f, 5.f, -1.f, 0.f, -1.f, 0.f};
-
Element e = makeElement(dt, vecSize);
System.gc();
makeBuffers(w, h, e);
-
ScriptIntrinsicConvolve3x3 si = ScriptIntrinsicConvolve3x3.create(mRS, e);
si.setCoefficients(cf1);
si.setInput(mAllocSrc);
- si.forEach(mAllocRef);
+ si.forEach(mAllocRef, sc);
ScriptC_intrinsic_convolve3x3 sr = new ScriptC_intrinsic_convolve3x3(mRS);
sr.set_gCoeffs(cf1);
sr.set_gIn(mAllocSrc);
sr.set_gWidth(w);
sr.set_gHeight(h);
+
+ if (sc != null) {
+ mAllocRef.copyFrom(mAllocSrc);
+ mAllocDst.copyFrom(mAllocSrc);
+ }
+
if (dt == Element.DataType.UNSIGNED_8) {
switch(vecSize) {
case 4:
- sr.forEach_convolve_U4(mAllocDst);
+ sr.forEach_convolve_U4(mAllocDst, sc);
break;
case 3:
- sr.forEach_convolve_U3(mAllocDst);
+ sr.forEach_convolve_U3(mAllocDst, sc);
break;
case 2:
- sr.forEach_convolve_U2(mAllocDst);
+ sr.forEach_convolve_U2(mAllocDst, sc);
break;
case 1:
- sr.forEach_convolve_U1(mAllocDst);
+ sr.forEach_convolve_U1(mAllocDst, sc);
break;
}
} else {
switch(vecSize) {
case 4:
- sr.forEach_convolve_F4(mAllocDst);
+ sr.forEach_convolve_F4(mAllocDst, sc);
break;
case 3:
- sr.forEach_convolve_F3(mAllocDst);
+ sr.forEach_convolve_F3(mAllocDst, sc);
break;
case 2:
- sr.forEach_convolve_F2(mAllocDst);
+ sr.forEach_convolve_F2(mAllocDst, sc);
break;
case 1:
- sr.forEach_convolve_F1(mAllocDst);
+ sr.forEach_convolve_F1(mAllocDst, sc);
break;
}
}
- android.util.Log.e("RSI test", "test convolve U8_" + vecSize + " 1 " + w + ", " + h);
+ //android.util.Log.e("RSI test", "test convolve U8_" + vecSize + " 1 " + w + ", " + h);
mVerify.invoke_verify(mAllocRef, mAllocDst, mAllocSrc);
si.setCoefficients(cf2);
sr.set_gCoeffs(cf2);
- si.forEach(mAllocRef);
+ si.forEach(mAllocRef, sc);
if (dt == Element.DataType.UNSIGNED_8) {
switch(vecSize) {
case 4:
- sr.forEach_convolve_U4(mAllocDst);
+ sr.forEach_convolve_U4(mAllocDst, sc);
break;
case 3:
- sr.forEach_convolve_U3(mAllocDst);
+ sr.forEach_convolve_U3(mAllocDst, sc);
break;
case 2:
- sr.forEach_convolve_U2(mAllocDst);
+ sr.forEach_convolve_U2(mAllocDst, sc);
break;
case 1:
- sr.forEach_convolve_U1(mAllocDst);
+ sr.forEach_convolve_U1(mAllocDst, sc);
break;
}
} else {
switch(vecSize) {
case 4:
- sr.forEach_convolve_F4(mAllocDst);
+ sr.forEach_convolve_F4(mAllocDst, sc);
break;
case 3:
- sr.forEach_convolve_F3(mAllocDst);
+ sr.forEach_convolve_F3(mAllocDst, sc);
break;
case 2:
- sr.forEach_convolve_F2(mAllocDst);
+ sr.forEach_convolve_F2(mAllocDst, sc);
break;
case 1:
- sr.forEach_convolve_F1(mAllocDst);
+ sr.forEach_convolve_F1(mAllocDst, sc);
break;
}
}
- android.util.Log.e("RSI test", "test convolve U8_" + vecSize + " 2 " + w + ", " + h);
+ //android.util.Log.e("RSI test", "test convolve U8_" + vecSize + " 2 " + w + ", " + h);
mVerify.invoke_verify(mAllocRef, mAllocDst, mAllocSrc);
mRS.finish();
}
public void test_U8_4() {
- testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 4);
+ testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 4, null);
checkError();
}
public void test_U8_3() {
- testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 3);
+ testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 3, null);
checkError();
}
public void test_U8_2() {
- testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 2);
+ testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 2, null);
checkError();
}
public void test_U8_1() {
- testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 1);
+ testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 1, null);
checkError();
}
public void test_F32_4() {
- testConvolve3(100, 100, Element.DataType.FLOAT_32, 4);
+ testConvolve3(100, 100, Element.DataType.FLOAT_32, 4, null);
checkError();
}
public void test_F32_3() {
- testConvolve3(100, 100, Element.DataType.FLOAT_32, 3);
+ testConvolve3(100, 100, Element.DataType.FLOAT_32, 3, null);
checkError();
}
public void test_F32_2() {
- testConvolve3(100, 100, Element.DataType.FLOAT_32, 2);
+ testConvolve3(100, 100, Element.DataType.FLOAT_32, 2, null);
checkError();
}
public void test_F32_1() {
- testConvolve3(100, 100, Element.DataType.FLOAT_32, 1);
+ testConvolve3(100, 100, Element.DataType.FLOAT_32, 1, null);
checkError();
}
+ public void test_U8_4C() {
+ testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 4,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+ public void test_U8_3C() {
+ testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 3,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+ public void test_U8_2C() {
+ testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 2,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+ public void test_U8_1C() {
+ testConvolve3(100, 100, Element.DataType.UNSIGNED_8, 1,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
+ public void test_F32_4C() {
+ testConvolve3(100, 100, Element.DataType.FLOAT_32, 4,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
+ public void test_F32_3C() {
+ testConvolve3(100, 100, Element.DataType.FLOAT_32, 3,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
+ public void test_F32_2C() {
+ testConvolve3(100, 100, Element.DataType.FLOAT_32, 2,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
+ public void test_F32_1C() {
+ testConvolve3(100, 100, Element.DataType.FLOAT_32, 1,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve5x5.java b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve5x5.java
index 482db59..ee92651 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve5x5.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/IntrinsicConvolve5x5.java
@@ -21,10 +21,16 @@
public class IntrinsicConvolve5x5 extends IntrinsicBase {
private void test5(ScriptC_intrinsic_convolve5x5 sr, ScriptIntrinsicConvolve5x5 si,
- Element e, float cf[], String name, int num, int w, int h) {
+ Element e, float cf[], String name, int num, int w, int h,
+ Script.LaunchOptions sc) {
si.setCoefficients(cf);
si.setInput(mAllocSrc);
- si.forEach(mAllocRef);
+
+ if (sc != null) {
+ mAllocRef.copyFrom(mAllocSrc);
+ mAllocDst.copyFrom(mAllocSrc);
+ }
+ si.forEach(mAllocRef, sc);
sr.set_gWidth(w);
sr.set_gHeight(h);
@@ -33,41 +39,41 @@
if (e.getDataType() == Element.DataType.UNSIGNED_8) {
switch(e.getVectorSize()) {
case 4:
- sr.forEach_convolve_U4(mAllocDst);
+ sr.forEach_convolve_U4(mAllocDst, sc);
break;
case 3:
- sr.forEach_convolve_U3(mAllocDst);
+ sr.forEach_convolve_U3(mAllocDst, sc);
break;
case 2:
- sr.forEach_convolve_U2(mAllocDst);
+ sr.forEach_convolve_U2(mAllocDst, sc);
break;
case 1:
- sr.forEach_convolve_U1(mAllocDst);
+ sr.forEach_convolve_U1(mAllocDst, sc);
break;
}
} else {
switch(e.getVectorSize()) {
case 4:
- sr.forEach_convolve_F4(mAllocDst);
+ sr.forEach_convolve_F4(mAllocDst, sc);
break;
case 3:
- sr.forEach_convolve_F3(mAllocDst);
+ sr.forEach_convolve_F3(mAllocDst, sc);
break;
case 2:
- sr.forEach_convolve_F2(mAllocDst);
+ sr.forEach_convolve_F2(mAllocDst, sc);
break;
case 1:
- sr.forEach_convolve_F1(mAllocDst);
+ sr.forEach_convolve_F1(mAllocDst, sc);
break;
}
}
- android.util.Log.e("RSI test", name + " " + e.getVectorSize() + " " + num + " " + w + ", " + h);
+ //android.util.Log.e("RSI test", name + " " + e.getVectorSize() + " " + num + " " + w + ", " + h);
mVerify.invoke_verify(mAllocRef, mAllocDst, mAllocSrc);
mRS.finish();
}
- private void testConvolve5(int w, int h, Element.DataType dt, int vecSize) {
+ private void testConvolve5(int w, int h, Element.DataType dt, int vecSize, Script.LaunchOptions sc) {
float cf1[] = { 0.f, 0.f, 0.f, 0.f, 0.f,
0.f, 0.f, 0.f, 0.f, 0.f,
0.f, 0.f, 1.f, 0.f, 0.f,
@@ -84,43 +90,87 @@
ScriptIntrinsicConvolve5x5 si = ScriptIntrinsicConvolve5x5.create(mRS, e);
ScriptC_intrinsic_convolve5x5 sr = new ScriptC_intrinsic_convolve5x5(mRS);
- test5(sr, si, e, cf1, "test convolve", 1, w, h);
- test5(sr, si, e, cf2, "test convolve", 2, w, h);
+ test5(sr, si, e, cf1, "test convolve", 1, w, h, sc);
+ test5(sr, si, e, cf2, "test convolve", 2, w, h, sc);
}
public void test_U8_4() {
- testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 4);
+ testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 4, null);
checkError();
}
public void test_U8_3() {
- testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 3);
+ testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 3, null);
checkError();
}
public void test_U8_2() {
- testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 2);
+ testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 2, null);
checkError();
}
public void test_U8_1() {
- testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 1);
+ testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 1, null);
checkError();
}
public void test_F32_4() {
- testConvolve5(100, 100, Element.DataType.FLOAT_32, 4);
+ testConvolve5(100, 100, Element.DataType.FLOAT_32, 4, null);
checkError();
}
public void test_F32_3() {
- testConvolve5(100, 100, Element.DataType.FLOAT_32, 3);
+ testConvolve5(100, 100, Element.DataType.FLOAT_32, 3, null);
checkError();
}
public void test_F32_2() {
- testConvolve5(100, 100, Element.DataType.FLOAT_32, 2);
+ testConvolve5(100, 100, Element.DataType.FLOAT_32, 2, null);
checkError();
}
public void test_F32_1() {
- testConvolve5(100, 100, Element.DataType.FLOAT_32, 1);
+ testConvolve5(100, 100, Element.DataType.FLOAT_32, 1, null);
checkError();
}
+ public void test_U8_4C() {
+ testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 4,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+ public void test_U8_3C() {
+ testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 3,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+ public void test_U8_2C() {
+ testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 2,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+ public void test_U8_1C() {
+ testConvolve5(100, 100, Element.DataType.UNSIGNED_8, 1,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
+ public void test_F32_4C() {
+ testConvolve5(100, 100, Element.DataType.FLOAT_32, 4,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
+ public void test_F32_3C() {
+ testConvolve5(100, 100, Element.DataType.FLOAT_32, 3,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
+ public void test_F32_2C() {
+ testConvolve5(100, 100, Element.DataType.FLOAT_32, 2,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
+
+ public void test_F32_1C() {
+ testConvolve5(100, 100, Element.DataType.FLOAT_32, 1,
+ makeClipper(11, 11, 90, 90));
+ checkError();
+ }
}