Example #1
0
        public void IntervalTranslation()
        {
            var interval = new IntInterval(7, true, 42, false);

            Assert.IsTrue(interval.LeftEndpoint.Bounded);
            Assert.IsTrue(interval.LeftEndpoint.Inclusive);
            Assert.AreEqual(7, interval.Left);
            Assert.IsTrue(interval.RightEndpoint.Bounded);
            Assert.IsFalse(interval.RightEndpoint.Inclusive);
            Assert.AreEqual(42, interval.Right);
            Assert.AreEqual(42 - 7, interval.Span);

            var transRight = interval.Translate(100);

            Assert.IsTrue(transRight.LeftEndpoint.Bounded);
            Assert.IsTrue(transRight.LeftEndpoint.Inclusive);
            Assert.AreEqual(107, transRight.Left);
            Assert.IsTrue(transRight.RightEndpoint.Bounded);
            Assert.IsFalse(transRight.RightEndpoint.Inclusive);
            Assert.AreEqual(142, transRight.Right);
            Assert.AreEqual(42 - 7, transRight.Span);

            var plus = interval + 100; // same as interval.Translate(100)

            Assert.IsTrue(plus.LeftEndpoint.Bounded);
            Assert.IsTrue(plus.LeftEndpoint.Inclusive);
            Assert.AreEqual(107, plus.Left);
            Assert.IsTrue(plus.RightEndpoint.Bounded);
            Assert.IsFalse(plus.RightEndpoint.Inclusive);
            Assert.AreEqual(142, plus.Right);
            Assert.AreEqual(42 - 7, plus.Span);

            var transLeft = interval.Translate(100);

            Assert.IsTrue(transLeft.LeftEndpoint.Bounded);
            Assert.IsTrue(transLeft.LeftEndpoint.Inclusive);
            Assert.AreEqual(107, transLeft.Left);
            Assert.IsTrue(transLeft.RightEndpoint.Bounded);
            Assert.IsFalse(transLeft.RightEndpoint.Inclusive);
            Assert.AreEqual(142, transLeft.Right);
            Assert.AreEqual(42 - 7, transLeft.Span);

            var minus = interval - 5; // same as interval.Translate(5)

            Assert.IsTrue(minus.LeftEndpoint.Bounded);
            Assert.IsTrue(minus.LeftEndpoint.Inclusive);
            Assert.AreEqual(2, minus.Left);
            Assert.IsTrue(minus.RightEndpoint.Bounded);
            Assert.IsFalse(minus.RightEndpoint.Inclusive);
            Assert.AreEqual(37, minus.Right);
            Assert.AreEqual(42 - 7, minus.Span);
        }