def test_get_range(): """Test get_range.""" rm = RangeMap({1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}, default_value='z') print_underlying(rm) print_underlying(rm.get_range(1, 3)) print_underlying(RangeMap.from_iterable(((1, 2, 'a'), (2, 3, 'b')))) assert ( rm.get_range(1, 3) == RangeMap.from_iterable(((1, 2, 'a'), (2, 3, 'b'))) ) assert ( rm.get_range(1.5, 3) == RangeMap.from_iterable(((1.5, 2, 'a'), (2, 3, 'b'))) ) print_underlying(rm.get_range(start=3)) assert rm.get_range(start=3) == RangeMap({3: 'c', 4: 'd', 5: 'e'}) assert ( rm.get_range(stop=3) == RangeMap.from_iterable(((None, 1, 'z'), (1, 2, 'a'), (2, 3, 'b'))) ) if is_py2: with pytest.raises(SyntaxError): rm[2:3] else: assert rm[2:3] == rm.get_range(2, 3)
def test_start_gt_stop(): rm = RangeMap({1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}, default_value='z') with pytest.raises(ValueError): rm.set('a', start=3, stop=2) with pytest.raises(ValueError): rm.get_range(start=3, stop=2)