public void LineSegment_ProjectOntoLine_ShouldReturnVectorProjection_IfVectorLengthIsNotZero()
        {
            LineSegment lineSegment = new LineSegment(Point.MakePointWithInches(1, 1));
            Line line = new Line(Point.MakePointWithInches(1, 0), Point.MakePointWithInches(2, 0));

            Vector vector = new Vector(lineSegment.BasePoint, lineSegment.EndPoint);

            lineSegment.ProjectOntoLine(line).Should().Be(new LineSegment(vector.ProjectOntoLine(line)));
        }
        public void LineSegment_ProjectOntoLine_ShouldThrowException_IfLineIsNull()
        {
            LineSegment lineSegment = new LineSegment(Point.MakePointWithInches(1, 1));
            Line line = null;

            Action project = () => lineSegment.ProjectOntoLine(line);
            project.ShouldThrow<Exception>();
        }
        public void LineSegment_ProjectOntoLine_ShouldReturnNull_IfVectorLengthIsZero()
        {
            LineSegment lineSegment = new LineSegment(Point.MakePointWithInches(1, 1));
            Line line = new Line(Point.MakePointWithInches(1, 0), Point.MakePointWithInches(0, 1));

            lineSegment.ProjectOntoLine(line).Should().BeNull();
        }