Beispiel #1
0
        private void diffTest(string a, string b)
        {
            var diff = Ut.Diff(a, b);
            var a2   = diff.Where(x => x.Item2 != DiffOp.Ins).Select(x => x.Item1.ToString()).JoinString();

            Assert.AreEqual(a2, a);
            var b2 = diff.Where(x => x.Item2 != DiffOp.Del).Select(x => x.Item1.ToString()).JoinString();

            Assert.AreEqual(b2, b);
        }
Beispiel #2
0
        public void DiffTestPredicate()
        {
            var a    = "abcdef";
            var b    = "aXcdeY";
            var diff = Ut.Diff(a, b, predicate: c => c != 'd');
            var a2   = diff.Where(x => x.Item2 != DiffOp.Ins).Select(x => x.Item1.ToString()).JoinString();

            Assert.AreEqual(a2, a);
            var b2 = diff.Where(x => x.Item2 != DiffOp.Del).Select(x => x.Item1.ToString()).JoinString();

            Assert.AreEqual(b2, b);
        }
Beispiel #3
0
 public void DiffTestPostprocessor()
 {
     var a    = "abcdef";
     var b    = "aXcdeY";
     var diff = Ut.Diff(a, b, postProcessor: (aa, bb) =>
     {
         bool one = aa.SequenceEqual(new char[] { 'b' });
         bool two = aa.SequenceEqual(new char[] { 'f' });
         Assert.That(one || two);
         if (one)
         {
             Assert.That(bb.SequenceEqual(new char[] { 'X' }));
         }
         else
         {
             Assert.That(bb.SequenceEqual(new char[] { 'Y' }));
         }
         return(aa.Select(c => (c, DiffOp.Del)).Concat(bb.Select(c => (c, DiffOp.Ins))));
     });