public void AngleToXAxisAtStartPoint_ReturnsAngle_ForCounterclockwise()
        {
            // Arrange
            // Act
            var sut = new TurnCircleArcSegment(m_Circle,
                                               Constants.TurnDirection.Counterclockwise,
                                               Constants.CircleOrigin.Start,
                                               m_StartPoint,
                                               m_EndPoint);

            // Assert
            Assert.AreEqual(Angle.For90Degrees,
                            sut.AngleToXAxisAtStartPoint);
        }
        public void IsOnLine_CallsArcSegment_WhenCalled()
        {
            // Arrange
            var arcSegment = Substitute.For <IArcSegment>();
            var sut        = new TurnCircleArcSegment(arcSegment,
                                                      Constants.TurnDirection.Clockwise,
                                                      Constants.CircleOrigin.Start);

            // Act
            sut.IsOnLine(m_StartPoint);

            // Assert
            arcSegment.Received().IsOnLine(m_StartPoint);
        }
        public void Setup()
        {
            m_Circle = new Circle(0.0,
                                  0.0,
                                  100);
            m_StartPoint = new Point(100.0,
                                     0.0);
            m_EndPoint = new Point(0.0,
                                   100.0);

            m_Sut = new TurnCircleArcSegment(m_Circle,
                                             Constants.TurnDirection.Clockwise,
                                             Constants.CircleOrigin.Start,
                                             m_StartPoint,
                                             m_EndPoint);
        }
        public void IsOnLine_ReturnsValueFromCallingArcSegment_ForStartPoint()
        {
            // Arrange
            var arcSegment = Substitute.For <IArcSegment>();

            arcSegment.IsOnLine(m_StartPoint).Returns(true);

            var sut = new TurnCircleArcSegment(arcSegment,
                                               Constants.TurnDirection.Clockwise,
                                               Constants.CircleOrigin.Start);

            // Act
            bool actual = sut.IsOnLine(m_StartPoint);

            // Assert
            Assert.True(actual);
        }
        public void Constructor_SetsAngleToXAxisAtStartPoint_ForInternal()
        {
            // Arrange
            var arcSegment = Substitute.For <IArcSegment>();

            arcSegment.AngleToXAxisAtStartPoint.Returns(Angle.For45Degrees);
            var sut = new TurnCircleArcSegment(arcSegment,
                                               Constants.TurnDirection.Clockwise,
                                               Constants.CircleOrigin.Start);

            // Act
            sut.IsOnLine(m_StartPoint);

            // Assert
            Assert.AreEqual(arcSegment.AngleToXAxisAtStartPoint,
                            sut.AngleToXAxisAtStartPoint);
        }
        public void CalculateIsLargeArcReturnsFalseForCounterclockwiseAndStartTest()
        {
            var circle = new Circle(10.0,
                                    10.0,
                                    10);
            var startPoint = new Geometry.Shapes.Point(20.0,
                                                       10.0);
            var endPoint = new Geometry.Shapes.Point(10.0,
                                                     20.0);

            var segment = new TurnCircleArcSegment(circle,
                                                   Constants.TurnDirection.Counterclockwise,
                                                   Constants.CircleOrigin.Start,
                                                   startPoint,
                                                   endPoint);

            Assert.False(m_Helper.CalculateIsLargeArc(segment));
        }
示例#7
0
        private ITurnCircleArcSegment CreateTurnCircleArcSegment(ArcSegmentDto segment,
                                                                 Constants.CircleOrigin origin)
        {
            ICircle circle = CreateCircleFormCircleDto(segment.Circle);
            Point startPoint = CreatePointFromPointDto(segment.StartPoint);
            Point endPoint = CreatePointFromPointDto(segment.EndPoint);
            Constants.TurnDirection turnDirection = CreateTurnDirectionFromString(segment.TurnDirection);

            ITurnCircleArcSegment turnCircleArcSegment = new TurnCircleArcSegment(circle,
                                                                                  turnDirection,
                                                                                  origin,
                                                                                  startPoint,
                                                                                  endPoint);
            // todo equals for TurnCircleArcSegment

            return turnCircleArcSegment;
        }
        public void SegmentToArcSegmentForTurnDirectionCounterClockwiseTest()
        {
            var circle = new Circle(10.0,
                                    10.0,
                                    10);
            var startPoint = new Geometry.Shapes.Point(20.0,
                                                       10.0);
            var endPoint = new Geometry.Shapes.Point(0.0,
                                                     10.0);

            var segment = new TurnCircleArcSegment(circle,
                                                   Constants.TurnDirection.Counterclockwise,
                                                   Constants.CircleOrigin.Start,
                                                   startPoint,
                                                   endPoint);

            ArcSegment actual = m_Helper.SegmentToArcSegment(segment);

            Assert.AreEqual(m_Point,
                            actual.Point,
                            "Point");
            Assert.AreEqual(new Size(10.0,
                                     10.0),
                            actual.Size,
                            "Size");
            Assert.AreEqual(SweepDirection.Counterclockwise,
                            actual.SweepDirection,
                            "SweepDirection");
            Assert.False(actual.IsLargeArc,
                         "IsLargeArc");
        }
        public void SegmentToArcSegmentForTurnDirectionCounterClockwiseCaseOneTest()
        {
            var helper = new PathSegmentHelper(new GeometryPointToWindowsPointConverter());

            var circle = new Circle(new Geometry.Shapes.Point(350.0,
                                                              490.0),
                                    30.0);
            var startPoint = new Geometry.Shapes.Point(327.639320225002,
                                                       510.0);
            var endPoint = new Geometry.Shapes.Point(350.0,
                                                     520.0);


            var segment = new TurnCircleArcSegment(circle,
                                                   Constants.TurnDirection.Counterclockwise,
                                                   Constants.CircleOrigin.Finish,
                                                   startPoint,
                                                   endPoint);

            ArcSegment actual = helper.SegmentToArcSegment(segment);

            Assert.AreEqual(new Point(400,
                                      1430),
                            actual.Point,
                            "Point");
            Assert.AreEqual(new Size(30.0,
                                     30.0),
                            actual.Size,
                            "Size");
            Assert.AreEqual(SweepDirection.Counterclockwise,
                            actual.SweepDirection,
                            "SweepDirection");
            Assert.True(actual.IsLargeArc,
                        "IsLargeArc");
        }