public void CatenaryTest()
        {
            Span s = new Span(new Vector2(15, 100), 300, 50);
            var  c = new Catenary(s, 1.15, 770);

            Assert.IsTrue(c.IsOK);
            Assert.IsTrue(s.Equals(c));
            Assert.AreEqual(1.15, c.CableWeight);
            Assert.AreEqual(770, c.HorizontalTension);

            Assert.AreEqual(669.5652, c.CatenaryConstant, 1e-4);
            CollectionAssert.AreEqual(new Vector2(54.832, 98.815), c.SagPoint, Extensions.AbsComparer(1e-3));
            Assert.AreEqual(98.8149, c.Clearance, 1e-4);
            CollectionAssert.AreEqual(new Vector2(-770, 45.833), c.StartTension, Extensions.AbsComparer(1e-3));
            CollectionAssert.AreEqual(new Vector2(770, 306.78), c.EndTension, Extensions.AbsComparer(1e-3));
            Assert.AreEqual(0.2240, c.Eta, 1e-4);
            Assert.AreEqual(0.8160, c.GeometricStrainPct, 1e-4);
            Assert.IsFalse(c.IsStartTowerUplift);
            Assert.IsFalse(c.IsEndTowerUplift);
            CollectionAssert.AreEqual(new Vector2(54.832, 98.815), c.LowestPosition, Extensions.AbsComparer(1e-3));
            Assert.AreEqual(17.1019, c.MaximumSag, 1e-4);
            Assert.AreEqual(17.1012, c.MidSag, 1e-4);
            Assert.AreEqual(306.6199, c.TotalLength, 1e-4);
            Assert.AreEqual(352.6128, c.TotalWeight, 1e-4);
        }
        public void SetClearancePointTest()
        {
            var c     = new Catenary(new Vector2(15, 100), 300, 50, 1.15, 770);
            var point = new Vector2(50.0, 95.0);

            c.SetClearancePoint(point);
            var x      = point.X;
            var actual = new Vector2(x, c.CatenaryFunction(x));

            CollectionAssert.AreEqual(point, actual, Extensions.AbsComparer(1e-3));
        }