示例#1
0
        public void SimpleInsert()
        {
            var result     = Differ.ComputeDiff("", "aaaaa");
            var diffResult = Assert.Single(result);

            Assert.Equal(Operation.INSERT, diffResult.Operation);
        }
示例#2
0
        public void SimpleDelete()
        {
            var result     = Differ.ComputeDiff("aaaaa", "");
            var diffResult = Assert.Single(result);

            Assert.Equal(Operation.DELETE, diffResult.Operation);
        }
示例#3
0
        public void NoChange()
        {
            var result     = Differ.ComputeDiff("aaaaa", "aaaaa");
            var diffResult = Assert.Single(result);

            Assert.Equal(Operation.EQUAL, diffResult.Operation);
        }
示例#4
0
        public void MediumDiff3()
        {
            string a      = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
            string b      = "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij";
            var    result = Differ.ComputeDiff(a, b);

            Assert.True(result.Any());
        }
示例#5
0
        public void NothingInCommon()
        {
            var result = Differ.ComputeDiff("abc", "xyz");

            Assert.Equal(2, result.Length);
            Assert.Equal(Operation.DELETE, result[0].Operation);
            Assert.Equal("abc", result[0].GetText());
            Assert.Equal(Operation.INSERT, result[1].Operation);
            Assert.Equal("xyz", result[1].GetText());
        }
示例#6
0
        public void OnlySuffixInCommon()
        {
            var result = Differ.ComputeDiff("1234", "xyz1234");

            Assert.Equal(2, result.Length);
            Assert.Equal(Operation.INSERT, result[0].Operation);
            Assert.Equal("xyz", result[0].GetText());
            Assert.Equal(Operation.EQUAL, result[1].Operation);
            Assert.Equal("1234", result[1].GetText());
        }
示例#7
0
        public void CommonOverlap()
        {
            var result = Differ.ComputeDiff("abc", "abcd");

            Assert.Equal(2, result.Length);
            Assert.Equal(Operation.INSERT, result[0].Operation);
            Assert.Equal("d", result[0].GetText());
            Assert.Equal(Operation.EQUAL, result[1].Operation);
            Assert.Equal("abc", result[1].GetText());
        }
示例#8
0
        public void PrefixInCommon()
        {
            var result = Differ.ComputeDiff("1234abcdef", "1234xyz");

            Assert.Equal(3, result.Length);
            Assert.Equal(Operation.DELETE, result[0].Operation);
            Assert.Equal("abcdef", result[0].GetText());
            Assert.Equal(Operation.INSERT, result[1].Operation);
            Assert.Equal("xyz", result[1].GetText());
            Assert.Equal(Operation.EQUAL, result[2].Operation);
            Assert.Equal("1234", result[2].GetText());
        }
示例#9
0
        public void CommonOverlap2()
        {
            var result = Differ.ComputeDiff("123456xxx", "xxxabcd");

            Assert.Equal(3, result.Length);
            Assert.Equal(Operation.DELETE, result[0].Operation);
            Assert.Equal("123456", result[0].GetText());
            Assert.Equal(Operation.EQUAL, result[1].Operation);
            Assert.Equal("xxx", result[1].GetText());
            Assert.Equal(Operation.INSERT, result[2].Operation);
            Assert.Equal("abcd", result[2].GetText());
        }
示例#10
0
        public void CommonOverlapInside()
        {
            var result = Differ.ComputeDiff("12345", "23");

            Assert.Equal(3, result.Length);
            Assert.Equal(Operation.DELETE, result[0].Operation);
            Assert.Equal("1", result[0].GetText());
            Assert.Equal(Operation.EQUAL, result[1].Operation);
            Assert.Equal("23", result[1].GetText());
            Assert.Equal(Operation.DELETE, result[2].Operation);
            Assert.Equal("45", result[2].GetText());
        }
示例#11
0
        public void MediumDiff()
        {
            string a = "`Twas brillig, and the slithy toves\nDid gyre and gimble in the wabe:\nAll mimsy were the borogoves,\nAnd the mome raths outgrabe.\n";
            string b = "I am the very model of a modern major general,\nI've information vegetable, animal, and mineral,\nI know the kings of England, and I quote the fights historical,\nFrom Marathon to Waterloo, in order categorical.\n";

            for (int i = 0; i < 10; i++)
            {
                a += a;
                b += b;
            }
            var result = Differ.ComputeDiff(a, b);

            Assert.True(result.Any());
        }
