Ejemplo n.º 1
0
    def testindexes(self):
        class Item(object):
            def __init__(self, value):
                self._index = None
                self.value = value

            @property
            def indx(self):
                return self._index

            @indx.setter
            def indx(self, value):
                self._index = value

        def check(l):
            for i in range(len(l)):
                self.assertEqual(l[i].indx, i)

        l = SortedList([Item(v) for v in [9,7,1,3,6,2]], keyfunc=lambda a: a.value, index_attr='indx')
        check(l)

        l.add(Item(5))
        check(l)

        del l[3]
        check(l)

        l[2].value = 16
        l.move(2)
        check(l)

        l[4].value = -1
        l.move(4)
        check(l)

        l[0].value = 4
        l.move(0)
        check(l)