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), ))
Пример #10
0
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), ))
Пример #11
0
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]
Пример #12
0
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()
Пример #16
0
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()
Пример #17
0
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()
Пример #19
0
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()
Пример #22
0
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()
Пример #23
0
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
Пример #25
0
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)
Пример #27
0
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')))
Пример #29
0
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')))