示例#12
0
        public void CommonOverlapInside2()
        {
            var result = Differ.ComputeDiff("1234567890", "a345678z");

            Assert.Equal(5, result.Length);
            Assert.Equal(Operation.DELETE, result[0].Operation);
            Assert.Equal("12", result[0].GetText());
            Assert.Equal(Operation.INSERT, result[1].Operation);
            Assert.Equal("a", result[1].GetText());
            Assert.Equal(Operation.EQUAL, result[2].Operation);
            Assert.Equal("345678", result[2].GetText());
            Assert.Equal(Operation.DELETE, result[3].Operation);
            Assert.Equal("90", result[3].GetText());
            Assert.Equal(Operation.INSERT, result[4].Operation);
            Assert.Equal("z", result[4].GetText());
        }
示例#13
0
        public void SimpleDiff_Distance2()
        {
            var result = Differ.ComputeDiff("abcdefghijklmnopqrstuvwxyz", "abcdxxefg");

            Assert.True(result.Any());
        }
示例#14
0
        public void SimpleDiff_MultipleSelect2()
        {
            var result = Differ.ComputeDiff("abcdefghijklmnopqrstuvwxyz", "abccde");

            Assert.True(result.Any());
        }
示例#15
0
        public void SimpleDiff_MultipleSelect1()
        {
            var result = Differ.ComputeDiff("abcdexyzabcde", "abccde");

            Assert.True(result.Any());
        }
示例#16
0
        public void SimpleDiff_OverSizedPattern2()
        {
            var result = Differ.ComputeDiff("abcdef", "abcdefy");

            Assert.True(result.Any());
        }
示例#17
0
        public void SimpleDiff_BeforeStartMatch()
        {
            var result = Differ.ComputeDiff("abcdef", "xxabc");

            Assert.True(result.Any());
        }
示例#18
0
        public void SimpleDiffCase6()
        {
            var result = Differ.ComputeDiff("abcy", "xaxcxabc");

            Assert.True(result.Any());
        }
示例#19
0
        public void ComplexDiffCase()
        {
            var result = Differ.ComputeDiff("I am the very model of a modern major general.", " that berry ");

            Assert.True(result.Any());
        }
示例#20
0
        public void SimpleDiffCase3()
        {
            var result = Differ.ComputeDiff("ax\t", "\u0680x");

            Assert.True(result.Any());
        }
示例#21
0
        public void SimpleDiff_ExactMatch()
        {
            var result = Differ.ComputeDiff("abcdefghijk", "fgh");

            Assert.True(result.Any());
        }
示例#22
0
        public void SimpleDiffCase8()
        {
            var result = Differ.ComputeDiff("a [[Pennsylvania]] and [[New", " and [[Pennsylvania]]");

            Assert.True(result.Any());
        }
示例#23
0
        public void SimpleDiffCase7()
        {
            var result = Differ.ComputeDiff("ABCDa=bcd=efghijklmnopqrsEFGHIJKLMNOefg", "a-bcd-efghijklmnopqrs");

            Assert.True(result.Any());
        }
示例#24
0
        public void SimpleDiff_ExactMatch2()
        {
            var result = Differ.ComputeDiff("abcdef", "de");

            Assert.True(result.Any());
        }
示例#25
0
        public void SimpleDiff_BeyondEndMatch2()
        {
            var result = Differ.ComputeDiff("abcdef", "defy");

            Assert.True(result.Any());
        }
示例#26
0
        public void SimpleDiff_Overflow()
        {
            var result = Differ.ComputeDiff("123456789xx0", "3456789x0");

            Assert.True(result.Any());
        }
示例#27
0
        public void SimpleDiff_FuzzyMatch2()
        {
            var result = Differ.ComputeDiff("abcdefghijk", "cdefxyhijk");

            Assert.True(result.Any());
        }
示例#28
0
        public void SimpleDiffCase5()
        {
            var result = Differ.ComputeDiff("1ayb2", "abxab");

            Assert.True(result.Any());
        }
示例#29
0
        public void SimpleDiffCase12()
        {
            var result = Differ.ComputeDiff("abcdefghijk", "bxy");

            Assert.True(result.Any());
        }
示例#30
0
        public void SimpleDiffCase2()
        {
            var result = Differ.ComputeDiff("Apples are a fruit.", "Bananas are also fruit.");

            Assert.True(result.Any());
        }