def test_try_return_record_non_monotonic(self): tracker = range_trackers.OffsetRangeTracker(100, 200) self.assertTrue(tracker.try_claim(120)) with self.assertRaises(Exception): tracker.try_claim(110)
def test_try_return_record_simple_sparse(self): tracker = range_trackers.OffsetRangeTracker(100, 200) self.assertTrue(tracker.try_claim(110)) self.assertTrue(tracker.try_claim(140)) self.assertTrue(tracker.try_claim(183)) self.assertFalse(tracker.try_claim(210))
def test_try_return_first_record_not_split_point(self): with self.assertRaises(Exception): range_trackers.OffsetRangeTracker(100, 200).set_current_position(120)
def get_range_tracker(self, start_position, stop_position): if start_position is None: start_position = 0 if stop_position is None: stop_position = self._get_file_size() return range_trackers.OffsetRangeTracker(start_position, stop_position)
def get_range_tracker(self, start_position, end_position): start, end = self._normalize(start_position, end_position) return range_trackers.OffsetRangeTracker(start, end)
def test_split_at_offset_fails_if_unstarted(self): tracker = range_trackers.OffsetRangeTracker(100, 200) self.assertFalse(tracker.try_split(150))
def test_try_return_record_simple_dense(self): tracker = range_trackers.OffsetRangeTracker(3, 6) self.assertTrue(tracker.try_claim(3)) self.assertTrue(tracker.try_claim(4)) self.assertTrue(tracker.try_claim(5)) self.assertFalse(tracker.try_claim(6))