Rewrote test to use JUnit 4.

This commit is contained in:
Harald Kuhr 2014-09-29 11:24:12 +02:00
parent f32110c5b8
commit f914d15677

View File

@ -1,6 +1,7 @@
package com.twelvemonkeys.image; package com.twelvemonkeys.image;
import junit.framework.TestCase; import org.junit.Ignore;
import org.junit.Test;
import java.awt.*; import java.awt.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
@ -9,6 +10,8 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import static org.junit.Assert.*;
/** /**
* ResampleOpTestCase * ResampleOpTestCase
* *
@ -16,7 +19,7 @@ import java.util.List;
* @author last modified by $Author: haku $ * @author last modified by $Author: haku $
* @version $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/test/java/com/twelvemonkeys/image/ResampleOpTestCase.java#1 $ * @version $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/test/java/com/twelvemonkeys/image/ResampleOpTestCase.java#1 $
*/ */
public class ResampleOpTestCase extends TestCase { public class ResampleOpTestCase {
protected BufferedImage createImage(final int pWidth, final int pHeigth) { protected BufferedImage createImage(final int pWidth, final int pHeigth) {
return createImage(pWidth, pHeigth, BufferedImage.TYPE_INT_ARGB); return createImage(pWidth, pHeigth, BufferedImage.TYPE_INT_ARGB);
@ -36,6 +39,7 @@ public class ResampleOpTestCase extends TestCase {
return image; return image;
} }
@Test
public void testCreateImage() { public void testCreateImage() {
// Sanity test the create method // Sanity test the create method
BufferedImage image = createImage(79, 84); BufferedImage image = createImage(79, 84);
@ -94,170 +98,225 @@ public class ResampleOpTestCase extends TestCase {
} }
// 1x1 // 1x1
@Test
public void testResample1x1Point() { public void testResample1x1Point() {
assertResample(createImage(1, 1), 10, 11, ResampleOp.FILTER_POINT); assertResample(createImage(1, 1), 10, 11, ResampleOp.FILTER_POINT);
} }
@Test
public void testResample1x1Box() { public void testResample1x1Box() {
assertResample(createImage(1, 1), 10, 11, ResampleOp.FILTER_BOX); assertResample(createImage(1, 1), 10, 11, ResampleOp.FILTER_BOX);
} }
@Test
public void testResample1x1Triangle() { public void testResample1x1Triangle() {
assertResample(createImage(1, 1), 19, 13, ResampleOp.FILTER_TRIANGLE); assertResample(createImage(1, 1), 19, 13, ResampleOp.FILTER_TRIANGLE);
} }
@Test
public void testResample1x1Lanczos() { public void testResample1x1Lanczos() {
assertResample(createImage(1, 1), 7, 49, ResampleOp.FILTER_LANCZOS); assertResample(createImage(1, 1), 7, 49, ResampleOp.FILTER_LANCZOS);
} }
@Test
public void testResample1x1Gaussian() { public void testResample1x1Gaussian() {
assertResample(createImage(1, 1), 11, 34, ResampleOp.FILTER_GAUSSIAN); assertResample(createImage(1, 1), 11, 34, ResampleOp.FILTER_GAUSSIAN);
} }
@Test
public void testResample1x1Sinc() { public void testResample1x1Sinc() {
assertResample(createImage(1, 1), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC); assertResample(createImage(1, 1), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC);
} }
// 2x2 // 2x2
@Test
public void testResample2x2Point() { public void testResample2x2Point() {
assertResample(createImage(2, 2), 10, 11, ResampleOp.FILTER_POINT); assertResample(createImage(2, 2), 10, 11, ResampleOp.FILTER_POINT);
} }
@Test
public void testResample2x2Box() { public void testResample2x2Box() {
assertResample(createImage(2, 2), 10, 11, ResampleOp.FILTER_BOX); assertResample(createImage(2, 2), 10, 11, ResampleOp.FILTER_BOX);
} }
@Test
public void testResample2x2Triangle() { public void testResample2x2Triangle() {
assertResample(createImage(2, 2), 19, 13, ResampleOp.FILTER_TRIANGLE); assertResample(createImage(2, 2), 19, 13, ResampleOp.FILTER_TRIANGLE);
} }
@Test
public void testResample2x2Lanczos() { public void testResample2x2Lanczos() {
assertResample(createImage(2, 2), 7, 49, ResampleOp.FILTER_LANCZOS); assertResample(createImage(2, 2), 7, 49, ResampleOp.FILTER_LANCZOS);
} }
@Test
public void testResample2x2Gaussian() { public void testResample2x2Gaussian() {
assertResample(createImage(2, 2), 11, 34, ResampleOp.FILTER_GAUSSIAN); assertResample(createImage(2, 2), 11, 34, ResampleOp.FILTER_GAUSSIAN);
} }
@Test
public void testResample2x2Sinc() { public void testResample2x2Sinc() {
assertResample(createImage(2, 2), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC); assertResample(createImage(2, 2), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC);
} }
// 3x3 // 3x3
@Test
public void testResample3x3Point() { public void testResample3x3Point() {
assertResample(createImage(3, 3), 10, 11, ResampleOp.FILTER_POINT); assertResample(createImage(3, 3), 10, 11, ResampleOp.FILTER_POINT);
} }
@Test
public void testResample3x3Box() { public void testResample3x3Box() {
assertResample(createImage(3, 3), 10, 11, ResampleOp.FILTER_BOX); assertResample(createImage(3, 3), 10, 11, ResampleOp.FILTER_BOX);
} }
@Test
public void testResample3x3Triangle() { public void testResample3x3Triangle() {
assertResample(createImage(3, 3), 19, 13, ResampleOp.FILTER_TRIANGLE); assertResample(createImage(3, 3), 19, 13, ResampleOp.FILTER_TRIANGLE);
} }
@Test
public void testResample3x3Lanczos() { public void testResample3x3Lanczos() {
assertResample(createImage(3, 3), 7, 49, ResampleOp.FILTER_LANCZOS); assertResample(createImage(3, 3), 7, 49, ResampleOp.FILTER_LANCZOS);
} }
@Test
public void testResample3x3Gaussian() { public void testResample3x3Gaussian() {
assertResample(createImage(3, 3), 11, 34, ResampleOp.FILTER_GAUSSIAN); assertResample(createImage(3, 3), 11, 34, ResampleOp.FILTER_GAUSSIAN);
} }
@Test
public void testResample3x3Sinc() { public void testResample3x3Sinc() {
assertResample(createImage(3, 3), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC); assertResample(createImage(3, 3), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC);
} }
// 4x4 // 4x4
@Test
public void testResample4x4Point() { public void testResample4x4Point() {
assertResample(createImage(4, 4), 10, 11, ResampleOp.FILTER_POINT); assertResample(createImage(4, 4), 10, 11, ResampleOp.FILTER_POINT);
} }
@Test
public void testResample4x4Box() { public void testResample4x4Box() {
assertResample(createImage(4, 4), 10, 11, ResampleOp.FILTER_BOX); assertResample(createImage(4, 4), 10, 11, ResampleOp.FILTER_BOX);
} }
@Test
public void testResample4x4Triangle() { public void testResample4x4Triangle() {
assertResample(createImage(4, 4), 19, 13, ResampleOp.FILTER_TRIANGLE); assertResample(createImage(4, 4), 19, 13, ResampleOp.FILTER_TRIANGLE);
} }
@Test
public void testResample4x4Lanczos() { public void testResample4x4Lanczos() {
assertResample(createImage(4, 4), 7, 49, ResampleOp.FILTER_LANCZOS); assertResample(createImage(4, 4), 7, 49, ResampleOp.FILTER_LANCZOS);
} }
@Test
public void testResample4x4Gaussian() { public void testResample4x4Gaussian() {
assertResample(createImage(4, 4), 11, 34, ResampleOp.FILTER_GAUSSIAN); assertResample(createImage(4, 4), 11, 34, ResampleOp.FILTER_GAUSSIAN);
} }
@Test
public void testResample4x4Sinc() { public void testResample4x4Sinc() {
assertResample(createImage(4, 4), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC); assertResample(createImage(4, 4), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC);
} }
// 20x20 // 20x20
@Test
public void testResample20x20Point() { public void testResample20x20Point() {
assertResample(createImage(20, 20), 10, 11, ResampleOp.FILTER_POINT); assertResample(createImage(20, 20), 10, 11, ResampleOp.FILTER_POINT);
} }
@Test
public void testResample20x20Box() { public void testResample20x20Box() {
assertResample(createImage(20, 20), 10, 11, ResampleOp.FILTER_BOX); assertResample(createImage(20, 20), 10, 11, ResampleOp.FILTER_BOX);
} }
@Test
public void testResample20x20Triangle() { public void testResample20x20Triangle() {
assertResample(createImage(20, 20), 19, 13, ResampleOp.FILTER_TRIANGLE); assertResample(createImage(20, 20), 19, 13, ResampleOp.FILTER_TRIANGLE);
} }
@Test
public void testResample20x20Lanczos() { public void testResample20x20Lanczos() {
assertResample(createImage(20, 20), 7, 49, ResampleOp.FILTER_LANCZOS); assertResample(createImage(20, 20), 7, 49, ResampleOp.FILTER_LANCZOS);
} }
@Test
public void testResample20x20Gaussian() { public void testResample20x20Gaussian() {
assertResample(createImage(20, 20), 11, 34, ResampleOp.FILTER_GAUSSIAN); assertResample(createImage(20, 20), 11, 34, ResampleOp.FILTER_GAUSSIAN);
} }
@Test
public void testResample20x20Sinc() { public void testResample20x20Sinc() {
assertResample(createImage(20, 20), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC); assertResample(createImage(20, 20), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC);
} }
// 200x160 // 200x160
@Test
public void testResample200x160Point() { public void testResample200x160Point() {
assertResample(createImage(200, 160), 10, 11, ResampleOp.FILTER_POINT); assertResample(createImage(200, 160), 10, 11, ResampleOp.FILTER_POINT);
} }
@Test
public void testResample200x160Box() { public void testResample200x160Box() {
assertResample(createImage(200, 160), 10, 11, ResampleOp.FILTER_BOX); assertResample(createImage(200, 160), 10, 11, ResampleOp.FILTER_BOX);
} }
@Test
public void testResample200x160Triangle() { public void testResample200x160Triangle() {
assertResample(createImage(200, 160), 19, 13, ResampleOp.FILTER_TRIANGLE); assertResample(createImage(200, 160), 19, 13, ResampleOp.FILTER_TRIANGLE);
} }
@Test
public void testResample200x160Lanczos() { public void testResample200x160Lanczos() {
assertResample(createImage(200, 160), 7, 49, ResampleOp.FILTER_LANCZOS); assertResample(createImage(200, 160), 7, 49, ResampleOp.FILTER_LANCZOS);
} }
@Test
public void testResample200x160Gaussian() { public void testResample200x160Gaussian() {
assertResample(createImage(200, 160), 11, 34, ResampleOp.FILTER_GAUSSIAN); assertResample(createImage(200, 160), 11, 34, ResampleOp.FILTER_GAUSSIAN);
} }
@Test
public void testResample200x160Sinc() { public void testResample200x160Sinc() {
assertResample(createImage(200, 160), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC); assertResample(createImage(200, 160), 2, 8, ResampleOp.FILTER_BLACKMAN_SINC);
} }
// Test 10x10 -> 15x5 with different algorithms and types // Test 10x10 -> 15x5 with different algorithms and types
@Test
public void testResamplePoint() { public void testResamplePoint() {
assertResampleBufferedImageTypes(ResampleOp.FILTER_POINT); assertResampleBufferedImageTypes(ResampleOp.FILTER_POINT);
} }
@Test
public void testResampleBox() { public void testResampleBox() {
assertResampleBufferedImageTypes(ResampleOp.FILTER_BOX); assertResampleBufferedImageTypes(ResampleOp.FILTER_BOX);
} }
@Test
public void testResampleTriangle() { public void testResampleTriangle() {
assertResampleBufferedImageTypes(ResampleOp.FILTER_TRIANGLE); assertResampleBufferedImageTypes(ResampleOp.FILTER_TRIANGLE);
} }
@Test
public void testResampleLanczos() { public void testResampleLanczos() {
assertResampleBufferedImageTypes(ResampleOp.FILTER_LANCZOS); assertResampleBufferedImageTypes(ResampleOp.FILTER_LANCZOS);
} }
@Ignore("Not for general unit testing")
@Test
public void testTime() {
int iterations = 1000;
for (int i = 0; i < iterations; i++) {
assertResample(createImage(50, 50), 33, 33, ResampleOp.FILTER_LANCZOS);
}
long start = System.currentTimeMillis();
for (int i = 0; i < iterations; i++) {
assertResample(createImage(512, 512), 145, 145, ResampleOp.FILTER_LANCZOS);
}
long end = System.currentTimeMillis();
System.out.printf("time: %d ms, avg %s ms%n", end - start, (end - start) / (double) iterations);
}
} }