Skip to content

Commit adb01b8

Browse files
bnorthanawalter17
authored andcommitted
Add transform test
1 parent b882573 commit adb01b8

File tree

3 files changed

+81
-0
lines changed

3 files changed

+81
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/*-
2+
* #%L
3+
* ImageJ software for multidimensional image processing and analysis.
4+
* %%
5+
* Copyright (C) 2014 - 2018 ImageJ developers.
6+
* %%
7+
* Redistribution and use in source and binary forms, with or without
8+
modification, are permitted provided that the following conditions are met:
9+
10+
1. Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
2. Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
16+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
20+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26+
POSSIBILITY OF SUCH DAMAGE.
27+
* #L%
28+
*/
29+
30+
package net.imagej.ops.transform.realTransform;
31+
32+
import static org.junit.Assert.assertEquals;
33+
34+
import net.imagej.ops.AbstractOpTest;
35+
import net.imglib2.Cursor;
36+
import net.imglib2.RandomAccess;
37+
import net.imglib2.RandomAccessibleInterval;
38+
import net.imglib2.img.Img;
39+
import net.imglib2.realtransform.AffineTransform2D;
40+
import net.imglib2.type.numeric.integer.UnsignedByteType;
41+
import net.imglib2.view.Views;
42+
43+
import org.junit.Test;
44+
45+
public class RealTransformTest extends AbstractOpTest {
46+
47+
@Test
48+
public void regressionTest() throws Exception {
49+
50+
final Img<UnsignedByteType> image = openUnsignedByteType(getClass(),
51+
"lowresbridge.tif");
52+
final Img<UnsignedByteType> expectedOutput = openUnsignedByteType(
53+
getClass(), "rotatedscaledcenter.tif");
54+
55+
final AffineTransform2D transform = new AffineTransform2D();
56+
57+
transform.translate(-image.dimension(0) / 2, -image.dimension(0) / 2);
58+
transform.rotate(1);
59+
transform.scale(0.5);
60+
transform.translate(image.dimension(0) / 2, image.dimension(0) / 2);
61+
62+
final RandomAccessibleInterval<UnsignedByteType> actualOutput = ops
63+
.transform().realTransform(image, transform);
64+
65+
// compare the output image data to that stored in the file.
66+
final Cursor<UnsignedByteType> cursor = Views.iterable(actualOutput)
67+
.localizingCursor();
68+
final RandomAccess<UnsignedByteType> actualRA = actualOutput.randomAccess();
69+
final RandomAccess<UnsignedByteType> expectedRA = expectedOutput
70+
.randomAccess();
71+
72+
while (cursor.hasNext()) {
73+
cursor.fwd();
74+
actualRA.setPosition(cursor);
75+
expectedRA.setPosition(cursor);
76+
assertEquals(expectedRA.get().get(), actualRA.get().get(), 0);
77+
}
78+
79+
}
80+
81+
}
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)