示例#1
0
 def test_clear(self):
     d = P.IntervalDict([(P.closed(0, 3), 0)])
     d.clear()
     assert d == P.IntervalDict()
     d.clear()
     assert d == P.IntervalDict()
示例#2
0
 def test_replace_values(self):
     i = P.open(0, 1)
     assert i.replace(left=P.CLOSED, right=P.CLOSED) == P.closed(0, 1)
     assert i.replace(lower=1, upper=2) == P.open(1, 2)
     assert i.replace(lower=lambda v: 1, upper=lambda v: 2) == P.open(1, 2)
示例#3
0
 def test_apply_on_empty(self):
     assert P.empty().apply(lambda s:
                            (P.CLOSED, 1, 2, P.CLOSED)) == P.closed(1, 2)
 def test_diverge_20_30(self):
     if ENABLE_LONG_RUNNING_TESTS:
         y_intervals = [p.closed(-p.inf, 20), p.closed(30, p.inf)]
         # is the negative std correct ?
         self.check_mean_std(y_intervals, 25)
示例#5
0
    def test_hash_with_hashable(self):
        assert hash(P.closed(0, 1)) is not None
        assert hash(P.closed(0, 1)) != hash(P.closed(1, 2))

        assert hash(P.openclosed(-P.inf, 0)) is not None
        assert hash(P.closedopen(0, P.inf)) is not None
        assert hash(P.empty()) is not None

        assert hash(P.closed(0, 1) | P.closed(3, 4)) is not None
        assert hash(P.closed(0, 1) | P.closed(3, 4)) != hash(P.closed(0, 1))
        assert hash(P.closed(0, 1) | P.closed(3, 4)) != hash(P.closed(3, 4))
示例#6
0
 def test_bounds(self):
     assert P.to_string(P.closed(0, 1)) == '[0,1]'
     assert P.to_string(P.openclosed(0, 1)) == '(0,1]'
     assert P.to_string(P.closedopen(0, 1)) == '[0,1)'
     assert P.to_string(P.open(0, 1)) == '(0,1)'
 def test_left_censored_10_30_30(self):
     y_intervals = [p.closed(-p.inf, 10), p.singleton(30), p.singleton(30)]
     self.check_mean_std(y_intervals, 21.83)
示例#8
0
 def test_delete_interval(self):
     d = P.IntervalDict([(P.closed(0, 2), 0)])
     del d[P.closed(-1, 1)]
     assert d.as_dict() == {P.openclosed(1, 2): 0}
示例#9
0
 def test_delete_interval_out_of_bound(self):
     d = P.IntervalDict([(P.closed(0, 2), 0)])
     del d[P.closed(-10, -9)]
     assert d.as_dict() == {P.closed(0, 2): 0}
示例#10
0
    def test_set(self):
        # Set values
        d = P.IntervalDict([(P.closed(0, 2), 0)])
        d[3] = 2
        assert d.as_dict() == {P.closed(0, 2): 0, P.singleton(3): 2}
        d[3] = 3
        assert d.as_dict() == {P.closed(0, 2): 0, P.singleton(3): 3}
        d[P.closed(0, 2)] = 1
        assert d.as_dict() == {P.closed(0, 2): 1, P.singleton(3): 3}
        d[P.closed(-1, 1)] = 2
        assert d.as_dict() == {
            P.closed(-1, 1): 2,
            P.openclosed(1, 2): 1,
            P.singleton(3): 3
        }

        d = P.IntervalDict([(P.closed(0, 2), 0)])
        d[P.closed(-1, 4)] = 1
        assert d.as_dict() == {P.closed(-1, 4): 1}
        d[P.closed(5, 6)] = 1
        assert d.as_dict() == {P.closed(-1, 4) | P.closed(5, 6): 1}
示例#11
0
 def test_delete_value(self):
     d = P.IntervalDict([(P.closed(0, 2), 0)])
     del d[1]
     assert d.get(1, None) is None
示例#12
0
 def test_copy(self):
     d = P.IntervalDict([(P.closed(0, 3), 0)])
     assert d.copy() == d
     assert d.copy() is not d
示例#13
0
 def test_find_on_unions(self):
     d = P.IntervalDict([(P.closed(0, 2), 0), (P.closed(3, 5), 0),
                         (P.closed(7, 9), 1)])
     assert d.find(1) == P.closed(7, 9)
     assert d.find(0) == P.closed(0, 2) | P.closed(3, 5)
示例#14
0
 def test_find(self):
     d = P.IntervalDict([(P.closed(0, 3), 0)])
     assert d.find(-1) == P.empty()
     assert d.find(0) == P.closed(0, 3)
