This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
FYI: New ImageIO read/write tests
- From: Lillian Angel <langel at redhat dot com>
- To: mauve-patches <mauve-patches at sources dot redhat dot com>
- Date: Wed, 22 Mar 2006 15:06:25 -0500
- Subject: FYI: New ImageIO read/write tests
New tests for reading/writing bitmaps.
2006-03-22 Lillian Angel <langel@redhat.com>
* gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp:
Added bitmap for test.
* gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java:
(test): Moved tests to testStringData. Added calls to
testReadWrite and testStringData.
(testStringData): New function.
(testReadWrite): Checks reading and writing of bitmap
images. Compares images to verify they are the same.
(checkPixels): Helper used to compare pixels of two
images.
Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp
Binary files /dev/null and Bitmap-16Bit.bmp differ
Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp
Binary files /dev/null and Bitmap-1Bit.bmp differ
Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp
Binary files /dev/null and Bitmap-24Bit.bmp differ
Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp
Binary files /dev/null and Bitmap-32Bit.bmp differ
Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp
Binary files /dev/null and Bitmap-4Bit.bmp differ
Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp
Binary files /dev/null and Bitmap-8Bit.bmp differ
Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp
Binary files /dev/null and Bitmap-RLE4.bmp differ
Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp
Binary files /dev/null and Bitmap-RLE8.bmp differ
Index: gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java,v
retrieving revision 1.1
diff -u -r1.1 ImageIOTest.java
--- gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java 26 Dec 2004 17:05:17 -0000 1.1
+++ gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java 22 Mar 2006 19:59:14 -0000
@@ -22,35 +22,99 @@
package gnu.testlet.javax.imageio.ImageIO;
-import gnu.testlet.Testlet;
import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.awt.image.BufferedImage;
+import java.awt.image.PixelGrabber;
+import java.io.File;
import javax.imageio.ImageIO;
/**
* @author Michael Koch (konqueror@gmx.de)
+ * @author Lillian Angel (langel at redhat dot com)
*/
public class ImageIOTest
implements Testlet
{
public void test(TestHarness h)
{
+ testStringData(h);
+
+ // Tests the reading/writing of various images.
+ h.checkPoint("Reading and writing of images.");
+ testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp");
+ testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp");
+ testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp");
+ testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp");
+ testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp");
+ testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp");
+ testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp");
+ testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp");
+ }
+
+ private void testStringData(TestHarness h)
+ {
String[] stringData;
// check #1: getReaderFormatNames
stringData = ImageIO.getReaderFormatNames();
h.check(stringData.length != 0, "empty reader format names");
-
+
// check #2: getReaderMIMETypes
stringData = ImageIO.getReaderMIMETypes();
h.check(stringData.length != 0, "empty reader mime types");
-
+
// check #3: getWriterFormatNames
stringData = ImageIO.getWriterFormatNames();
h.check(stringData.length != 0, "empty writer format names");
-
+
// check #4: getWriterMIMETypes
stringData = ImageIO.getWriterMIMETypes();
h.check(stringData.length != 0, "empty writer mime types");
}
+
+ private void testReadWrite(TestHarness h, String picPath)
+ {
+ boolean exceptionCaught = false;
+ try
+ {
+ BufferedImage image = ImageIO.read(new File(picPath));
+
+ int width = image.getWidth(null);
+ int height = image.getHeight(null);
+ int size = width * height;
+ int[] pixels = new int[size];
+ int[] outPixels = new int[size];
+ String path = "gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp";
+
+ ImageIO.write(image, "bmp", new File(path));
+
+ BufferedImage outImage = ImageIO.read(new File(path));
+ PixelGrabber pg1 = new PixelGrabber(outImage,
+ 0, 0, width, height, outPixels, 0,
+ width);
+ PixelGrabber pg2 = new PixelGrabber(image, 0, 0, width, height, pixels,
+ 0, width);
+ pg1.grabPixels();
+ pg2.grabPixels();
+
+ h.check(comparePixels(pixels, outPixels, size));
+ }
+ catch (Exception e)
+ {
+ exceptionCaught = true;
+ }
+
+ h.check(! exceptionCaught);
+ }
+
+ private boolean comparePixels(int[] a, int[] b, int size)
+ {
+ for (int i = 0; i < size; i++)
+ if (a[i] != b[i])
+ return false;
+ return true;
+ }
}
Index: gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp
===================================================================
RCS file: gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp
diff -N gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp
Binary files /dev/null and outputBitmap.bmp differ