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_end(): assert RangeMap().end is None rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'b'), )) assert rm.end == 5 rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, None, 'b'), )) assert rm.end is None
def test_end(): assert RangeMap().end is None rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'b'), )) assert rm.end == 5 rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, None, 'b'), )) assert rm.end is None
def test_start(): assert RangeMap().start is None rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'b'), )) assert rm.start == 1 rm = RangeMap.from_iterable(( (None, 2, 'a'), (4, 5, 'b'), )) assert rm.start is None
def test_start(): assert RangeMap().start is None rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'b'), )) assert rm.start == 1 rm = RangeMap.from_iterable(( (None, 2, 'a'), (4, 5, 'b'), )) assert rm.start is None
def test_iter(): assert list(RangeMap()) == [] assert list(RangeMap(default_value='a')) == [None] rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert list(rm) == [1, 4, 5] rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), )) assert list(rm) == [1, 4]
def test_iter(): assert list(RangeMap()) == [] assert list(RangeMap(default_value='a')) == [None] rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert list(rm) == [1, 4, 5] rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), )) assert list(rm) == [1, 4]
def test_values(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert list(rm.values()) == ['a', 'd', 'e'] rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), )) assert list(rm.values()) == ['a', 'd'] assert list(RangeMap().values()) == [] assert list(RangeMap(default_value='a').values()) == ['a'] assert list(RangeMap(default_value=None).values()) == [None]
def test_items(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert rm.items() == set(((1, 'a'), (4, 'd'), (5, 'e'))) rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), )) assert rm.items() == set(((1, 'a'), (4, 'd'))) assert RangeMap().items() == set() assert RangeMap(default_value='a').items() == set(((None, 'a'),)) assert RangeMap(default_value=None).items() == set(((None, None), ))
def test_items(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert rm.items() == set(((1, 'a'), (4, 'd'), (5, 'e'))) rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), )) assert rm.items() == set(((1, 'a'), (4, 'd'))) assert RangeMap().items() == set() assert RangeMap(default_value='a').items() == set(((None, 'a'),)) assert RangeMap(default_value=None).items() == set(((None, None), ))
def test_values(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert list(rm.values()) == ['a', 'd', 'e'] rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), )) assert list(rm.values()) == ['a', 'd'] assert list(RangeMap().values()) == [] assert list(RangeMap(default_value='a').values()) == ['a'] assert list(RangeMap(default_value=None).values()) == [None]
def test_empty(): """Test RangeMap.empty.""" rm = RangeMap({1: 'a', 2: 'b', 3: 'c', 4: 'd'}) rm.empty(2, 3) rm.empty(2, 3) assert rm == RangeMap.from_iterable(( (1, 2, 'a'), (3, 4, 'c'), (4, None, 'd'), )) rm.empty(3.5, 4.5) assert rm == RangeMap.from_iterable(( (1, 2, 'a'), (3, 3.5, 'c'), (4.5, None, 'd'), ))
def test_empty(): """Test RangeMap.empty.""" rm = RangeMap({1: 'a', 2: 'b', 3: 'c', 4: 'd'}) rm.empty(2, 3) rm.empty(2, 3) assert rm == RangeMap.from_iterable(( (1, 2, 'a'), (3, 4, 'c'), (4, None, 'd'), )) rm.empty(3.5, 4.5) assert rm == RangeMap.from_iterable(( (1, 2, 'a'), (3, 3.5, 'c'), (4.5, None, 'd'), ))
def test_values_view_contains(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert 'a' in rm.values() assert 'b' not in rm.values()
def test_items_view_contains(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert (1, 'a') in rm.items() assert (2, 'a') not in rm.items()
def test_items_view_contains(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert (1, 'a') in rm.items() assert (2, 'a') not in rm.items()
def test_values_view_contains(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert 'a' in rm.values() assert 'b' not in rm.values()
def test_clear(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) rm.clear() assert rm == RangeMap()
def test_clear(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) rm.clear() assert rm == RangeMap()
def test_get(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert rm.get(1) == 'a' assert rm.get(1.5) == 'a' assert rm.get(2) is None
def test_key_view_contains(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert 1 in rm.keys() assert 2 not in rm.keys() assert 1.5 in rm.keys()
def test_key_view_contains(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert 1 in rm.keys() assert 2 not in rm.keys() assert 1.5 in rm.keys()
def test_get(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert rm.get(1) == 'a' assert rm.get(1.5) == 'a' assert rm.get(2) is None
def test_len(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert len(rm) == 3 assert len(RangeMap(default_value='a')) == 1 assert len(RangeMap()) == 0 assert len(RangeMap(default_value=None)) == 1
def test_len(): rm = RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) assert len(rm) == 3 assert len(RangeMap(default_value='a')) == 1 assert len(RangeMap()) == 0 assert len(RangeMap(default_value=None)) == 1
def test_delete(): """Test deleting.""" rm = RangeMap({1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}, default_value='z') rm.delete(stop=1) assert rm == RangeMap({1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}) rm.delete(start=2, stop=4) assert rm == RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) rm.delete(start=5) assert rm == RangeMap.from_iterable(((1, 2, 'a'), (4, 5, 'd'))) rm = RangeMap({1: 'a', 2: 'b', 3: 'c'}) rm.delete(2, 3) assert rm == RangeMap([(1, 2, 'a'), (3, None, 'c')]) print(repr(rm)) with pytest.raises(KeyError): rm.delete(2, 3) with pytest.raises(KeyError): rm.delete(0, 2) with pytest.raises(KeyError): rm.delete(2.5, 3.5)
def test_delete(): """Test deleting.""" rm = RangeMap({1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}, default_value='z') rm.delete(stop=1) assert rm == RangeMap({1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}) rm.delete(start=2, stop=4) assert rm == RangeMap.from_iterable(( (1, 2, 'a'), (4, 5, 'd'), (5, None, 'e'), )) rm.delete(start=5) assert rm == RangeMap.from_iterable(((1, 2, 'a'), (4, 5, 'd'))) rm = RangeMap({1: 'a', 2: 'b', 3: 'c'}) rm.delete(2, 3) assert rm == RangeMap([(1, 2, 'a'), (3, None, 'c')]) print(repr(rm)) with pytest.raises(KeyError): rm.delete(2, 3) with pytest.raises(KeyError): rm.delete(0, 2) with pytest.raises(KeyError): rm.delete(2.5, 3.5)
def test_delitem_consecutive(): """Test deleting consecutive ranges.""" rm = RangeMap({2: 'b', 3: 'c', 4: 'd', 5: 'e'}) rm.delete(3, 4) rm.delete(4, 5) assert rm == RangeMap.from_iterable(((2, 3, 'b'), (5, None, 'e')))
def test_delitem_consecutive(): """Test deleting consecutive ranges.""" rm = RangeMap({2: 'b', 3: 'c', 4: 'd', 5: 'e'}) rm.delete(3, 4) rm.delete(4, 5) assert rm == RangeMap.from_iterable(((2, 3, 'b'), (5, None, 'e')))