public void WhenBoundsCoverMultipleArrowsEnumerateCoverage()
        {
            var target = new MutableIntMap <double>();

            target.DefaultValue = D;
            target.Set(new IntArrow <double>(0, 5, X));
            target.Set(new IntArrow <double>(9, 9, Y));
            target.Set(new IntArrow <double>(11, 14, Z));
            target.Set(new IntArrow <double>(20, 25, Y));

            var bounds = new IntInterval(3, 22);

            var expected = new[]
            {
                new IntArrow <double>(3, 5, X),
                new IntArrow <double>(6, 8, D),
                new IntArrow <double>(9, 9, Y),
                new IntArrow <double>(10, 10, D),
                new IntArrow <double>(11, 14, Z),
                new IntArrow <double>(15, 19, D),
                new IntArrow <double>(20, 22, Y),
            };

            var got = target.EnumerateCoverage(bounds).ToArray();

            Assert.AreEqual(expected, got);
        }
        public void WhenBoundsAreInsideSingleArrowEnumerateCoverage()
        {
            var target = new MutableIntMap <double>();

            target.DefaultValue = D;
            target.Set(new IntArrow <double>(0, 5, X));
            target.Set(new IntArrow <double>(9, 9, Y));
            target.Set(new IntArrow <double>(11, 14, Z));
            target.Set(new IntArrow <double>(20, 25, Y));

            var bounds = new IntInterval(21, 24);

            var expected = new[]
            {
                new IntArrow <double>(21, 24, Y),
            };

            var got = target.EnumerateCoverage(bounds).ToArray();

            Assert.AreEqual(expected, got);
        }
        public void WhenBoundsAreInsideSingleArrowEnumerateCoverage()
        {
            var target = new MutableIntMap<double>();
            target.DefaultValue = D;
            target.Set(new IntArrow<double>(0, 5, X));
            target.Set(new IntArrow<double>(9, 9, Y));
            target.Set(new IntArrow<double>(11, 14, Z));
            target.Set(new IntArrow<double>(20, 25, Y));

            var bounds = new IntInterval(21, 24);

            var expected = new[]
            {
                new IntArrow<double>(21, 24, Y),
            };

            var got = target.EnumerateCoverage(bounds).ToArray();

            Assert.AreEqual(expected, got);
        }
        public void WhenBoundsCoverMultipleArrowsEnumerateCoverage()
        {
            var target = new MutableIntMap<double>();
            target.DefaultValue = D;
            target.Set(new IntArrow<double>(0, 5, X));
            target.Set(new IntArrow<double>(9, 9, Y));
            target.Set(new IntArrow<double>(11, 14, Z));
            target.Set(new IntArrow<double>(20, 25, Y));

            var bounds = new IntInterval(3, 22);

            var expected = new[]
            {
                new IntArrow<double>(3, 5, X),
                new IntArrow<double>(6, 8, D),
                new IntArrow<double>(9, 9, Y),
                new IntArrow<double>(10, 10, D),
                new IntArrow<double>(11, 14, Z),
                new IntArrow<double>(15, 19, D),
                new IntArrow<double>(20, 22, Y),
            };

            var got = target.EnumerateCoverage(bounds).ToArray();

            Assert.AreEqual(expected, got);
        }