Beispiel #1
0
    def test_fuzzy_query(self):
        intervals = make_intervals(-5, 95, 11)
        tree = IntervalTree(intervals)

        # by default required coverage is 1.
        self.assertListEqual([SimpleInterval(0, 100)],
                             tree.fuzzy_query(0, 100))

        # try .98, this should add intervals within +-1 to the results
        self.assertListEqual([
            SimpleInterval(-1, 99),
            SimpleInterval(0, 100),
            SimpleInterval(1, 101)
        ], tree.fuzzy_query(0, 100, coverage=.98))
        # try .95, this should add intervals within +-2.5 to the results
        self.assertListEqual([
            SimpleInterval(-2, 98),
            SimpleInterval(-1, 99),
            SimpleInterval(0, 100),
            SimpleInterval(1, 101),
            SimpleInterval(2, 102)
        ], tree.fuzzy_query(0, 100, coverage=.95))

        # test error input
        self.assertRaises(ValueError, tree.fuzzy_query, 0, 100, 1.5)
Beispiel #2
0
 def test_fuzzy_query_other(self):
     tree = IntervalTree(make_intervals(38, 62, 1))
     results = tree.fuzzy_query(40, 60, coverage=.80)
     self.assertListEqual([SimpleInterval(38, 62)], results)
Beispiel #3
0
 def setUp(self) -> None:
     intervals = make_intervals(0, 3, 9)
     self.tree = IntervalTree(intervals)
Beispiel #4
0
 def test_jaccard_query(self):
     tree = IntervalTree(make_intervals(-20, 80, 11, step=5))
     self.assertListEqual([SimpleInterval(-5, 95),
                           SimpleInterval(0, 100)],
                          tree.jaccard_query(-5, 100, .9))
Beispiel #5
0
 def setUp(self) -> None:
     self.node = IntervalNode(make_intervals(0, 3, 9))
Beispiel #6
0
 def test_equality(self):
     self.assertEqual(IntervalNode(make_intervals(0, 3, 9)), self.node)