コード例 #1
0
ファイル: tests_impl.py プロジェクト: ideasman42/rangetree-py
 def test_copy_10(self):
     r_src = RangeTree(min=0, max=10)
     for i in range(0, 10, 2):
         r_src.take(i)
     r_dst = r_src.copy()
     data = list(r_src.range_iter())
     self.assertEqual(data, list(r_dst.range_iter()))
     r_dst.clear()
     self.assertEqual([], list(r_dst.range_iter()))
コード例 #2
0
ファイル: tests_impl.py プロジェクト: ideasman42/rangetree-py
    def test_complex(self):
        """
        Test complex pairs
        """
        r = RangeTree(min=-10, max=11)
        # 2 passes on the same data structure.
        for _ in range(2):
            self.assertEqual(r.is_empty(), True)
            for i in (-10, 10, 11):
                r.take(i)
            self.assertEqual(r.is_empty(), False)

            self.assertEqual(list(r.range_iter()), [(-10, -10), (10, 11)])
            for i in (-8, -7, 8):
                r.take(i)
            self.assertEqual(list(r.range_iter()), [(-10, -10), (-8, -7),
                                                    (8, 8), (10, 11)])
            for i in (-9, 9):
                r.take(i)
            self.assertEqual(list(r.range_iter()), [(-10, -7), (8, 11)])
            for i in (-9, 9):
                r.release(i)
            self.assertEqual(list(r.range_iter()), [(-10, -10), (-8, -7),
                                                    (8, 8), (10, 11)])
            for i in (8, 10, 11):
                r.release(i)
            self.assertEqual(list(r.range_iter()), [(-10, -10), (-8, -7)])
            for i in (-10, -8, -7):
                r.release(i)
            # empty for next pass
            self.assertEqual(list(r.range_iter()), [])
コード例 #3
0
ファイル: tests_impl.py プロジェクト: ideasman42/rangetree-py
    def test_simple(self):
        r = RangeTree(min=0, max=9)
        ls = list(range(0, 10))
        for i in ls:
            r.take(i)

        self.assertEqual(list(r.range_iter()), [(ls[0], ls[-1])])

        self.assertEqual(r.has(ls[0] - 0), True)
        self.assertEqual(r.has(ls[0] - 1), False)

        self.assertEqual(r.has(ls[-1] + 0), True)
        self.assertEqual(r.has(ls[-1] + 1), False)
コード例 #4
0
ファイル: tests_impl.py プロジェクト: ideasman42/rangetree-py
    def test_many(self):
        r = RangeTree(min=0, max=9)

        # 2 passes to be sure
        for _ in range(2):
            self.assertEqual(r.is_empty(), True)
            ls = list(range(0, 10, 2))
            for i in ls:
                r.take(i)
            self.assertEqual(r.is_empty(), False)

            self.assertEqual(r.has(ls[0] - 0), True)
            self.assertEqual(r.has(ls[0] - 1), False)

            self.assertEqual(r.has(ls[-1] + 0), True)
            self.assertEqual(r.has(ls[-1] + 1), False)

            self.assertEqual(
                list(r.range_iter()),
                [(0, 0), (2, 2), (4, 4), (6, 6), (8, 8)],
            )

            r.release(ls.pop(0))
            r.release(ls.pop(-1))
            r.take(3)
            r.take(5)
            self.assertEqual(list(r.range_iter()), [(2, 6)])
            r.release(2)
            r.release(6)
            self.assertEqual(list(r.range_iter()), [(3, 5)])
            r.release(4)
            self.assertEqual(list(r.range_iter()), [(3, 3), (5, 5)])

            for i in (3, 5):
                r.release(i)

            self.assertEqual(list(r.range_iter()), [])
コード例 #5
0
ファイル: tests_impl.py プロジェクト: ideasman42/rangetree-py
 def test_copy_empty(self):
     r_src = RangeTree(min=0, max=10)
     r_dst = r_src.copy()
     self.assertEqual(list(r_src.range_iter()), list(r_dst.range_iter()))