示例#15
0
 def test_bound_types(self):
     assert P.to_string(P.closed('a', 'b')) == "['a','b']"
     assert P.to_string(P.closed(tuple([0]), tuple([1]))) == '[(0,),(1,)]'
示例#16
0
 def test_delete_empty_interval(self):
     d = P.IntervalDict([(P.closed(0, 2), 0)])
     del d[P.empty()]
     assert d.as_dict() == {P.closed(0, 2): 0}
示例#17
0
 def test_bounds(self):
     assert P.from_string('[0,1]', int) == P.closed(0, 1)
     assert P.from_string('(0,1]', int) == P.openclosed(0, 1)
     assert P.from_string('[0,1)', int) == P.closedopen(0, 1)
     assert P.from_string('(0,1)', int) == P.open(0, 1)
示例#18
0
 def test_setdefault_with_values(self):
     d = P.IntervalDict([(P.closed(0, 2), 0)])
     assert d.setdefault(-1, default=0) == 0
     assert d[-1] == 0
     assert d.setdefault(0, default=1) == 0
     assert d[0] == 0
示例#19
0
 def test_unions(self):
     assert P.from_string('[0,1] | [2,3]', int) == P.closed(0, 1) | P.closed(2, 3)
示例#20
0
 def test_bounds(self):
     assert P.to_data(P.closed(0, 1)) == [(True, 0, 1, True)]
     assert P.to_data(P.openclosed(0, 1)) == [(False, 0, 1, True)]
     assert P.to_data(P.closedopen(0, 1)) == [(True, 0, 1, False)]
     assert P.to_data(P.open(0, 1)) == [(False, 0, 1, False)]
 def test_left_censored_30_20_10(self):
     y_intervals = [p.closed(-p.inf, 30), p.singleton(10), p.singleton(20)]
     self.check_mean_std(y_intervals, 14.9935)
示例#22
0
 def test_values(self):
     assert P.to_data(P.closed('a', 'b')) == [(True, 'a', 'b', True)]
     assert P.to_data(P.closed(tuple([0]), tuple([1]))) == [(True, (0,), (1,), True)]
 def test_right_censored_30_30_50(self):
     y_intervals = [p.singleton(30), p.singleton(30), p.closed(50, p.inf)]
     self.check_mean_std(y_intervals, 38.16)
示例#24
0
 def test_bounds(self):
     assert P.from_data([(P.CLOSED, 0, 1, P.CLOSED)]) == P.closed(0, 1)
     assert P.from_data([(P.OPEN, 0, 1, P.CLOSED)]) == P.openclosed(0, 1)
     assert P.from_data([(P.CLOSED, 0, 1, P.OPEN)]) == P.closedopen(0, 1)
     assert P.from_data([(P.OPEN, 0, 1, P.OPEN)]) == P.open(0, 1)
示例#25
0
 def test_enclosure(self):
     assert P.closed(0, 1) == P.closed(0, 1).enclosure
     assert P.open(0, 1) == P.open(0, 1).enclosure
     assert P.closed(0, 4) == (P.closed(0, 1) | P.closed(3, 4)).enclosure
     assert P.openclosed(0, 4) == (P.open(0, 1) | P.closed(3, 4)).enclosure
示例#26
0
 def test_values(self):
     assert P.from_data([(P.CLOSED, 'a', 'b', P.CLOSED)]) == P.closed('a', 'b')
     assert P.from_data([(P.CLOSED, (0,), (1,), P.CLOSED)]) == P.closed(tuple([0]), tuple([1]))
示例#27
0
 def test_with_infinities(self):
     assert P.closed(-P.inf, P.inf) == P.open(-P.inf, P.inf)
     assert P.closed(-P.inf, 0) == P.openclosed(-P.inf, 0)
     assert P.closed(0, P.inf) == P.closedopen(0, P.inf)
示例#28
0
 def test_unions(self):
     assert P.to_string(P.closed(0, 1) | P.closed(2, 3)) == '[0,1] | [2,3]'
示例#29
0
 def test_adjacent(self):
     assert P.closedopen(0, 1).adjacent(P.closedopen(1, 2))
     assert P.closed(0, 1).adjacent(P.open(1, 2))
     assert not P.closed(0, 1).adjacent(P.closed(1, 2))
     assert not P.open(0, 1).adjacent(P.open(1, 2))
示例#30
0
 def test_popitem(self):
     d = P.IntervalDict([(P.closed(0, 3), 0)])
     t = d.popitem()
     assert t == (P.closed(0, 3), 0)
     assert len(d) == 0