예제 #1
0
        public void SlideReturnsPointerLength_3_FromTestFile3AtPos4()
        {
            var  path     = TestContext.CurrentContext.TestDirectory + "../../../res/testfile3";
            var  file     = new DataFile(path);
            var  sw       = new SlidingWindow(file.GetAllBytes());
            uint expected = 3;

            for (var i = 0; i < 4; i++)
            {
                sw.Slide();
            }
            var actual = (PointerByte)sw.Slide();

            Assert.AreEqual(expected, actual.Length);
        }
예제 #2
0
        public void SlideReturnsPointerLength_2_FromTestFile2AtPos10()
        {
            var path     = TestContext.CurrentContext.TestDirectory + "../../../res/testfile2";
            var file     = new DataFile(path);
            var sw       = new SlidingWindow(file.GetAllBytes());
            var expected = new PointerByte(5, 2);

            for (var i = 0; i < 9; i++)
            {
                Console.WriteLine(sw.Slide());
            }

            var actual = (PointerByte)sw.Slide();

            Assert.AreEqual(expected, actual);
        }
예제 #3
0
        public void Test1()
        {
            var numbers = new[] { 100, 200, 300, 400 };
            var result  = SlidingWindow.Slide(numbers, 2).Max(w => w.Sum());

            Assert.Equal(700, result);
        }
예제 #4
0
        public void LookAheadEmpty_SlidesAllBytes_Empty()
        {
            MemoryStream  stream = new MemoryStream(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 });
            SlidingWindow window = new SlidingWindow(stream, 3, 2, 4);

            window.Slide(8);
            Assert.IsTrue(window.LookAheadEmpty);
        }
예제 #5
0
        public void LookAheadEmpty_SlidesFourBytes_NotEmpty()
        {
            MemoryStream  stream = new MemoryStream(new byte[] { 1, 2, 3, 4, 5 });
            SlidingWindow window = new SlidingWindow(stream, 3, 2, 4);

            window.Slide(4);
            Assert.IsFalse(window.LookAheadEmpty);
        }
예제 #6
0
        public void Slide_SlidesSixTimes_Slided()
        {
            MemoryStream  stream = new MemoryStream(new byte[] { 0, 1, 2, 3, 4, 5 });
            SlidingWindow window = new SlidingWindow(stream, 4, 3, 4);

            window.Slide(6);
            var bytes = window.Bytes;

            CollectionAssert.AreEqual(new [] { 0, 1, 2, 3, 4, 5, 0 }, bytes);
        }
예제 #7
0
        public void SlideReturnsRawByte_a_AsFirstByte()
        {
            var path     = TestContext.CurrentContext.TestDirectory + "../../../res/testfile1";
            var file     = new DataFile(path);
            var sw       = new SlidingWindow(file.GetAllBytes());
            var expected = new RawByte(97);

            var actual = (RawByte)sw.Slide();

            Assert.AreEqual(expected.Data, actual.Data);
        }
예제 #8
0
        public void Test1()
        {
            var numbers = new[] { 100, 200, 300, 400 };
            var result  = SlidingWindow.Slide(numbers, 3).Select(x => x.ToArray());

            Assert.Equal(new[]
            {
                new[] { 100, 200, 300 },
                new[] { 200, 300, 400 },
            }, result);
        }
예제 #9
0
        public void NextToken_LastToken_00Token()
        {
            MemoryStream  stream = new MemoryStream(new byte[] { 1, 2, 3, 4, 5 });
            SlidingWindow window = new SlidingWindow(stream, 3, 2, 4);

            window.Slide(4);
            Token token = window.NextToken();

            Assert.AreEqual(0, token.Offset);
            Assert.AreEqual(0, token.Length);
            Assert.AreEqual(5, token.Byte);
        }
예제 #10
0
        public void NextToken_19Token()
        {
            MemoryStream  stream = new MemoryStream(new byte[] { 1, 2, 3, 4, 5, 1, 6, 7, 8, 1, 9, 4, 5, 1, 6, 10, 2, 11, 4, 11, 5, 2, 2, 6, 4, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13 });
            SlidingWindow window = new SlidingWindow(stream, 26, 10, 4);

            window.Slide(26);
            Token token = window.NextToken();

            Assert.AreEqual(1, token.Offset);
            Assert.AreEqual(9, token.Length);
            Assert.AreEqual(12, token.Byte);
        }
예제 #11
0
        public void NextToken_34Token()
        {
            MemoryStream  stream = new MemoryStream(new byte[] { 1, 2, 3, 4, 5, 1, 6, 7, 8, 1, 9, 4, 5, 1, 6, 10, 2, 11, 4, 12, 13, 14, 15, 6, 4, 1, 2, 3, 1, 2, 3, 1, 4, 10, 9, 4, 16, 10, 6, 4, 12, 1, 13, 17, 5, 9, });
            SlidingWindow window = new SlidingWindow(stream, 28, 12, 4);

            window.Slide(28);
            Token token = window.NextToken();

            Assert.AreEqual(3, token.Offset);
            Assert.AreEqual(4, token.Length);
            Assert.AreEqual(4, token.Byte);
        }
예제 #12
0
        public void SlideAtEndWhenAtEnd()
        {
            var path = TestContext.CurrentContext.TestDirectory + "../../../res/testfile1";
            var file = new DataFile(path);
            var sw   = new SlidingWindow(file.GetAllBytes());

            for (var i = 0; i < 3; i++)
            {
                sw.Slide();
            }

            Assert.IsTrue(sw.AtEnd());
        }