public void Matrix3x3EqualsTest() { Matrix3x3 a = GenerateIncrementalMatrixNumber(); Matrix3x3 b = GenerateIncrementalMatrixNumber(); // case 1: compare between same values object?obj = b; bool expected = true; bool actual = a.Equals(obj); Assert.AreEqual(expected, actual); // case 2: compare between different values b.M11 = 11.0f; obj = b; expected = false; actual = a.Equals(obj); Assert.AreEqual(expected, actual); // case 3: compare between different types. obj = new Vector4(); expected = false; actual = a.Equals(obj); Assert.AreEqual(expected, actual); // case 3: compare against null. obj = null; expected = false; actual = a.Equals(obj); Assert.AreEqual(expected, actual); }
public void Matrix3x3EqualsTest1() { Matrix3x3 a = GenerateIncrementalMatrixNumber(); Matrix3x3 b = GenerateIncrementalMatrixNumber(); // case 1: compare between same values bool expected = true; bool actual = a.Equals(b); Assert.AreEqual(expected, actual); // case 2: compare between different values b.M11 = 11.0f; expected = false; actual = a.Equals(b); Assert.AreEqual(expected, actual); }
public void TestEquals() { Matrix3x3 m1 = new Matrix3x3(1.0f, 2.0f, 3.0f, 0.0f, -5.0f, .5f, .3f, .35f, .025f); Matrix3x3 m2 = new Matrix3x3(1.0f, 2.0f, 3.0f, 0.0f, -5.0f, .5f, .3f, .35f, .025f); Matrix3x3 m3 = new Matrix3x3(0.0f, 2.0f, 25.0f, 1.0f, 5.0f, 5.5f, 1.25f, 8.5f, 2.25f); //Test IEquatable Equals Assert.IsTrue(m1.Equals(m2), "Test IEquatable equals"); Assert.IsFalse(m1.Equals(m3), "Test IEquatable equals"); //Test object equals override Assert.IsTrue(m1.Equals((object)m2), "Tests object equals"); Assert.IsFalse(m1.Equals((object)m3), "Tests object equals"); //Test op equals Assert.IsTrue(m1 == m2, "Testing OpEquals"); Assert.IsFalse(m1 == m3, "Testing OpEquals"); //Test op not equals Assert.IsTrue(m1 != m3, "Testing OpNotEquals"); Assert.IsFalse(m1 != m2, "Testing OpNotEquals"); }
public void TestEquals() { Matrix3x3 m1 = new Matrix3x3(1.0f, 2.0f, 3.0f, 0.0f, -5.0f, .5f, .3f, .35f, .025f); Matrix3x3 m2 = new Matrix3x3(1.0f, 2.0f, 3.0f, 0.0f, -5.0f, .5f, .3f, .35f, .025f); Matrix3x3 m3 = new Matrix3x3(0.0f, 2.0f, 25.0f, 1.0f, 5.0f, 5.5f, 1.25f, 8.5f, 2.25f); //Test IEquatable Equals Assert.IsTrue(m1.Equals(m2), "Test IEquatable equals"); Assert.IsFalse(m1.Equals(m3), "Test IEquatable equals"); //Test object equals override Assert.IsTrue(m1.Equals((object) m2), "Tests object equals"); Assert.IsFalse(m1.Equals((object) m3), "Tests object equals"); //Test op equals Assert.IsTrue(m1 == m2, "Testing OpEquals"); Assert.IsFalse(m1 == m3, "Testing OpEquals"); //Test op not equals Assert.IsTrue(m1 != m3, "Testing OpNotEquals"); Assert.IsFalse(m1 != m2, "Testing OpNotEquals"); }
public void Test_Equals() { var delta = 0.00001f; var a = new Matrix3x3 (1, 1, 1, 1, 1, 1, 1, 1, 1); var b = new Matrix3x3 (1 + delta, 1 + delta, 1 + delta, 1 + delta, 1 + delta, 1 + delta, 1 + delta, 1 + delta, 1 + delta); Assert.IsTrue (a.Equals (b)); // 誤差許容 Assert.IsFalse (a == b); // 厳密な比較 Assert.IsFalse (a.GetHashCode () == b.GetHashCode ()); // 厳密な比較に基づくハッシュ値 }
public void Matrix3x3EqualsNanTest() { Matrix3x3 a = new Matrix3x3(float.NaN, 0, 0, 0, 0, 0, 0, 0, 0); Matrix3x3 b = new Matrix3x3(0, float.NaN, 0, 0, 0, 0, 0, 0, 0); Matrix3x3 c = new Matrix3x3(0, 0, float.NaN, 0, 0, 0, 0, 0, 0); Matrix3x3 d = new Matrix3x3(0, 0, 0, float.NaN, 0, 0, 0, 0, 0); Matrix3x3 e = new Matrix3x3(0, 0, 0, 0, float.NaN, 0, 0, 0, 0); Matrix3x3 f = new Matrix3x3(0, 0, 0, 0, 0, float.NaN, 0, 0, 0); Matrix3x3 g = new Matrix3x3(0, 0, 0, 0, 0, 0, float.NaN, 0, 0); Matrix3x3 h = new Matrix3x3(0, 0, 0, 0, 0, 0, 0, float.NaN, 0); Matrix3x3 i = new Matrix3x3(0, 0, 0, 0, 0, 0, 0, 0, float.NaN); Assert.False(a == new Matrix3x3()); Assert.False(b == new Matrix3x3()); Assert.False(c == new Matrix3x3()); Assert.False(d == new Matrix3x3()); Assert.False(e == new Matrix3x3()); Assert.False(f == new Matrix3x3()); Assert.False(g == new Matrix3x3()); Assert.False(h == new Matrix3x3()); Assert.False(i == new Matrix3x3()); Assert.True(a != new Matrix3x3()); Assert.True(b != new Matrix3x3()); Assert.True(c != new Matrix3x3()); Assert.True(d != new Matrix3x3()); Assert.True(e != new Matrix3x3()); Assert.True(f != new Matrix3x3()); Assert.True(g != new Matrix3x3()); Assert.True(h != new Matrix3x3()); Assert.True(i != new Matrix3x3()); Assert.False(a.Equals(new Matrix3x3())); Assert.False(b.Equals(new Matrix3x3())); Assert.False(c.Equals(new Matrix3x3())); Assert.False(d.Equals(new Matrix3x3())); Assert.False(e.Equals(new Matrix3x3())); Assert.False(f.Equals(new Matrix3x3())); Assert.False(g.Equals(new Matrix3x3())); Assert.False(h.Equals(new Matrix3x3())); Assert.False(i.Equals(new Matrix3x3())); Assert.False(a.IsIdentity); Assert.False(b.IsIdentity); Assert.False(c.IsIdentity); Assert.False(d.IsIdentity); Assert.False(e.IsIdentity); Assert.False(f.IsIdentity); Assert.False(g.IsIdentity); Assert.False(h.IsIdentity); Assert.False(i.IsIdentity); // Counterintuitive result - IEEE rules for NaN comparison are weird! Assert.False(a.Equals(a)); Assert.False(b.Equals(b)); Assert.False(c.Equals(c)); Assert.False(d.Equals(d)); Assert.False(e.Equals(e)); Assert.False(f.Equals(f)); Assert.False(g.Equals(g)); Assert.False(h.Equals(h)); Assert.False(i.Equals(i)); }