def test_small_tree_score(): # inefficiency score for trees of len() <= 2 should be 0.0 t = IntervalTree() assert t.score() == 0.0 t.addi(1, 4) assert t.score() == 0.0 t.addi(2, 5) assert t.score() == 0.0 t.addi(1, 100) # introduces inefficiency, b/c len(s_center) > 1 assert t.score() != 0.0
def optimality(): def make_interval(lst): return Interval(lst[0], lst[1], "{0}-{1}".format(*lst)) ivs = [make_interval(iv) for iv in [ [1, 2], [4, 7], [5, 9], [6, 10], [8, 10], [8, 15], [10, 12], [12, 14], [14, 15], ]] t = IntervalTree(ivs) t.print_structure() pprint(t.score(True), width=20)