コード例 #1
0
        public void LeftIntersection_OfLowerFocusWhenSweeplineIsBelowIt_ShouldBeInOrderLeftIntersectionThenSiteThenRightIntersection
            (Arc arc, Sweepline sweepline)
        {
            // Fixture setup
            var dualArc = new Arc {
                LeftNeighbour = arc.Site, Site = arc.LeftNeighbour
            };

            var lowerArc              = arc.Site.Position.Z < dualArc.Site.Position.Z ? arc : dualArc;
            var higherArc             = arc.Site.Position.Z >= dualArc.Site.Position.Z ? arc : dualArc;
            var directionOfLowerFocus = AngleUtilities.EquatorialDirection(lowerArc.Site.Position);

            // Exercise system
            var directionOfLeftIntersection  = lowerArc.LeftIntersection(sweepline);
            var directionOfRightIntersection = higherArc.LeftIntersection(sweepline);

            // Verify outcome
            var areInOrder = ArcOrderer.AreInOrder(directionOfLeftIntersection, directionOfLowerFocus, directionOfRightIntersection);

            var failureString = String.Format("Direction of left intersection: {0},\n" +
                                              "Direction of right intersection: {1},\n",
                                              directionOfLeftIntersection, directionOfRightIntersection);

            Assert.True(areInOrder, failureString);

            // Teardown
        }
コード例 #2
0
        public void AreInOrder_OnThreeCyclicallyOrderedEquatorialVectors_ShouldReturnTrue()
        {
            // Fixture setup
            var a = Utilities.VectorAt(90, -90);
            var b = Utilities.VectorAt(90, 0);
            var c = Utilities.VectorAt(90, 90);

            // Exercise system
            var areInOrder = ArcOrderer.AreInOrder(a, b, c);

            // Verify outcome
            Assert.True(areInOrder);

            // Teardown
        }
コード例 #3
0
        public void AreInOrder_WhenFirstAndLastVectorsAreEqual_ShouldReturnFalse()
        {
            // Fixture setup
            var a = Utilities.VectorAt(90, -90);
            var b = Utilities.VectorAt(90, 0);
            var c = Utilities.VectorAt(90, -90);

            // Exercise system
            var areInOrder = ArcOrderer.AreInOrder(a, b, c);

            // Verify outcome
            Assert.False(areInOrder);

            // Teardown
        }
コード例 #4
0
        public void EquatorialMidpoint_OfTwoNonpolarVectors_ShouldBeInOrderWithTheTwoVectorsEquatorialDirections
            (Vector3 u, Vector3 v)
        {
            // Fixture setup
            var directionOfU = AngleUtilities.EquatorialDirection(u);
            var directionOfV = AngleUtilities.EquatorialDirection(v);

            // Exercise system
            var midpoint = AngleUtilities.EquatorialMidpoint(u, v);

            // Verify outcome
            var areInOrder = ArcOrderer.AreInOrder(directionOfU, midpoint, directionOfV);

            var failureString = String.Format("Midpoint was {0}", midpoint);

            Assert.True(areInOrder, failureString);

            // Teardown
        }