void TestNullArray() { var dc = new DeepCmp(); List <PathEntry> path; Is(dc.Compare(null, new[] { 1, 2 }, out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 0, 2 }) }); Is(dc.Compare(new[] { null, "b" }, new[] { "a", "b" }, out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 2, 2 }), new PathEntry(1) }); }
void TestArray() { var dc = new DeepCmp(); List <PathEntry> path; Is(dc.Compare(new[] { 1, 2 }, new[] { 1, 2 }, out path), DeepCmp.Result.Eq); Is(path, null); Is(dc.Compare(new[] { 1, 2 }, new[] { 1, 3 }, out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 2, 2 }), new PathEntry(2) }); Is(dc.Compare(new[] { 1, 2 }, new[] { 2, 2 }, out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 2, 2 }), new PathEntry(1) }); }
void TestFields() { var dc = new DeepCmp(); List <PathEntry> path; Is(dc.Compare(new A(1, null), new A(1, null), out path), DeepCmp.Result.Eq); Is(path, null); Is(dc.Compare(new A(1, null), new A(2, null), out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 2, 2 }), new PathEntry(1) }); Is(dc.Compare(new A(1, new A(2, null)), new A(1, new A(2, null)), out path), DeepCmp.Result.Eq); Is(path, null); Is(dc.Compare(new A(1, new A(2, null)), new A(1, new A(3, null)), out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 2, 2 }), new PathEntry(2, new[] { 2, 2 }), new PathEntry(3) }); }
void TestNullScalar() { var dc = new DeepCmp(); List <PathEntry> path; Is(dc.Compare("a", null, out path), DeepCmp.Result.ValNe); IsDeeply(path, new PathEntry[] { new PathEntry { Idx = 0 } }); Is(dc.Compare(null, "b", out path), DeepCmp.Result.ValNe); IsDeeply(path, new PathEntry[] { new PathEntry { Idx = 0 } }); Is(dc.Compare(null, null, out path), DeepCmp.Result.Eq); IsDeeply(path, null); }
void TestNullDic() { var dc = new DeepCmp(); List <PathEntry> path; Is(dc.Compare(null, new Dictionary <string, string> { { "a", "b" } }, out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 0, 1 }) }); Is(dc.Compare(new Dictionary <string, string> { { "a", null } }, new Dictionary <string, string> { { "a", "b" } }, out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 1, 1 }), new PathEntry(1) }); }
void TestNest() { var dc = new DeepCmp(); List <PathEntry> path; var a = new A(1, null); a.Aref = a; var b = new A(1, null); b.Aref = b; Is(dc.Compare(a, b, out path), DeepCmp.Result.Eq); Is(path, null); // 'got' and 'expected' referring to each other a.Aref = b; b.Aref = a; Is(dc.Compare(a, b, out path), DeepCmp.Result.Eq); Is(path, null); a.B = 2; Is(dc.Compare(a, b, out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new[] { 2, 2 }), new PathEntry(1) }); }
void TestDic() { var dc = new DeepCmp(); List <PathEntry> path; Is(dc.Compare(new Dictionary <int, int> { { 1, 2 } }, new SortedDictionary <int, int> { { 1, 2 } }, out path), DeepCmp.Result.Eq); Is(path, null); Is(dc.Compare(new Dictionary <int, int> { { 1, 2 } }, new SortedDictionary <int, int> { { 1, 3 } }, out path), DeepCmp.Result.ValNe); IsDeeply(path, new[] { new PathEntry(0, new int[] { 1, 1 }), new PathEntry(1) }); Is(dc.Compare(new Dictionary <int, int> { { 1, 2 }, { 0, 1 } }, new SortedDictionary <int, int> { { 0, 1 }, { 2, 3 } }, out path), DeepCmp.Result.KeyNe); IsDeeply(path, new[] { new PathEntry(0, new int[] { 2, 2 }), new PathEntry(2) }); }
string Helper(object l, object r) { var dc = new DeepCmp(); List <PathEntry> path; dc.Compare(l, r, out path); // Dump("path",path); var sw = new StringWriter(); sw.NewLine = "\r\n"; var cw = new YAMLCommentWriter(sw, null); var dic = new OrderedDictionary { { "a", "blah" }, { "actual", l }, { "expected", r } }; cw.WriteComment(0, dic, path, null); return(sw.ToString()); }