public void Protected_CalculateSharedLength()
 {
     Assert.AreEqual(Math.Sqrt(2), AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(0, 0, 1, 1)), "Test1");
     Assert.AreEqual(0, AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(10, 10, 11, 11)), "Test2");
     Assert.AreEqual(Math.Sqrt(2) / 2, AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(0.5, 0.5, 10, 10)), "Test3");
     Assert.AreEqual(0, AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(1, 4, 1, 5)), "Test4 vertical lines");
     Assert.AreEqual(1, AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(1, 2, 1, 5)), "Test4");
     Assert.AreEqual(0, AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(2, 1, 2, 5)), "Test5");
     Assert.AreEqual(2, AXYGeometryTools.ACalculateSharedLength(new XYLine(7, 3, 10, 3), new XYLine(8, 3, 11, 3)), "Test5");
     Assert.AreEqual(0, AXYGeometryTools.ACalculateSharedLength(new XYLine(7, 3, 10, 3), new XYLine(11, 3, 13, 3)), "Test6");
     Assert.AreEqual(30, AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 40, 20, 0), new XYLine(20, 40, 20, 10)), "Test7");
     Assert.AreEqual(30, AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 40, 20, 10), new XYLine(20, 40, 20, 10)), "Test8");
     Assert.AreEqual(30, AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 10, 20, 40), new XYLine(20, 10, 20, 40)), "Test9");
     Assert.AreEqual(0, AXYGeometryTools.ACalculateSharedLength(new XYLine(10, 40, 20, 40), new XYLine(20, 40, 20, 10)), "Test10");
 }