@Test
public void testCreateCoordinateOperation() throws TransformException {

    
    try {
        assertNull(factory.createCoordinateOperation(INVALID_CRS));
    } catch (FactoryException e) {
        fail(factory.getClass().getSimpleName() + " threw a FactoryException when requesting"
          + "a nonexistent operation. Instead, a NoSuchAuthorityCodeException was expected.");
    }
    try {
        // Test CoordinateOperation
        CoordinateOperation co = factory.createCoordinateOperation(CRS_PAIR);
        assertNotNull(co);
        // Test CRSs
        CoordinateReferenceSystem crs = CRS.decode(SOURCE_CRS);
        assertSame(crs, co.getSourceCRS());
        crs = CRS.decode(TARGET_CRS);
        assertSame(crs, co.getTargetCRS());
        
        // Test MathTransform
        assertTrue(co.getMathTransform() instanceof MathTransform);
        double[] p = new double[2];
        co.getMathTransform().transform(SRC_TEST_POINT, 0, p, 0, 1);
        assertEquals(p[0], DST_TEST_POINT[0], 1e-8);
        assertEquals(p[1], DST_TEST_POINT[1], 1e-8);
    } catch (FactoryException e) {
        fail(factory.getClass().getSimpleName() + " threw a FactoryException when creating" +
                " coordinate operation from an existing code.");            
    }
}