Beispiel #1
0
    def test_popitem(self):
        # dict.popitem()
        for copymode in -1, +1:
            # -1: b has same structure as a
            # +1: b is a.copy()
            for log2size in range(12):
                size = 2**log2size
                a = LazyDict()
                b = LazyDict()
                for i in range(size):
                    a[repr(i)] = i
                    if copymode < 0:
                        b[repr(i)] = i
                if copymode > 0:
                    b = a.copy()
                for i in range(size):
                    ka, va = ta = a.popitem()
                    self.assertEqual(va, int(ka))
                    kb, vb = tb = b.popitem()
                    self.assertEqual(vb, int(kb))
                    self.assertFalse(copymode < 0 and ta != tb)
                self.assertFalse(a)
                self.assertFalse(b)

        d = LazyDict()
        self.assertRaises(KeyError, d.popitem)
Beispiel #2
0
    def test_popitem(self):
        # dict.popitem()
        for copymode in -1, +1:
            # -1: b has same structure as a
            # +1: b is a.copy()
            for log2size in range(12):
                size = 2**log2size
                a = LazyDict()
                b = LazyDict()
                for i in range(size):
                    a[repr(i)] = i
                    if copymode < 0:
                        b[repr(i)] = i
                if copymode > 0:
                    b = a.copy()
                for i in range(size):
                    ka, va = ta = a.popitem()
                    self.assertEqual(va, int(ka))
                    kb, vb = tb = b.popitem()
                    self.assertEqual(vb, int(kb))
                    self.assertFalse(copymode < 0 and ta != tb)
                self.assertFalse(a)
                self.assertFalse(b)

        d = LazyDict()
        self.assertRaises(KeyError, d.popitem)
Beispiel #3
0
 def test_lazy_copy(self):
     d = LazyDict({'1':1})
     d['2'] = 2
     x = d.copy()
     self.assertEqual(len(x), 2)
     i = {'num': 0}
     def r(key, i):
         i['num'] += 1
         return i['num']
     d.set_stub('3', r, i)
     x = d.copy()
     self.assertEqual(d['3'], 1)
     self.assertEqual(len(d._stubs), 0)
     self.assertEqual(len(x._stubs), 1)
     self.assertEqual(x['3'], 2)
     self.assertEqual(len(x._stubs), 0)
     x = d.copy()
     self.assertEqual(d['3'], 1)
     self.assertEqual(x['3'], 1)
Beispiel #4
0
    def test_lazy_copy(self):
        d = LazyDict({"1": 1})
        d["2"] = 2
        x = d.copy()
        self.assertEqual(len(x), 2)
        i = {"num": 0}

        def r(key, i):
            i["num"] += 1
            return i["num"]

        d.set_stub("3", r, i)
        x = d.copy()
        self.assertEqual(d["3"], 1)
        self.assertEqual(len(d._stubs), 0)
        self.assertEqual(len(x._stubs), 1)
        self.assertEqual(x["3"], 2)
        self.assertEqual(len(x._stubs), 0)
        x = d.copy()
        self.assertEqual(d["3"], 1)
        self.assertEqual(x["3"], 1)
Beispiel #5
0
    def test_lazy_copy(self):
        d = LazyDict({'1': 1})
        d['2'] = 2
        x = d.copy()
        self.assertEqual(len(x), 2)
        i = {'num': 0}

        def r(key, i):
            i['num'] += 1
            return i['num']

        d.set_stub('3', r, i)
        x = d.copy()
        self.assertEqual(d['3'], 1)
        self.assertEqual(len(d._stubs), 0)
        self.assertEqual(len(x._stubs), 1)
        self.assertEqual(x['3'], 2)
        self.assertEqual(len(x._stubs), 0)
        x = d.copy()
        self.assertEqual(d['3'], 1)
        self.assertEqual(x['3'], 1)
Beispiel #6
0
 def test_copy(self):
     d = LazyDict({1: 1, 2: 2, 3: 3})
     self.assertEqual(d.copy(), LazyDict({1: 1, 2: 2, 3: 3}))
     self.assertEqual(LazyDict().copy(), LazyDict())
     self.assertRaises(TypeError, d.copy, None)
Beispiel #7
0
 def test_copy(self):
     d = LazyDict({1:1, 2:2, 3:3})
     self.assertEqual(d.copy(), LazyDict({1:1, 2:2, 3:3}))
     self.assertEqual(LazyDict().copy(), LazyDict())
     self.assertRaises(TypeError, d.copy, None)