This is the mail archive of the mauve-patches@sourceware.org mailing list for the Mauve project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]