public void FindZeroSegmentsTestNoSegments()
        {
            var array  = new UInt32[] { 1, 0, 0, 1, 2, 3 };
            var result = IntegerSegmentUtils.FindZeroSegments(array, 3);

            Assert.AreEqual(0, result.Count);
        }
        public void IntersectionOfSegmentsNoIntersection()
        {
            var result = IntegerSegmentUtils.IntersectionOfSegments(
                new IntegerSegment(1, 2),
                new IntegerSegment(4, 5));

            Assert.AreEqual(IntegerSegment.Zero, result);
        }
        public void IntersectionOfSegmentsPartialIntersection()
        {
            var a = new IntegerSegment(1, 4);
            var b = new IntegerSegment(2, 8);

            Assert.AreEqual(new IntegerSegment(2, 4), IntegerSegmentUtils.IntersectionOfSegments(a, b));
            Assert.AreEqual(new IntegerSegment(2, 4), IntegerSegmentUtils.IntersectionOfSegments(b, a));
        }
        public void IntersectionOfSegmentsFullIntersection()
        {
            var result = IntegerSegmentUtils.IntersectionOfSegments(
                new IntegerSegment(1, 2),
                new IntegerSegment(1, 2));

            Assert.AreEqual(new IntegerSegment(1, 2), result);
        }
        public void FindZeroSegmentsTestSimpleSegment2()
        {
            var array  = new UInt32[] { 0, 0, 0, 0, 0, 1 };
            var result = IntegerSegmentUtils.FindZeroSegments(array, 3);

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(0, result[0].Start);
            Assert.AreEqual(4, result[0].End);
        }
        public void FindZeroSegmentsTestShortAllZeroSegment()
        {
            var array  = new UInt32[] { 0, 0, 0, 0, };
            var result = IntegerSegmentUtils.FindZeroSegments(array, 4);

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(0, result[0].Start);
            Assert.AreEqual(3, result[0].End);
        }
        public void FindZeroSegmentsTest1()
        {
            var array  = new UInt32[] { 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 3, 4, 0, 3, 5 };
            var result = IntegerSegmentUtils.FindZeroSegments(array, 4);

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(1, result[0].Start);
            Assert.AreEqual(5, result[0].End);
        }
        public void IntersectionOfSegments()
        {
            var result = IntegerSegmentUtils.IntersectionOfSegments(new[]
            {
                new[] { new IntegerSegment(1, 2), new IntegerSegment(4, 6) },
                new[] { new IntegerSegment(1, 2), new IntegerSegment(5, 10) },
            });

            Assert.AreEqual(2, result.Count);
            Assert.AreEqual(new IntegerSegment(1, 2), result[0]);
            Assert.AreEqual(new IntegerSegment(5, 6), result[1]);
        }
        public void FindZeroSegmentsTestThreeSegments()
        {
            var array  = new UInt32[] { 1, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 3, 4, 0, 0, 3, 0, 5 };
            var result = IntegerSegmentUtils.FindZeroSegments(array, 2);

            Assert.AreEqual(3, result.Count);
            Assert.AreEqual(1, result[0].Start);
            Assert.AreEqual(5, result[0].End);
            Assert.AreEqual(9, result[1].Start);
            Assert.AreEqual(10, result[1].End);
            Assert.AreEqual(13, result[2].Start);
            Assert.AreEqual(14, result[2].End);
        }
Exemple #10
0
        public void FindBordersTest()
        {
            var flatImage = LoadFlatImageFromResource("ScreenGrid.Tests.Resources.ImageSimple.png");

            const int minimalSegmentLength = 8;
            var       step = flatImage.Height / 8;

            var list = new List <Tuple <int, int> >();

            for (var iy = minimalSegmentLength + step; iy < flatImage.Height - (minimalSegmentLength + step); iy += step)
            {
                var stripe     = flatImage.GetHorizontalStripe(iy);
                var derivative = FlatImage.GetDerivative(stripe);
                var segments   = IntegerSegmentUtils.FindZeroSegments(derivative, minimalSegmentLength);

                Assert.AreEqual(2, segments.Count, String.Format("iy={0}", iy));
            }
        }