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
Exemple #2
0
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}