This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
FYI: More java.awt.image.* tests
- From: David Gilbert <david dot gilbert at object-refinery dot com>
- To: mauve-patches <mauve-patches at sources dot redhat dot com>
- Date: Mon, 17 Jul 2006 15:02:32 +0100
- Subject: FYI: More java.awt.image.* tests
This patch (committed) adds/updates some tests for the SampleModel classes:
2006-07-17 David Gilbert <david.gilbert@object-refinery.com>
*
gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/getBitOffset.java
(test): Added new checks,
*
gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setDataElements.java
(test): Call new test methods,
(testBadTransferArray): New method,
(testNullTransferArray): New method,
* gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setSample.java
(test): Call new test methods,
(testTYPE_USHORT): New method,
(testTYPE_BYTE): New method,
* gnu/testlet/java/awt/image/SampleModel/getPixel.java
(testMethod1): Add new checks,
* gnu/testlet/java/awt/image/SampleModel/getPixels.java
(test): Call new test method,
(testMethod1MultiPixelPackedSampleModel): New method,
* gnu/testlet/java/awt/image/SinglePixelPackedSampleModel.java
(test2): Added new check.
Regards,
Dave
Index: gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/getBitOffset.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/getBitOffset.java,v
retrieving revision 1.1
diff -u -r1.1 getBitOffset.java
--- gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/getBitOffset.java 14 Jul 2006 14:14:34 -0000 1.1
+++ gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/getBitOffset.java 17 Jul 2006 13:53:28 -0000
@@ -62,5 +62,18 @@
harness.check(m2.getBitOffset(9), 24);
harness.check(m2.getBitOffset(-1), 8);
+ MultiPixelPackedSampleModel m3 = new MultiPixelPackedSampleModel(
+ DataBuffer.TYPE_INT, 10, 20, 16);
+ harness.check(m3.getBitOffset(0), 0);
+ harness.check(m3.getBitOffset(1), 16);
+ harness.check(m3.getBitOffset(2), 0);
+ harness.check(m3.getBitOffset(3), 16);
+ harness.check(m3.getBitOffset(4), 0);
+ harness.check(m3.getBitOffset(5), 16);
+ harness.check(m3.getBitOffset(6), 0);
+ harness.check(m3.getBitOffset(7), 16);
+ harness.check(m3.getBitOffset(8), 0);
+ harness.check(m3.getBitOffset(9), 16);
+ harness.check(m3.getBitOffset(-1), -16);
}
}
Index: gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setDataElements.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setDataElements.java,v
retrieving revision 1.1
diff -u -r1.1 setDataElements.java
--- gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setDataElements.java 14 Jul 2006 16:21:30 -0000 1.1
+++ gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setDataElements.java 17 Jul 2006 13:53:28 -0000
@@ -36,6 +36,8 @@
{
testTYPE_BYTE(harness);
testTYPE_USHORT(harness);
+ testBadTransferArray(harness);
+ testNullTransferArray(harness);
}
public void testTYPE_BYTE(TestHarness harness)
@@ -52,7 +54,160 @@
MultiPixelPackedSampleModel m = new MultiPixelPackedSampleModel(
DataBuffer.TYPE_USHORT, 10, 20, 8);
DataBuffer db = m.createDataBuffer();
- m.setDataElements(2, 1, new byte[] {(byte) 0xFA}, db);
- harness.check(db.getElem(6), 0xFA00);
+ m.setDataElements(0, 0, new byte[] {(byte) 0x12}, db);
+ harness.check(db.getElem(0), 0x1200);
+ m.setDataElements(1, 0, new byte[] {(byte) 0x34}, db);
+ harness.check(db.getElem(0), 0x1234);
+ m.setDataElements(2, 1, new byte[] {(byte) 0xAB}, db);
+ harness.check(db.getElem(6), 0xAB00);
+ m.setDataElements(3, 1, new byte[] {(byte) 0xCD}, db);
+ harness.check(db.getElem(6), 0xABCD);
+ }
+
+ /**
+ * Tests for the required ClassCastException if the incoming Object is not
+ * an array of the TransferType.
+ *
+ * @param harness the test harness.
+ */
+ public void testBadTransferArray(TestHarness harness)
+ {
+ harness.checkPoint("testBadTransferArray()");
+
+ // here a byte[] is expected...
+ MultiPixelPackedSampleModel m = new MultiPixelPackedSampleModel(
+ DataBuffer.TYPE_BYTE, 10, 20, 8);
+ DataBuffer db = m.createDataBuffer();
+
+ boolean pass = false;
+ try
+ {
+ m.setDataElements(2, 1, new int[] {0xFA}, db);
+ }
+ catch (ClassCastException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ // here a byte[] is expected...
+ m = new MultiPixelPackedSampleModel(DataBuffer.TYPE_USHORT, 10, 20, 8);
+ db = m.createDataBuffer();
+
+ pass = false;
+ try
+ {
+ m.setDataElements(2, 1, new short[] {0xFA}, db);
+ }
+ catch (ClassCastException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ // here a short[] is expected...
+ m = new MultiPixelPackedSampleModel(DataBuffer.TYPE_USHORT, 10, 20, 16);
+ db = m.createDataBuffer();
+
+ pass = false;
+ try
+ {
+ m.setDataElements(2, 1, new byte[] {(byte) 0xFA}, db);
+ }
+ catch (ClassCastException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ // here a short[] is expected...
+ m = new MultiPixelPackedSampleModel(DataBuffer.TYPE_INT, 10, 20, 16);
+ db = m.createDataBuffer();
+
+ pass = false;
+ try
+ {
+ m.setDataElements(2, 1, new byte[] {(byte) 0xFA}, db);
+ }
+ catch (ClassCastException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
}
+
+ /**
+ * Tests for the required NullPointerException if the incoming Object is null.
+ *
+ * @param harness the test harness.
+ */
+ public void testNullTransferArray(TestHarness harness)
+ {
+ harness.checkPoint("testNullTransferArray()");
+
+ // here a byte[] is expected...
+ MultiPixelPackedSampleModel m = new MultiPixelPackedSampleModel(
+ DataBuffer.TYPE_BYTE, 10, 20, 8);
+ DataBuffer db = m.createDataBuffer();
+
+ boolean pass = false;
+ try
+ {
+ m.setDataElements(2, 1, null, db);
+ }
+ catch (NullPointerException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ // here a byte[] is expected...
+ m = new MultiPixelPackedSampleModel(DataBuffer.TYPE_USHORT, 10, 20, 8);
+ db = m.createDataBuffer();
+
+ pass = false;
+ try
+ {
+ m.setDataElements(2, 1, null, db);
+ }
+ catch (NullPointerException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ // here a short[] is expected...
+ m = new MultiPixelPackedSampleModel(DataBuffer.TYPE_USHORT, 10, 20, 16);
+ db = m.createDataBuffer();
+
+ pass = false;
+ try
+ {
+ m.setDataElements(2, 1, null, db);
+ }
+ catch (NullPointerException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ // here a short[] is expected...
+ m = new MultiPixelPackedSampleModel(DataBuffer.TYPE_INT, 10, 20, 16);
+ db = m.createDataBuffer();
+
+ pass = false;
+ try
+ {
+ m.setDataElements(2, 1, null, db);
+ }
+ catch (NullPointerException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ }
+
+
}
Index: gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setSample.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setSample.java,v
retrieving revision 1.1
diff -u -r1.1 setSample.java
--- gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setSample.java 14 Jul 2006 14:14:34 -0000 1.1
+++ gnu/testlet/java/awt/image/MultiPixelPackedSampleModel/setSample.java 17 Jul 2006 13:53:28 -0000
@@ -36,6 +36,8 @@
{
test1(harness);
test2(harness);
+ testTYPE_USHORT(harness);
+ testTYPE_BYTE(harness);
}
public void test1(TestHarness harness)
@@ -73,5 +75,36 @@
m.setSample(5, 1, 0, 0xDD, db);
harness.check(db.getElem(5), 0xAABBCCDD);
}
+
+ public void testTYPE_USHORT(TestHarness harness)
+ {
+ harness.checkPoint("TYPE_USHORT");
+ MultiPixelPackedSampleModel m = new MultiPixelPackedSampleModel(
+ DataBuffer.TYPE_USHORT, 10, 20, 8);
+ DataBuffer db = m.createDataBuffer();
+ m.setSample(0, 0, 0, 0x12, db);
+ harness.check(db.getElem(0), 0x1200);
+ m.setSample(1, 0, 0, 0x34, db);
+ harness.check(db.getElem(0), 0x1234);
+ m.setSample(2, 1, 0, 0xAB, db);
+ harness.check(db.getElem(6), 0xAB00);
+ m.setSample(3, 1, 0, 0xCD, db);
+ harness.check(db.getElem(6), 0xABCD);
+ }
+ public void testTYPE_BYTE(TestHarness harness)
+ {
+ harness.checkPoint("TYPE_BYTE");
+ MultiPixelPackedSampleModel m = new MultiPixelPackedSampleModel(
+ DataBuffer.TYPE_BYTE, 10, 20, 2);
+ DataBuffer db = m.createDataBuffer();
+ m.setSample(0, 0, 0, 0x01, db);
+ harness.check(db.getElem(0), 0x40);
+ m.setSample(1, 0, 0, 0x02, db);
+ harness.check(db.getElem(0), 0x60);
+ m.setSample(2, 1, 0, 0x03, db);
+ harness.check(db.getElem(3), 0x0C);
+ m.setSample(3, 1, 0, 0x04, db);
+ harness.check(db.getElem(3), 0x0C);
+ }
}
Index: gnu/testlet/java/awt/image/SampleModel/getPixel.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/image/SampleModel/getPixel.java,v
retrieving revision 1.1
diff -u -r1.1 getPixel.java
--- gnu/testlet/java/awt/image/SampleModel/getPixel.java 13 Jul 2006 11:27:07 -0000 1.1
+++ gnu/testlet/java/awt/image/SampleModel/getPixel.java 17 Jul 2006 13:53:28 -0000
@@ -28,6 +28,7 @@
import gnu.testlet.Testlet;
import java.awt.image.DataBuffer;
+import java.awt.image.MultiPixelPackedSampleModel;
import java.awt.image.SampleModel;
import java.awt.image.SinglePixelPackedSampleModel;
import java.util.Arrays;
@@ -69,6 +70,29 @@
pass = true;
}
harness.check(pass);
+
+ // try with a MultiPixelPackedSampleModel
+ m = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 10, 20, 2);
+ db = m.createDataBuffer();
+ db.setElem(0, 27);
+ harness.check(m.getPixel(0, 0, (int[]) null, db)[0], 0);
+ harness.check(m.getPixel(1, 0, (int[]) null, db)[0], 1);
+ harness.check(m.getPixel(2, 0, (int[]) null, db)[0], 2);
+ harness.check(m.getPixel(3, 0, (int[]) null, db)[0], 3);
+ db.setElem(3, 27);
+ harness.check(m.getPixel(0, 1, (int[]) null, db)[0], 0);
+ harness.check(m.getPixel(1, 1, (int[]) null, db)[0], 1);
+ harness.check(m.getPixel(2, 1, (int[]) null, db)[0], 2);
+ harness.check(m.getPixel(3, 1, (int[]) null, db)[0], 3);
+ db.setElem(6, 0x18);
+ db.setElem(9, 0x30);
+ db.setElem(12, 0x1C);
+ harness.check(m.getPixel(1, 2, (int[]) null, db)[0], 1);
+ harness.check(m.getPixel(2, 2, (int[]) null, db)[0], 2);
+ harness.check(m.getPixel(1, 3, (int[]) null, db)[0], 3);
+ harness.check(m.getPixel(2, 3, (int[]) null, db)[0], 0);
+ harness.check(m.getPixel(1, 4, (int[]) null, db)[0], 1);
+ harness.check(m.getPixel(2, 4, (int[]) null, db)[0], 3);
}
public void testMethod2(TestHarness harness)
Index: gnu/testlet/java/awt/image/SampleModel/getPixels.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/image/SampleModel/getPixels.java,v
retrieving revision 1.1
diff -u -r1.1 getPixels.java
--- gnu/testlet/java/awt/image/SampleModel/getPixels.java 13 Jul 2006 11:27:07 -0000 1.1
+++ gnu/testlet/java/awt/image/SampleModel/getPixels.java 17 Jul 2006 13:53:28 -0000
@@ -28,6 +28,7 @@
import gnu.testlet.Testlet;
import java.awt.image.DataBuffer;
+import java.awt.image.MultiPixelPackedSampleModel;
import java.awt.image.SampleModel;
import java.awt.image.SinglePixelPackedSampleModel;
import java.util.Arrays;
@@ -39,6 +40,7 @@
testMethod1(harness);
testMethod2(harness);
testMethod3(harness);
+ testMethod1MultiPixelPackedSampleModel(harness);
}
public void testMethod1(TestHarness harness)
@@ -142,4 +144,37 @@
}
harness.check(pass);
}
+
+ public void testMethod1MultiPixelPackedSampleModel(TestHarness harness)
+ {
+ harness.checkPoint("(int, int, int, int, int[], DataBuffer)");
+ SampleModel m = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 10,
+ 20, 2);
+ DataBuffer db = m.createDataBuffer();
+ int[] pixel = new int[6];
+ m.getPixels(1, 2, 2, 3, pixel, db);
+ harness.check(Arrays.equals(pixel, new int[] {0, 0, 0, 0, 0, 0}));
+ db.setElem(6, 0x18);
+ db.setElem(9, 0x30);
+ db.setElem(12, 0x1C);
+ m.getPixels(1, 2, 2, 3, pixel, db);
+ harness.check(Arrays.equals(pixel, new int[] {1, 2, 3, 0, 1, 3}));
+
+ // if the incoming array is null, a new one is created
+ pixel = m.getPixels(1, 2, 2, 3, (int[]) null, db);
+ harness.check(Arrays.equals(pixel, new int[] {1, 2, 3, 0, 1, 3}));
+
+ // try null data buffer
+ boolean pass = false;
+ try
+ {
+ m.getPixels(1, 2, 2, 3, pixel, null);
+ }
+ catch (NullPointerException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+ }
+
}
Index: gnu/testlet/java/awt/image/SinglePixelPackedSampleModel/getSampleSize.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/image/SinglePixelPackedSampleModel/getSampleSize.java,v
retrieving revision 1.3
diff -u -r1.3 getSampleSize.java
--- gnu/testlet/java/awt/image/SinglePixelPackedSampleModel/getSampleSize.java 13 Jul 2006 16:02:06 -0000 1.3
+++ gnu/testlet/java/awt/image/SinglePixelPackedSampleModel/getSampleSize.java 17 Jul 2006 13:53:28 -0000
@@ -116,5 +116,11 @@
harness.check(sizes[1], 8);
harness.check(sizes[2], 8);
harness.check(sizes[3], 8);
+
+ // if we alter the returned array, does that affect the model's state
+ sizes[0] = 99;
+ int[] sizes2 = m.getSampleSize();
+ harness.check(sizes2 != sizes);
+ harness.check(sizes2[0], 8);
}
}