class IndexRetrieveRangeTest(unittest.TestCase): def setUp(self) -> None: self.int_index = Index(int) for i in range(100): self.int_index.add(i, i) self.str_index = Index(int) for i in range(10): self.str_index.add(str(i), i) @given(low=integers(min_value=0, max_value=99), high=integers(min_value=0, max_value=99)) @settings(max_examples=100) def test_retrieve_range_int(self, low, high): assume(high > low) range = self.int_index.retrieve_range(low, high) if high - low == 0: assert range == {high} else: assert len(range) == high - low + 1 @given(low=integers(min_value=0, max_value=9), high=integers(min_value=0, max_value=9)) @settings(max_examples=10) def test_retrieve_range_str(self, low, high): high = str(high) low = str(low) assume(high > low) range = self.str_index.retrieve_range(low, high) if high == low: assert range == {int(high)} else: assert len(range) == int(high) - int(low) + 1
def test_retrieve_range_bytes(): index = Index(bytes) index.add(None, 2) index.add(b"3", 3) index.add(b"3", 4) index.add(b"4", 4) index.add(b"5", 5) index.add(b"6", 6) range = index.retrieve_range(None, None) assert range == {2, 3, 4, 5, 6} range = index.retrieve_range(None, b"2") assert range == {2} range = index.retrieve_range(b"3", b"4") assert range == {3, 4} range = index.retrieve_range(b"3", b"8") assert range == {3, 4, 5, 6}