示例#1
0
    def test_insert(self):
        od = OrderedDict()
        for i in range(10):
            od[i] = 100 * i

        # New item
        od.insert(0, -1, 0)
        self.assertEqual(od.keys(), [-1] + range(10))
        od._keyorder = range(10)

        # Reordering
        #  a., insert before the old position
        od.insert(0, 5, 0)
        self.assertEqual(od.keys(), [5] + range(5) + range(6, 10))
        od._keyorder = range(10)

        #  b., insert after the old position
        od.insert(7, 5, 0)
        self.assertEqual(od.keys(), range(5) + [6, 5, 7, 8, 9])
        od._keyorder = range(10)
示例#2
0
    def test_update(self):
        od1 = OrderedDict()
        for i in range(10):
            od1[i] = 100 * i

        keys1 = od1.keys()

        od2 = OrderedDict()
        for i in range(10, 20):
            od2[i] = 100 * i

        od1.update(od2)
        for index, check in zip(od1.keys(), range(20)):
            self.assertEqual(index, check)

        od1._keyorder = keys1

        od1.update(0, od2)
        for index, check in zip(od1.keys(), range(10, 20) + range(10)):
            self.assertEqual(index, check)

        self.assertRaises(TypeError, od1.update, 0, od1, 1)