@Test
public void test4Dto3DInverse()
{
final long[] dim = new long[] { 10, 20, 30, 40 };
final SequentializeTransform t = new SequentializeTransform( dim, 3 );
final long[] source = new long[ 4 ];
final long[] target = new long[ 3 ];
final long[] expectedSource = new long[ 4 ];
source[ 0 ] = 0;
source[ 1 ] = 0;
source[ 2 ] = 0;
source[ 3 ] = 0;
t.apply( source, target );
for ( int d = 0; d < 4; ++d )
{
expectedSource[ d ] = source[ d ];
source[ d ] = -1;
}
t.applyInverse( source, target );
assertArrayEquals( expectedSource, source );
source[ 0 ] = 0;
source[ 1 ] = 0;
source[ 2 ] = 0;
source[ 3 ] = 1;
t.apply( source, target );
for ( int d = 0; d < 4; ++d )
{
expectedSource[ d ] = source[ d ];
source[ d ] = -1;
}
t.applyInverse( source, target );
assertArrayEquals( expectedSource, source );
source[ 0 ] = 9;
source[ 1 ] = 4;
source[ 2 ] = 2;
source[ 3 ] = 3;
t.apply( source, target );
for ( int d = 0; d < 4; ++d )
{
expectedSource[ d ] = source[ d ];
source[ d ] = -1;
}
t.applyInverse( source, target );
assertArrayEquals( expectedSource, source );
}