public void LineSegment_Slice_ShouldReturnOriginalSegment_IfPointIsOnBasePointLineSegment()
        {
            LineSegment lineSegment = new LineSegment(Point.MakePointWithInches(1, 1, 1));
            Point point = Point.MakePointWithInches(0, 0, 0);

            List<LineSegment> lineSegmentList = new List<LineSegment>();
            lineSegmentList.Add(lineSegment);

            lineSegment.Slice(point).Should().BeEquivalentTo(lineSegmentList);
        }
        public void LineSegment_Slice_ShouldThrowException_IfPointIsNull()
        {
            LineSegment lineSegment = new LineSegment(Point.MakePointWithInches(1, 1, 1));
            Point point = null;

            Action slice = () => lineSegment.Slice(point);
            slice.ShouldThrow<Exception>();
        }
        public void LineSegment_Slice_ShouldReturnListWithSplicedLineSegments_IfPointIsOnLineSegment()
        {
            LineSegment lineSegment = new LineSegment(Point.MakePointWithInches(1, 1, 1));
            Point point = Point.MakePointWithInches(0.5, 0.5, 0.5);

            LineSegment splicedLineSegment1 = new LineSegment(Point.MakePointWithInches(0.5, 0.5, 0.5));
            LineSegment splicedLineSegment2 = new LineSegment(Point.MakePointWithInches(0.5, 0.5, 0.5), Point.MakePointWithInches(1, 1, 1));

            List<LineSegment> lineSegmentList = new List<LineSegment>();
            lineSegmentList.Add(splicedLineSegment1);
            lineSegmentList.Add(splicedLineSegment2);

            lineSegment.Slice(point).Should().BeEquivalentTo(lineSegmentList);
        }