Module hub.util.tests.test_slice
Expand source code
from hub.util.slice import merge_slices
from pytest_cases import parametrize_with_cases # type: ignore
class MergeSlicesCases:
def case_first_longer(self):
return slice(0, 4), slice(1, 3)
def case_second_longer(self):
return slice(0, 4), slice(1, 7)
def case_start_none(self):
return slice(None, 4), slice(1, 7)
def case_stop_first_none(self):
return slice(1, None), slice(3, 7)
def case_stop_second_none(self):
return slice(2, 5), slice(1, None)
def case_stop_both_none(self):
return slice(1, None), slice(2, None)
def case_irregular_steps(self):
return slice(4, 101, 2), slice(10, 20, 3)
@parametrize_with_cases("first,second", cases=MergeSlicesCases)
def test_merge_slices(first: slice, second: slice):
r = range(100)
assert r[first][second] == r[merge_slices(first, second)]
Functions
def test_merge_slices(first: slice, second: slice)
-
Expand source code
@parametrize_with_cases("first,second", cases=MergeSlicesCases) def test_merge_slices(first: slice, second: slice): r = range(100) assert r[first][second] == r[merge_slices(first, second)]
Classes
class MergeSlicesCases
-
Expand source code
class MergeSlicesCases: def case_first_longer(self): return slice(0, 4), slice(1, 3) def case_second_longer(self): return slice(0, 4), slice(1, 7) def case_start_none(self): return slice(None, 4), slice(1, 7) def case_stop_first_none(self): return slice(1, None), slice(3, 7) def case_stop_second_none(self): return slice(2, 5), slice(1, None) def case_stop_both_none(self): return slice(1, None), slice(2, None) def case_irregular_steps(self): return slice(4, 101, 2), slice(10, 20, 3)
Methods
def case_first_longer(self)
-
Expand source code
def case_first_longer(self): return slice(0, 4), slice(1, 3)
def case_irregular_steps(self)
-
Expand source code
def case_irregular_steps(self): return slice(4, 101, 2), slice(10, 20, 3)
def case_second_longer(self)
-
Expand source code
def case_second_longer(self): return slice(0, 4), slice(1, 7)
def case_start_none(self)
-
Expand source code
def case_start_none(self): return slice(None, 4), slice(1, 7)
def case_stop_both_none(self)
-
Expand source code
def case_stop_both_none(self): return slice(1, None), slice(2, None)
def case_stop_first_none(self)
-
Expand source code
def case_stop_first_none(self): return slice(1, None), slice(3, 7)
def case_stop_second_none(self)
-
Expand source code
def case_stop_second_none(self): return slice(2, 5), slice(1, None)