Beispiel #1
0
 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)});
 }
Beispiel #2
0
 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)});
 }
Beispiel #3
0
 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)});
 }
Beispiel #4
0
 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);
 }
Beispiel #5
0
 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();
 }
Beispiel #6
0
 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)});
 }
Beispiel #7
0
 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)});
 }
Beispiel #8
0
        static bool IsDeeplyCommon(object got, object expected, string name)
        {
            List <PathEntry> path;

            DeepCmp.Result res  = new DeepCmp(BlackBoxTypes).Compare(got, expected, out path);
            bool           bres = res == DeepCmp.Result.Eq;

            using (new WithInvariantCulture()) {
                lock (WriteLock) {
                    ReportOkness(name, bres);
                    if (!bres || Verbose >= 4)
                    {
                        var comdic = MkCommentDic(bres, name, null, GetStackFrame());
                        comdic.Add("actual", got);
                        comdic.Add("expected", expected);
                        WriteComment(comdic, path, name);
                    }
                }
            }
            TimerReset();
            return(bres);
        }
Beispiel #9
0
 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)});
 }