public void PlaneEqualsTest() { PlaneD a = new PlaneD(1.0f, 2.0f, 3.0f, 4.0f); PlaneD b = new PlaneD(1.0f, 2.0f, 3.0f, 4.0f); // 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.Normal = new Vector3D(10.0f, b.Normal.Y, b.Normal.Z); obj = b; expected = false; actual = a.Equals(obj); Assert.AreEqual(expected, actual); // case 3: compare between different types. obj = new QuaternionD(); 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 PlaneEqualsNanTest() { PlaneD a = new PlaneD(double.NaN, 0, 0, 0); PlaneD b = new PlaneD(0, double.NaN, 0, 0); PlaneD c = new PlaneD(0, 0, double.NaN, 0); PlaneD d = new PlaneD(0, 0, 0, double.NaN); Assert.False(a == new PlaneD(0, 0, 0, 0)); Assert.False(b == new PlaneD(0, 0, 0, 0)); Assert.False(c == new PlaneD(0, 0, 0, 0)); Assert.False(d == new PlaneD(0, 0, 0, 0)); Assert.True(a != new PlaneD(0, 0, 0, 0)); Assert.True(b != new PlaneD(0, 0, 0, 0)); Assert.True(c != new PlaneD(0, 0, 0, 0)); Assert.True(d != new PlaneD(0, 0, 0, 0)); Assert.False(a.Equals(new PlaneD(0, 0, 0, 0))); Assert.False(b.Equals(new PlaneD(0, 0, 0, 0))); Assert.False(c.Equals(new PlaneD(0, 0, 0, 0))); Assert.False(d.Equals(new PlaneD(0, 0, 0, 0))); // 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)); }
public void PlaneEqualsTest1() { PlaneD a = new PlaneD(1.0f, 2.0f, 3.0f, 4.0f); PlaneD b = new PlaneD(1.0f, 2.0f, 3.0f, 4.0f); // 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.Normal = new Vector3D(10.0f, b.Normal.Y, b.Normal.Z); expected = false; actual = a.Equals(b); Assert.AreEqual(expected, actual); }