final OperationMethod proj3D = ((MapProjection) method).redimension(sourceDimensions ^ 1, targetDimensions ^ 1); assertNotSame("redimension(3,3) should return a new method.", method, proj3D); assertSame("redimension(2,2) should give back the original method.", method, ((DefaultOperationMethod) proj3D).redimension(sourceDimensions, targetDimensions)); assertSame("Value of redimension(3,3) should have been cached.", proj3D, ((MapProjection) method).redimension(sourceDimensions ^ 1, targetDimensions ^ 1)); } else try { ((DefaultOperationMethod) method).redimension(sourceDimensions ^ 1, targetDimensions ^ 1);