Exemple #1
0
 public void MonkeyTest()
 {
     var bytes        = new byte[0];
     var replacements = new[]
     {
         Tuple.Create(new byte[] { }, new byte[] { })
     };
     var r = ByteReplacer.TryReplace(ref bytes, replacements);
 }
Exemple #2
0
        public void NoMatchWorks2()
        {
            var bytes        = new byte[] { 1, 2, 3 };
            var bytes2       = bytes;
            var replacements = new[]
            {
                Tuple.Create(new byte[] { 1, 3 }, new byte[] { 1 })
            };
            var r = ByteReplacer.TryReplace(ref bytes2, replacements);

            Assert.IsFalse(r);
            Assert.AreSame(bytes, bytes2);
        }
Exemple #3
0
        public void ExactBufferSizeWithNoMatchResultoIntoNoReplacements()
        {
            var bytes        = new byte[4096]; // 4096 is buffer size
            var bytes2       = bytes;
            var replacements = new[]
            {
                Tuple.Create(new byte[] { 1, 2, 3, 4 }, new byte[] { 1 })
            };
            var r = ByteReplacer.TryReplace(ref bytes2, replacements);

            Assert.IsFalse(r);
            Assert.AreSame(bytes, bytes2);
        }
Exemple #4
0
        public void TripleMatchWorks5()
        {
            var bytes        = new byte[] { 1, 2, 1, 2, 3, 1, 2, 3, 1, 2 };
            var bytes2       = bytes;
            var replacements = new[]
            {
                Tuple.Create(new byte[] { 1, 2, 3 }, new byte[] { 3 }),
            };
            var r = ByteReplacer.TryReplace(ref bytes2, replacements);

            Assert.IsTrue(r);
            Assert.AreNotSame(bytes, bytes2);
            Assert.IsTrue(bytes2.SequenceEqual(new byte[] { 1, 2, 3, 3, 1, 2 }));
        }
Exemple #5
0
        public void LongestMatchWorks()
        {
            var bytes        = new byte[] { 1, 2, 3, 4, 5 };
            var bytes2       = bytes;
            var replacements = new[]
            {
                Tuple.Create(new byte[] { 1, 2 }, new byte[] { 1 }),
                Tuple.Create(new byte[] { 1, 2, 3 }, new byte[] { 2 }),
                Tuple.Create(new byte[] { 1, 2, 3, 4 }, new byte[] { 3 }),
            };
            var r = ByteReplacer.TryReplace(ref bytes2, replacements);

            Assert.IsTrue(r);
            Assert.AreNotSame(bytes, bytes2);
            Assert.IsTrue(bytes2.SequenceEqual(new byte[] { 3, 5 }));
        }
Exemple #6
0
        public void LongestMatchWorks6()
        {
            var bytes        = new byte[] { 5, 5, 6, 1, 1, 2, 5, 6, 1, 2, 3, 1, 2, 3, 4, 5 };
            var bytes2       = bytes;
            var replacements = new[]
            {
                Tuple.Create(new byte[] { 1 }, new byte[] { 5 }),
                Tuple.Create(new byte[] { 5, 6, 7 }, new byte[] { 9 }),
                Tuple.Create(new byte[] { 1, 2 }, new byte[] { 6 }),
                Tuple.Create(new byte[] { 1, 2, 3 }, new byte[] { 7 }),
                Tuple.Create(new byte[] { 1, 2, 3, 4 }, new byte[] { 8 }),
            };
            var r = ByteReplacer.TryReplace(ref bytes2, replacements);

            Assert.IsTrue(r);
            Assert.AreNotSame(bytes, bytes2);
            Assert.IsTrue(bytes2.SequenceEqual(new byte[] { 5, 5, 6, 5, 6, 5, 6, 7, 8, 5 }));
        }