@Test
public void testEquals() {
final Integer dim = 2;
final DefaultOperationMethod m1 = create("Mercator (variant A)", "9804", "EPSG guidance note #7-2", dim);
final DefaultOperationMethod m2 = create("Mercator (variant A)", "9804", "E = FE + a*ko(lon - lonO)", dim);
assertFalse ("STRICT", m1.equals(m2, ComparisonMode.STRICT));
assertFalse ("BY_CONTRACT", m1.equals(m2, ComparisonMode.BY_CONTRACT));
assertTrue ("IGNORE_METADATA", m1.equals(m2, ComparisonMode.IGNORE_METADATA));
assertEquals("Hash code should ignore metadata.", m1.hashCode(), m2.hashCode());
final DefaultOperationMethod m3 = create("Mercator (variant B)", "9805", "EPSG guidance note #7-2", dim);
final DefaultOperationMethod m4 = create("mercator (variant b)", "9805", "EPSG guidance note #7-2", dim);
assertFalse("IGNORE_METADATA", m1.equals(m3, ComparisonMode.IGNORE_METADATA));
assertTrue ("IGNORE_METADATA", m3.equals(m4, ComparisonMode.IGNORE_METADATA));
assertFalse("BY_CONTRACT", m3.equals(m4, ComparisonMode.BY_CONTRACT));
}