aboutsummaryrefslogtreecommitdiff
path: root/gnu/testlet/java/awt/image/AffineTransformOp/filterImage.java
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/testlet/java/awt/image/AffineTransformOp/filterImage.java')
-rw-r--r--gnu/testlet/java/awt/image/AffineTransformOp/filterImage.java122
1 files changed, 122 insertions, 0 deletions
diff --git a/gnu/testlet/java/awt/image/AffineTransformOp/filterImage.java b/gnu/testlet/java/awt/image/AffineTransformOp/filterImage.java
new file mode 100644
index 00000000..63716982
--- /dev/null
+++ b/gnu/testlet/java/awt/image/AffineTransformOp/filterImage.java
@@ -0,0 +1,122 @@
+/* filterImage.java -- some checks for the filter(Image) method of the
+ AffineTransformOp class.
+ Copyright (C) 2006 Francis Kung <fkung@redhat.com>
+This file is part of Mauve.
+
+Mauve is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+Mauve is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mauve; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+*/
+
+// Tags: JDK1.2
+
+package gnu.testlet.java.awt.image.AffineTransformOp;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Line2D;
+import java.awt.image.AffineTransformOp;
+import java.awt.image.BufferedImage;
+
+/**
+ * Checks the filter(BufferedImage) method in the {@link AffineTransformOp} class.
+ */
+public class filterImage implements Testlet
+{
+
+ /**
+ * Runs the test using the specified harness.
+ *
+ * @param harness the test harness (<code>null</code> not permitted).
+ */
+ public void test(TestHarness harness)
+ {
+ testDefaults(harness);
+
+ // Should write a test to ensure that the filter can actually be applied
+ // properly. Since interpolation comes into play, however, I don't know
+ // of a good way to test it, as our filtered image will be different
+ // from the reference implementation's...
+ }
+
+ private void testDefaults(TestHarness harness)
+ {
+ // Create an image to work on
+ BufferedImage img = new BufferedImage(20, 20, BufferedImage.TYPE_USHORT_GRAY);
+ Graphics2D g = (Graphics2D)img.getGraphics();
+ g.draw(new Line2D.Double(0, 0, 20, 20));
+
+ AffineTransform xform = new AffineTransform();
+ AffineTransformOp op = new AffineTransformOp(xform, AffineTransformOp.TYPE_BICUBIC);
+
+ // Src and dst images cannot be the same
+ try
+ {
+ op.filter(img, img);
+ harness.check(false);
+ }
+ catch (IllegalArgumentException e)
+ {
+ harness.check(true);
+ }
+
+ // Src and dst are different sizes (allowed)
+ BufferedImage dst = new BufferedImage(30, 40, BufferedImage.TYPE_USHORT_GRAY);
+ try
+ {
+ op.filter(img, dst);
+ harness.check(true);
+ }
+ catch (IllegalArgumentException e)
+ {
+ harness.check(false);
+ }
+
+ // Src and dst have different tpyes (allowed)
+ dst = new BufferedImage(20, 20, BufferedImage.TYPE_INT_ARGB);
+ try
+ {
+ op.filter(img, dst);
+ harness.check(true);
+ }
+ catch (IllegalArgumentException e)
+ {
+ harness.check(false);
+ }
+
+ // Src and dst are different sizes AND different types (not allowed)
+ /*
+ * Fails on the ref impl...
+ *
+ dst = new BufferedImage(30, 40, BufferedImage.TYPE_INT_ARGB);
+ try
+ {
+ op.filter(img, dst);
+ harness.check(false);
+ }
+ catch (IllegalArgumentException e)
+ {
+ harness.check(true);
+ }
+ */
+
+ // Checks the destination image type
+ dst = op.filter(img, null);
+ harness.check(dst.getType(), op.createCompatibleDestImage(img, null).getType());
+ }
+}
+