Пример #1
0
    def test_3_order_cmplx(self):
        od = OrderedDict()
        no = 10

        keys = [ 'key number %d' % i for i in range(no) ]
        vals = [ 'value number %d' % i for i in range(no) ]

        for i in range(no):
            od[keys[i]] = vals[i]
        keys.reverse()
        self._compareOrder(od, keys)

        # Move around different elements
        for i in [ 0, int((no - 1) / 2), no - 1]:
            od.to_head(keys[i])
            keys = [ keys[i] ] + keys[:i] + keys[i + 1:]
            self._compareOrder(od, keys)

            od.to_tail(keys[i])
            keys = keys[:i] + keys[i + 1:] + [ keys[i] ]
            self._compareOrder(od, keys)

            remove = keys[i]
            del od[remove]
            keys = keys[:i] + keys[i + 1:]
            self._compareOrder(od, keys)

            od[remove] = 'something new'
            keys.insert(0, remove)
            self._compareOrder(od, keys)
Пример #2
0
    def test_1_add_del(self):
        od = OrderedDict()

        key1 = 'key1'
        val1 = 'val1'

        # Add elements
        def add_one():
            od[key1] = val1
            self.assertEqual(od.get_first(), val1)
            self.assertEquals(od.get_last(), val1)
            self.assertEqual(od.get(key1), val1)
            self.assertTrue(od)
            self.assertTrue(key1 in od)
            self.assertEqual(len(od), 1)


        add_one()
        del od[key1]
        self.assertFalse(od)
        self.assertFalse(key1 in od)
        self.assertEqual(len(od), 0)
        self.assertRaises(IndexError, od.get_first)
        self.assertRaises(IndexError, od.get_last)

        add_one()
        self.assertEqual(od.pop_first(), val1)
        self.assertFalse(od)
        self.assertFalse(key1 in od)
        self.assertEqual(len(od), 0)
        self.assertRaises(IndexError, od.get_first)
        self.assertRaises(IndexError, od.get_last)

        add_one()
        self.assertEqual(od.pop_last(), val1)
        self.assertFalse(od)
        self.assertFalse(key1 in od)
        self.assertEqual(len(od), 0)
        self.assertRaises(IndexError, od.get_first)
        self.assertRaises(IndexError, od.get_last)
Пример #3
0
    def test_2_order_simple(self):
        od = OrderedDict()

        key1 = 'key1'
        val1 = 'val1'
        key2 = 'key2'
        val2 = 'val2'

        od[key1] = val1
        od[key2] = val2

        self.assertEqual(od.get_first(), val2)
        self.assertEquals(od.get_last(), val1)

        od[key1] = val1
        self.assertEqual(od.get_first(), val2)
        self.assertEquals(od.get_last(), val1)

        od.to_tail(key1)
        self.assertEqual(od.get_first(), val2)
        self.assertEquals(od.get_last(), val1)

        od.to_head(key1)
        self.assertEqual(od.get_first(), val1)
        self.assertEquals(od.get_last(), val2)