final Matrix component = MathTransforms.getMatrix(separator.separate()); if (component != null) { final int[] targets = separator.getTargetDimensions(); for (int j=0; j<targets.length; j++) { final int tgtDim = targets[j];
s.getTargetDimensions(); fail("Shall not return unspecified dimensions."); } catch (IllegalStateException e) { s.addTargetDimensions(0, 3, 4); assertArrayEquals("sourceDimensions", new int[] {1, 2, 3}, s.getSourceDimensions()); assertArrayEquals("targetDimensions", new int[] {0, 3, 4}, s.getTargetDimensions()); try { s.addSourceDimensions(3, 4, 5); s.addTargetDimensionRange(6, 8); assertArrayEquals("sourceDimensions", new int[] {1, 2, 3, 4, 6}, s.getSourceDimensions()); assertArrayEquals("targetDimensions", new int[] {0, 3, 4, 6, 7}, s.getTargetDimensions()); try { s.addSourceDimensions(8);
/** * Tests separation of a linear transform containing {@link Double#NaN} values. * * @throws FactoryException if an error occurred while creating a new transform. */ @Test public void testIncompleteTransform() throws FactoryException { Matrix matrix = new Matrix4( 1, 0, 0, 7, 0, 0, 1, 8, 0, NaN, 0, 6, 0, 0, 0, 1 ); TransformSeparator s = new TransformSeparator(MathTransforms.linear(matrix)); s.addSourceDimensions(1); assertMatrixEquals("transform", new Matrix2( NaN, 6, 0, 1 ), ((LinearTransform) s.separate()).getMatrix(), STRICT); assertArrayEquals(new int[] {2}, s.getTargetDimensions()); }
assertSame("No source dimensions should be trimmed if not requested.", tr, s.separate()); assertArrayEquals(new int[] {0, 1, 2}, s.getSourceDimensions()); assertArrayEquals(new int[] {0, 1 }, s.getTargetDimensions()); assertNotEquals("separate()", tr, reduced); assertArrayEquals(new int[] {0, 1}, s.getSourceDimensions()); assertArrayEquals(new int[] {0, 1}, s.getTargetDimensions()); assertMatrixEquals("separate()", expected, MathTransforms.getMatrix(reduced), STRICT); assertNotEquals("separate()", tr, reduced); assertArrayEquals(new int[] {1, 2}, s.getSourceDimensions()); assertArrayEquals(new int[] {0, 1}, s.getTargetDimensions()); assertMatrixEquals("separate()", new Matrix3( 0, 0.5, -90,
assertArrayEquals("targetDimensions", new int[] {0, 1, 2, 3, 4, 5, 6, 7}, s.getTargetDimensions()); MathTransform result = s.separate(); assertArrayEquals("sourceDimensions", new int[] {0, 1, 2, 3, 4, 5, 6}, s.getSourceDimensions()); assertArrayEquals("targetDimensions", new int[] {1, 2, 7}, s.getTargetDimensions()); final Random random = TestUtilities.createRandomNumberGenerator(); compare(s.transform, MathTransforms.linear(expected), result, random); result = s.separate(); assertArrayEquals ("sourceDimensions", new int[] {0, 1, 2, 3, 4, 5, 6}, s.getSourceDimensions()); assertArrayEquals ("targetDimensions", new int[] {1, 5, 7}, s.getTargetDimensions()); assertInstanceOf ("separate()", LinearTransform.class, result); assertMatrixEquals("separate().transform2", expected, ((LinearTransform) result).getMatrix(), STRICT); result = s.separate(); assertArrayEquals ("sourceDimensions", new int[] {0, 6}, s.getSourceDimensions()); assertArrayEquals ("targetDimensions", new int[] {0, 7}, s.getTargetDimensions()); assertInstanceOf ("separate()", LinearTransform.class, result); assertMatrixEquals("separate().transform2", expected, ((LinearTransform) result).getMatrix(), STRICT); result = s.separate(); assertArrayEquals("sourceDimensions", new int[] {1, 2, 3, 4, 5}, s.getSourceDimensions()); assertArrayEquals("targetDimensions", new int[] {1, 2, 3, 4, 5, 6}, s.getTargetDimensions()); assertInstanceOf ("separate()", PassThroughTransform.class, result); assertSame ("subTransform", nonLinear, ((PassThroughTransform) result).subTransform);
assertArrayEquals("targetDimensions", new int[] {0, 1, 2}, s.getTargetDimensions()); assertMatrixEquals("transform", matrix, ((LinearTransform) s.separate()).getMatrix(), STRICT); assertArrayEquals("sourceDimensions", new int[] {0, 1, 2}, s.getSourceDimensions()); assertArrayEquals("targetDimensions", new int[] {0, 2}, s.getTargetDimensions()); assertMatrixEquals("transform", matrix, ((LinearTransform) s.separate()).getMatrix(), STRICT); assertArrayEquals("sourceDimensions", new int[] {1, 2}, s.getSourceDimensions()); assertArrayEquals("targetDimensions", new int[] {1}, s.getTargetDimensions()); assertMatrixEquals("transform", matrix, ((LinearTransform) s.separate()).getMatrix(), STRICT); assertArrayEquals("sourceDimensions", new int[] {0, 2}, s.getSourceDimensions()); assertArrayEquals("targetDimensions", new int[] {0}, s.getTargetDimensions());