package jalview.math;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotSame;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
}
}
Matrix m1 = new Matrix(in);
+
Matrix m2 = (Matrix) m1.copy();
assertNotSame(m1, m2);
assertTrue(matrixEquals(m1, m2));
+ assertNull(m2.d);
+ assertNull(m2.e);
+
+ /*
+ * now add d and e vectors and recopy
+ */
+ m1.d = Arrays.copyOf(in[2], in[2].length);
+ m1.e = Arrays.copyOf(in[4], in[4].length);
+ m2 = (Matrix) m1.copy();
+ assertNotSame(m2.d, m1.d);
+ assertNotSame(m2.e, m1.e);
+ assertEquals(m2.d, m1.d);
+ assertEquals(m2.e, m1.e);
}
/**
assertMatricesMatch(m1, m2);
}
- private void assertMatricesMatch(MatrixI m1, MatrixI m2)
+ public static void assertMatricesMatch(MatrixI m1, MatrixI m2)
{
if (m1.height() != m2.height())
{
}
}
}
- ArrayAsserts.assertArrayEquals(m1.getD(), m2.getD(), 0.00001d);
- ArrayAsserts.assertArrayEquals(m1.getE(), m2.getE(), 0.00001d);
+ ArrayAsserts.assertArrayEquals("D vector", m1.getD(), m2.getD(),
+ 0.00001d);
+ ArrayAsserts.assertArrayEquals("E vector", m1.getE(), m2.getE(),
+ 0.00001d);
}
@Test(groups = "Functional")
values[0][0] = -1d;
assertEquals(m.getValue(0, 0), 1d, DELTA); // unchanged
}
+
+ @Test(groups = "Functional")
+ 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);
+
+ 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, delta));
+ assertFalse(m2.equals(m1, delta));
+
+ // must be same shape
+ values2 = new double[][] { { 1, 2, 3 } };
+ m2 = new Matrix(values2);
+ assertFalse(m2.equals(m1, delta));
+
+ assertFalse(m1.equals(null, delta));
+ }
}