diff --git a/modules/core/misc/java/test/MatTest.java b/modules/core/misc/java/test/MatTest.java index 00e7b7cb32..3075dba16b 100644 --- a/modules/core/misc/java/test/MatTest.java +++ b/modules/core/misc/java/test/MatTest.java @@ -1285,4 +1285,31 @@ public class MatTest extends OpenCVTestCase { assertEquals(5, bbuf.get(63*80 + 63)); } + public void testMatAt() { + Mat uc1 = new Mat(2, 3, CvType.CV_8S) { + { + put(0, 0, 1, 2, 3); + put(1, 0, 4, 5, 6); + } + }; + assertEquals((byte)1, uc1.at(Byte.class, 0, 0).getV().byteValue()); + assertEquals((byte)2, uc1.at(Byte.class, 0, 1).getV().byteValue()); + assertEquals((byte)3, uc1.at(Byte.class, 0, 2).getV().byteValue()); + assertEquals((byte)4, uc1.at(Byte.class, 1, 0).getV().byteValue()); + assertEquals((byte)5, uc1.at(Byte.class, 1, 1).getV().byteValue()); + assertEquals((byte)6, uc1.at(Byte.class, 1, 2).getV().byteValue()); + uc1.at(Byte.class, 0, 0).setV((byte)7); + uc1.at(Byte.class, 0, 1).setV((byte)8); + uc1.at(Byte.class, 0, 2).setV((byte)9); + uc1.at(Byte.class, 1, 0).setV((byte)10); + uc1.at(Byte.class, 1, 1).setV((byte)11); + uc1.at(Byte.class, 1, 2).setV((byte)12); + byte[] data = new byte[6]; + uc1.get(0, 0, data); + assertArrayEquals(data, new byte[] {7, 8, 9, 10, 11, 12}); + Mat.Tuple3 bgr = rgbLena.at(Byte.class, 0, 0).getV3c(); + assertEquals(bgr.get_0().byteValue(), (byte)128); + assertEquals(bgr.get_1().byteValue(), (byte)138); + assertEquals(bgr.get_2().byteValue(), (byte)225); + } } diff --git a/modules/java/test/pure_test/src/org/opencv/test/OpenCVTestCase.java b/modules/java/test/pure_test/src/org/opencv/test/OpenCVTestCase.java index 3fd918dbfe..7ed8a41ba8 100644 --- a/modules/java/test/pure_test/src/org/opencv/test/OpenCVTestCase.java +++ b/modules/java/test/pure_test/src/org/opencv/test/OpenCVTestCase.java @@ -312,6 +312,13 @@ public class OpenCVTestCase extends TestCase { //assertTrue(Math.abs(ar1[i].doubleValue() - ar2[i].doubleValue()) <= epsilon); } + public static void assertArrayEquals(byte[] ar1, byte[] ar2) { + assertEquals(ar1.length, ar2.length); + + for (int i = 0; i < ar1.length; i++) + assertEquals(ar1[i], ar2[i]); + } + public static void assertArrayEquals(short[] ar1, short[] ar2) { assertEquals(ar1.length, ar2.length);