Ejemplo n.º 1
0
    def testfind(self):
        l = SortedList([9,7,1,3,6,2])

        for j, k in itertools.zip_longest(l.find(), [1,2,3,6,7,9]):
            self.assertEqual(j, k)

        for j, k in itertools.zip_longest(l.find(min_key=3), [3,6,7,9]):
            self.assertEqual(j, k)

        for j, k in itertools.zip_longest(l.find(max_key=6), [1,2,3,6]):
            self.assertEqual(j, k)

        for j, k in itertools.zip_longest(l.find(min_key=3, max_key=6), [3,6]):
            self.assertEqual(j, k)
Ejemplo n.º 2
0
    def testadd(self):
        l = SortedList([2,3,6,9])

        l.add(5)

        for j, k in itertools.zip_longest(l, [2,3,5,6,9]):
            self.assertEqual(j, k)

        l = SortedList([9,6,3,2], keyfunc=lambda j: -j)

        l.add(5)

        for j, k in itertools.zip_longest(l, [9,6,5,3,2]):
            self.assertEqual(j, k)

        l = SortedList([9,6,3,2], keyfunc=lambda a: -a)

        l.add(5)

        for j, k in itertools.zip_longest(l, [9,6,5,3,2]):
            self.assertEqual(j, k)
Ejemplo n.º 3
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)