Beispiel #1
0
        public void TestMappings()
        {
            Pickler   p      = new Pickler(false);
            Unpickler pu     = new Unpickler();
            var       intmap = new Dictionary <int, int> {
                { 1, 11 }, { 2, 22 }, { 3, 33 }
            };
            var       o         = p.dumps(intmap);
            Hashtable resultmap = (Hashtable)pu.loads(o);

            AssertUtils.AssertEqual(intmap, resultmap);

            var stringmap = new Dictionary <string, string> {
                { "A", "1" }, { "B", "2" }, { "C", "3" }
            };

            o         = p.dumps(stringmap);
            resultmap = (Hashtable)pu.loads(o);
            AssertUtils.AssertEqual(stringmap, resultmap);

            Hashtable table = new Hashtable {
                { 1, 11 }, { 2, 22 }, { 3, 33 }
            };

            o         = p.dumps(table);
            resultmap = (Hashtable)pu.loads(o);
            AssertUtils.AssertEqual(table, resultmap);
        }
Beispiel #2
0
        public void TestSet()
        {
            var set = new HashSet <object> {
                1, 2, "abc"
            };

            AssertUtils.AssertEqual(set, (HashSet <object>)U("c__builtin__\nset\np0\n((lp1\nI1\naI2\naS'abc'\np2\natp3\nRp4\n."));
        }
Beispiel #3
0
        public void TestSets()
        {
            Pickler   p  = new Pickler(false);
            Unpickler up = new Unpickler();

            var intset = new HashSet <int> {
                1, 2, 3
            };
            var o = p.dumps(intset);
            HashSet <object> resultset = (HashSet <object>)up.loads(o);

            AssertUtils.AssertEqual(intset, resultset);

            HashSet <string> stringset = new HashSet <string> {
                "A", "B", "C"
            };

            o         = p.dumps(stringset);
            resultset = (HashSet <object>)up.loads(o);
            AssertUtils.AssertEqual(stringset, resultset);
        }
Beispiel #4
0
        public void TestDicts()
        {
            Hashtable map  = new Hashtable();
            Hashtable map2 = new Hashtable();
            ArrayList list = new ArrayList();

            Assert.Equal(map, U("}."));         // {}
            map.Add(97, 98);
            map.Add(99, 100);
            Assert.Equal(map, U("}(KaKbKcKdu."));               // {97: 98, 99: 100}
            Assert.Equal(map, U("(dI97\nI98\nsI99\nI100\ns.")); // {97: 98, 99: 100}
            Assert.Equal(map, U("(I97\nI98\nI99\nI100\nd."));   // {97: 98, 99: 100}

            map.Clear();
            map.Add(1, 2);
            map.Add(3, 4);
            map2.Add(5, 6);
            map2.Add(7, 8);
            list.Add(map);
            list.Add(map2);
            Assert.Equal(list, U("(lp0\n(dp1\nI1\nI2\nsI3\nI4\nsa(dp2\nI5\nI6\nsI7\nI8\nsa."));                                           // [{1:2, 3:4}, {5:6, 7:8}]
            Assert.Equal(list, U("\u0080\u0002]q\u0000(}q\u0001(K\u0001K\u0002K\u0003K\u0004u}q\u0002(K\u0005K\u0006K\u0007K\u0008ue.")); // [{1:2, 3:4}, {5:6, 7:8}]

            map.Clear();
            map2.Clear();
            list.Clear();

            map["abc"] = null;
            Assert.Equal(map, U("(dp0\nS'abc'\np1\nNs."));                     // {'abc': None}
            Assert.Equal(map, U("\u0080\u0002}q\u0000U\u0003abcq\u0001Ns."));  // {'abc': None}
            map["abc"] = 111;
            Assert.Equal(map, U("(dp0\nS'abc'\np1\nI111\ns."));                // {'abc': 111}
            Assert.Equal(map, U("\u0080\u0002}q\u0000U\u0003abcq\u0001Kos.")); // {'abc': 111}
            list.Add(111);
            list.Add(111);
            map["abc"] = list;
            AssertUtils.AssertEqual(map, U("(dp0\nS'abc'\np1\n(lp2\nI111\naI111\nas."));                            // {'abc': [111,111]}
            AssertUtils.AssertEqual(map, U("\u0080\u0002}q\u0000U\u0003abcq\u0001]q\u0002(KoKoes."));               // {'abc': 111}
            map["abc"] = map2;
            AssertUtils.AssertEqual(map, U("(dp0\nS'abc'\np1\n(dp2\ns."));                                          // {'abc': {} }
            AssertUtils.AssertEqual(map, U("\u0080\u0002}q\u0000U\u0003abcq\u0001}q\u0002s."));                     // {'abc': {} }
            map2["def"] = 111;
            AssertUtils.AssertEqual(map, U("(dp0\nS'abc'\np1\n(dp2\nS'def'\np3\nI111\nss."));                       // {'abc': {'def':111}}
            AssertUtils.AssertEqual(map, U("\u0080\u0002}q\u0000U\u0003abcq\u0001}q\u0002U\u0003defq\u0003Koss.")); // {'abc': {'def':111}}

            map2["def"] = list;
            AssertUtils.AssertEqual(map, U("(dp0\nS'abc'\np1\n(dp2\nS'def'\np3\n(lp4\nI111\naI111\nass."));                     // {'abc': {'def': [111,111] }}
            AssertUtils.AssertEqual(map, U("\u0080\u0002}q\u0000U\u0003abcq\u0001}q\u0002U\u0003defq\u0003]q\u0004(KoKoess.")); // {'abc': {'def': [111,111] }}

            ArrayList list2 = new ArrayList {
                222, 222
            };

            map2["ghi"] = list2;
            AssertUtils.AssertEqual(map, U("(dp0\nS'abc'\np1\n(dp2\nS'ghi'\np3\n(lp4\nI222\naI222\nasS'def'\np5\n(lp6\nI111\naI111\nass."));                              // {'abc': {'def': [111,111], ghi: [222,222] }}
            AssertUtils.AssertEqual(map, U("\u0080\u0002}q\u0000U\u0003abcq\u0001}q\u0002(U\u0003ghiq\u0003]q\u0004(K\u00deK\u00deeU\u0003defq\u0005]q\u0006(KoKoeus.")); // {'abc': {'def': [111,111], ghi: [222,222] }}

            map2.Clear();
            map2["def"] = list;
            map2["abc"] = list;
            AssertUtils.AssertEqual(map, U("(dp0\nS'abc'\np1\n(dp2\ng1\n(lp3\nI111\naI111\nasS'def'\np4\ng3\nss."));                           // {'abc': {'def': [111,111], abc: [111,111] }}
            AssertUtils.AssertEqual(map, U("\u0080\u0002}q\u0000U\u0003abcq\u0001}q\u0002(h\u0001]q\u0003(KoKoeU\u0003defq\u0004h\u0003us.")); // {'abc': {'def': [111,111], abc: [111,111] }}
        }