import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotEquals;
import static org.testng.Assert.assertNotSame;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
}
@Test(groups = "Functional")
- public void testEquals_hashCode()
+ public void testEquals()
{
double[][] values = new double[][] { { 1, 2, 3 }, { 4, 5, 6 } };
Matrix m1 = new Matrix(values);
double[][] values2 = new double[][] { { 1, 2, 3 }, { 4, 5, 6 } };
Matrix m2 = new Matrix(values2);
- assertTrue(m1.equals(m1));
- assertTrue(m1.equals(m2));
- assertTrue(m2.equals(m1));
- // equal objects should have same hashCode
- assertEquals(m1.hashCode(), m2.hashCode());
+ double delta = 0.0001d;
+ assertTrue(m1.equals(m1, delta));
+ assertTrue(m1.equals(m2, delta));
+ assertTrue(m2.equals(m1, delta));
double[][] values3 = new double[][] { { 1, 2, 3 }, { 4, 5, 7 } };
m2 = new Matrix(values3);
- assertFalse(m1.equals(m2));
- assertFalse(m2.equals(m1));
- assertNotEquals(m1.hashCode(), m2.hashCode());
-
- // same hashCode doesn't always mean equal
- values2 = new double[][] { { 1, 2, 3 }, { 4, 6, 5 } };
- m2 = new Matrix(values2);
- assertFalse(m2.equals(m1));
- assertEquals(m1.hashCode(), m2.hashCode());
+ assertFalse(m1.equals(m2, delta));
+ assertFalse(m2.equals(m1, delta));
// must be same shape
values2 = new double[][] { { 1, 2, 3 } };
m2 = new Matrix(values2);
- assertFalse(m2.equals(m1));
+ assertFalse(m2.equals(m1, delta));
- assertFalse(m1.equals(null));
- assertFalse(m1.equals("foo"));
+ assertFalse(m1.equals(null, delta));
}
}