Esempio n. 1
0
        public void TestSetPosition(int min, int maxExcl, IntervalAnchor anchor, int expectedMin)
        {
            var interval   = GridInterval.FromExclusiveMax(min, maxExcl);
            var translated = interval.SetPosition(20, anchor);

            Assert.Equal(expectedMin, translated.Min);
        }
Esempio n. 2
0
        public void TestMultiplication(int min, int maxExcl, double multiplier, int?expectedMax)
        {
            var interval = GridInterval.FromExclusiveMax(min, maxExcl);
            var result   = interval.Multiplication(multiplier);

            Assert.Equal(expectedMax, result?.MaxExcl);
        }
Esempio n. 3
0
        public override IExplicitShape <int> Transform(IExplicitShape <int> input)
        {
            var shape       = input.Translate(offset);
            var storageRect = GridInterval.Translate(input.Bounds, offset);

            return(shape.ToExplicit(storageRect));
        }
Esempio n. 4
0
        public void TestTouches(int min, int maxExcl, bool expected)
        {
            var interval = GridInterval.FromExclusiveMax(0, 10);
            var other    = GridInterval.FromExclusiveMax(min, maxExcl);

            Assert.Equal(expected, interval.Touches(other));
        }
Esempio n. 5
0
        public void TestTranslate()
        {
            var interval   = GridInterval.FromExclusiveMax(0, 2);
            var translated = interval.Translation(5);

            Assert.Equal(5, translated.Min);
            Assert.Equal(7, translated.MaxExcl);
        }
Esempio n. 6
0
        public void TestSetMin()
        {
            var i1      = GridInterval.FromExclusiveMax(20, 30);
            var i2      = GridInterval.FromExclusiveMax(0, 4);
            var aligned = i2.SetMin(i1.Min);

            Assert.Equal(20, aligned.Min);
            Assert.Equal(24, aligned.MaxExcl);
        }
Esempio n. 7
0
        public void FindOverlappingIntervalsTest2()
        {
            var i1 = new GridInterval(1, 3);
            var i2 = new GridInterval(3, 5);
            var i3 = new GridInterval(1, 4);

            var overlappingGroups = GridIntervals.FindOverlappingIntervals(new[] { i1, i2, i3 });

            Assert.Single(overlappingGroups);
        }
Esempio n. 8
0
        public void TestFindCenterOfMass()
        {
            var i1 = new GridInterval(-2, -2);
            var i2 = new GridInterval(-2, -2);
            var i3 = new GridInterval(0, 0);
            var i4 = new GridInterval(4, 4);

            var center = GridIntervals.FindCenterOfMass(new[] { i1, i2, i3, i4 });

            Assert.Equal(0, center);
        }
Esempio n. 9
0
        public void TestEquality()
        {
            var i1 = new GridInterval(0, 2);
            var i2 = GridInterval.FromExclusiveMax(0, 3);
            var i3 = GridInterval.FromLength(0, 2);

            Assert.Equal(i1, i2);
            Assert.True(i1 == i2);
            Assert.NotEqual(i1, i3);
            Assert.True(i1 != i3);
        }
Esempio n. 10
0
        public void TestSplitEven()
        {
            var interval = GridInterval.FromExclusiveMax(0, 2);
            var halves   = interval.SplitEven();

            Assert.Equal(2, halves.Length);
            Assert.Equal(1, halves[0].Length);
            Assert.Equal(1, halves[1].Length);
            Assert.Equal(0, halves[0].Min);
            Assert.Equal(1, halves[0].MaxExcl);
            Assert.Equal(1, halves[1].Min);
            Assert.Equal(2, halves[1].MaxExcl);
        }
Esempio n. 11
0
        public override List <IExplicitShape <int> > Execute(IEnumerable <IExplicitShape <int> > input)
        {
            var inputList = input.ToList();

            var shape1 = inputList[0];
            var shape2 = inputList[1];
            var shape  = shape1.Product(shape2, scaleFactor);

            var storageRect = new GridInterval(
                shape1.Bounds.Point * scaleFactor - shape2.Bounds.Size,
                shape1.Bounds.Size * scaleFactor + shape2.Bounds.Size * 2);

            return(new List <IExplicitShape <int> >
            {
                shape.ToExplicit(storageRect)
            });
        }
