public void Protected_CalculateLengthOfLineInsidePolygon()
        {
            XYPolygon xypolygon = new XYPolygon();

            xypolygon.Points.Add(new XYPoint(1, 1));
            xypolygon.Points.Add(new XYPoint(9, 1));
            xypolygon.Points.Add(new XYPoint(5, 5));
            xypolygon.Points.Add(new XYPoint(5, 3));
            xypolygon.Points.Add(new XYPoint(3, 3));
            xypolygon.Points.Add(new XYPoint(3, 8));
            xypolygon.Points.Add(new XYPoint(9, 8));
            xypolygon.Points.Add(new XYPoint(9, 11));
            xypolygon.Points.Add(new XYPoint(1, 11));

            Assert.AreEqual(0, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 12, 11, 12), xypolygon), "Test1");
            Assert.AreEqual(4, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 11, 11, 11), xypolygon), "Test2");
            Assert.AreEqual(8, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 10, 11, 10), xypolygon), "Test3");
            Assert.AreEqual(8, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 9, 11, 9), xypolygon), "Test4");

            Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 8, 11, 8), xypolygon), "Test5");
            Assert.AreEqual(2, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 7, 11, 7), xypolygon), "Test6");
            Assert.AreEqual(2, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 5, 11, 5), xypolygon), "Test7");
            Assert.AreEqual(3, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 4, 11, 4), xypolygon), "Test8");

            Assert.AreEqual(3, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 4, 11, 4), xypolygon), "Test9");
            Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 3, 11, 3), xypolygon), "Test10");
            Assert.AreEqual(7, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 2, 11, 2), xypolygon), "Test11");
            Assert.AreEqual(4, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 1, 11, 1), xypolygon), "Test12");
            Assert.AreEqual(0, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 0, 11, 0), xypolygon), "Test13");

            Assert.AreEqual(10, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(2, 12, 2, 0), xypolygon), "Test14");
            Assert.AreEqual(6, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(6, 12, 6, 0), xypolygon), "Test15");
            Assert.AreEqual(Math.Sqrt(8) + 1.5 * Math.Sqrt(0.5), AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(1, 0.5, 10, 9.5), xypolygon), "Test16");
            Assert.AreEqual(1, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2, 4, 2, 4), xypolygon), "Test17");
            Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(4, 12, 4, 0), xypolygon), "Test18");
        }