def test_identity(self): i1, i2, i3, i4 = P.closed(0, 1), P.openclosed(0, 1), P.closedopen(0, 1), P.open(0, 1) assert P.from_data(P.to_data(i2)) == i2 assert P.from_data(P.to_data(i3)) == i3 assert P.from_data(P.to_data(i4)) == i4 assert P.from_data(P.to_data(i1)) == i1
def test_open_intervals(self): assert P.from_data([(P.OPEN, float('-inf'), float('inf'), P.OPEN) ]) == P.open(-P.inf, P.inf) assert P.from_data([(P.OPEN, float('-inf'), 0, P.CLOSED) ]) == P.openclosed(-P.inf, 0) assert P.from_data([(P.CLOSED, 0, float('inf'), P.OPEN) ]) == P.closedopen(0, P.inf)
def interval(t): return P.from_data([(True, i[0], i[1], True) for i in t])
def test_parameters(self): d = [(P.OPEN, 'lowest', '4', P.CLOSED), (P.CLOSED, '6', 'highest', P.OPEN)] assert P.from_data(d, conv=int, pinf='highest', ninf='lowest') == P.openclosed(-P.inf, 4) | P.closedopen(6, P.inf)
def test_unions(self): d = [(P.OPEN, float('-inf'), 4, P.CLOSED), (P.CLOSED, 6, float('inf'), P.OPEN)] assert P.from_data(d) == P.openclosed(-P.inf, 4) | P.closedopen(6, P.inf)
def test_empty_interval(self): assert P.from_data([(P.OPEN, float('inf'), float('-inf'), P.OPEN)]) == P.empty()
def test_singleton(self): assert P.from_data([(P.CLOSED, 0, 0, P.CLOSED)]) == P.singleton(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]))
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)