Esempio n. 12
0
        public void FindOverlappingIntervalsTest()
        {
            var i1 = new GridInterval(0, 10);
            var i2 = new GridInterval(1, 3);
            var i3 = new GridInterval(2, 3);
            var i4 = new GridInterval(4, 13);
            var i5 = new GridInterval(12, 14);
            var i6 = new GridInterval(15, 16);

            var overlappingGroups = GridIntervals.FindOverlappingIntervals(new[] { i1, i2, i3, i4, i5, i6 });

            Assert.Equal(3, overlappingGroups.Count);
            Assert.Equal(3, overlappingGroups[0].Count);
            Assert.Equal(2, overlappingGroups[1].Count);
            Assert.Equal(2, overlappingGroups[2].Count);
            Assert.DoesNotContain(overlappingGroups.SelectMany(g => g), index => index == 5);
        }
Esempio n. 13
0
        public void TestRelate()
        {
            var i1      = GridInterval.FromExclusiveMax(0, 4);
            var i2      = GridInterval.FromExclusiveMax(10, 14);
            var related = i1.Relate(i2, Relation.StartToStart());

            Assert.Equal(10, related.Min);
            related = i1.Relate(i2, Relation.StartToCenter());
            Assert.Equal(11, related.Min);
            related = i1.Relate(i2, Relation.StartToEnd());
            Assert.Equal(13, related.Min);
            related = i1.Relate(i2, Relation.EndToStart());
            Assert.Equal(7, related.Min);
            related = i1.Relate(i2, Relation.EndToCenter());
            Assert.Equal(8, related.Min);
            related = i1.Relate(i2, Relation.EndToEnd());
            Assert.Equal(10, related.Min);
        }
Esempio n. 14
0
        public void SeparateTest()
        {
            var i1  = new GridInterval(0, 2);
            var i2  = new GridInterval(1, 3);
            var i3  = new GridInterval(2, 4);
            var i4  = new GridInterval(-1, 0);
            var i12 = GridIntervals.Separate(i1, i2);

            Assert.Equal(-1, i12[0].Min);
            Assert.Equal(2, i12[1].Min);
            var i13 = GridIntervals.Separate(i1, i3);

            Assert.Equal(-1, i13[0].Min);
            Assert.Equal(2, i13[1].Min);
            var i14 = GridIntervals.Separate(i1, i4);

            Assert.Equal(0, i14[0].Min);
            Assert.Equal(-2, i14[1].Min);
        }
Esempio n. 15
0
        public void TestDepth(int value, int expected)
        {
            var interval = new GridInterval(-1, 3);

            Assert.Equal(expected, interval.Depth(value));
        }
Esempio n. 16
0
        public void TestContainsInterval(int min, int max, bool expected)
        {
            var interval = new GridInterval(0, 1);

            Assert.Equal(expected, interval.Contains(new GridInterval(min, max)));
        }
Esempio n. 17
0
        public void TestDistance(int value, int expected)
        {
            var interval = new GridInterval(-1, 1);

            Assert.Equal(expected, interval.Distance(value));
        }
Esempio n. 18
0
        public void TestDistanceToOther(int otherMin, int otherMax, int expected)
        {
            var interval = new GridInterval(-1, 0);

            Assert.Equal(expected, interval.Distance(new GridInterval(otherMin, otherMax)));
        }
Esempio n. 19
0
        public void TestContains(int value, bool expected)
        {
            var interval = new GridInterval(0, 1);

            Assert.Equal(expected, interval.Contains(value));
        }
Esempio n. 20
0
        public void TestLength()
        {
            var interval = new GridInterval(2, 4);

            Assert.Equal(3, interval.Length);
        }
Esempio n. 21
0
        public void TestIsEven(int min, int maxExcl, bool expected)
        {
            var interval = GridInterval.FromExclusiveMax(min, maxExcl);

            Assert.Equal(expected, interval.IsEven());
        }
Esempio n. 22
0
        public void TestCenter(int min, int max, int expected)
        {
            var interval = new GridInterval(min, max);

            Assert.Equal(expected, interval.Center);
        }
Esempio n. 23
0
        public void TestDepthToSeparateOther(int otherMin, int otherMax, int expected)
        {
            var interval = new GridInterval(-1, 2);

            Assert.Equal(expected, interval.Depth(new GridInterval(otherMin, otherMax)));
        }
Esempio n. 24
0
        protected override IExplicitShape <int> Generate()
        {
            var interval = new GridInterval(0, size);

            return(ImplicitShape.Segment(interval).ToExplicit(interval));
        }
Esempio n. 25
0
 public void TestArgumentException()
 {
     Assert.Throws <ArgumentException>(() => GridInterval.FromExclusiveMax(2, 2));
 }