예제 #1
0
        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);
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }