Example #1
0
def test_from_sortedmap():
    m = sortedmap(a=1, b=2, c=3)
    n = sortedmap(m)
    assert n == m
    assert m is not n
    m['d'] = 4
    assert n != m
Example #2
0
def test_from_sortedmap():
    m = sortedmap(a=1, b=2, c=3)
    n = sortedmap(m)
    assert n == m
    assert m is not n
    m['d'] = 4
    assert n != m
Example #3
0
def test_clear(m):
    n = sortedmap(m)
    m.clear()
    assert not len(m)
    assert m == sortedmap()

    # check that copy constructor doesn't share the maps
    assert len(n) == 3
    assert n == sortedmap(a=1, b=2, c=3)
Example #4
0
def test_clear(m):
    n = sortedmap(m)
    m.clear()
    assert not len(m)
    assert m == sortedmap()

    # check that copy constructor doesn't share the maps
    assert len(n) == 3
    assert n == sortedmap(a=1, b=2, c=3)
Example #5
0
def test_update_kwargs(m):
    m.update(a=4, b=5, d=6)
    assert m == sortedmap(
        a=4,
        b=5,
        c=3,
        d=6,
    )
Example #6
0
def test_setdefault():
    m = sortedmap()

    assert m.setdefault('a') is None
    assert m.setdefault('a', 1) is None

    assert m.setdefault('b', 1) == 1
    assert m.setdefault('b', 2) == 1
Example #7
0
def test_setdefault():
    m = sortedmap()

    assert m.setdefault('a') is None
    assert m.setdefault('a', 1) is None

    assert m.setdefault('b', 1) == 1
    assert m.setdefault('b', 2) == 1
Example #8
0
def test_update_kwargs(m):
    m.update(a=4, b=5, d=6)
    assert m == sortedmap(
        a=4,
        b=5,
        c=3,
        d=6,
    )
Example #9
0
def test_update_dict(m):
    m.update({'a': 4, 'b': 5, 'd': 6})
    assert m == sortedmap(
        a=4,
        b=5,
        c=3,
        d=6,
    )
Example #10
0
def test_update_dict(m):
    m.update({'a': 4, 'b': 5, 'd': 6})
    assert m == sortedmap(
        a=4,
        b=5,
        c=3,
        d=6,
    )
Example #11
0
def test_invalidate_iter(itertype):
    m = sortedmap()
    it = iter(getattr(m, itertype)())
    m[1] = 1  # update the size
    with pytest.raises(RuntimeError):
        next(it)  # advance the iterator

    it = iter(getattr(m, itertype)())
    m[1] = 2  # change a value without changing the size
    next(it)  # works without raising
Example #12
0
def test_invalidate_iter(itertype):
    m = sortedmap()
    it = iter(getattr(m, itertype)())
    m[1] = 1  # update the size
    with pytest.raises(RuntimeError):
        next(it)  # advance the iterator

    it = iter(getattr(m, itertype)())
    m[1] = 2  # change a value without changing the size
    next(it)  # works without raising
Example #13
0
def test_itemview_setlike(m):
    items = m.items()
    assert items - {('a', 1)} == {('b', 2), ('c', 3)}
    assert items <= {('a', 1), ('b', 2), ('c', 3)}
    assert items < {('a', 1), ('b', 2), ('c', 3), 'd'}
    assert items > {('a', 1), ('b', 2)}
    assert items | {'d', 'e'} == {('a', 1), ('b', 2), ('c', 3), 'd', 'e'}
    assert items & {('b', 2), ('c', 3), 'd', 'e'} == {('b', 2), ('c', 3)}
    assert items ^ {('a', 1), ('b', 2), ('d', 4)} == {('c', 3), ('d', 4)}
    assert items  # bool
    assert not sortedmap().items()
Example #14
0
def test_keyview_setlike(m):
    keys = m.keys()
    assert keys - {'a'} == {'b', 'c'}
    assert keys <= {'a', 'b', 'c'}
    assert keys < {'a', 'b', 'c', 'd'}
    assert keys > {'a', 'b'}
    assert keys | {'d', 'e'} == {'a', 'b', 'c', 'd', 'e'}
    assert keys & {'b', 'c', 'd', 'e'} == {'b', 'c'}
    assert keys ^ {'a', 'b', 'd'} == {'c', 'd'}
    assert keys  # bool
    assert not sortedmap().keys()
Example #15
0
def test_keyview_setlike(m):
    keys = m.keys()
    assert keys - {'a'} == {'b', 'c'}
    assert keys <= {'a', 'b', 'c'}
    assert keys < {'a', 'b', 'c', 'd'}
    assert keys > {'a', 'b'}
    assert keys | {'d', 'e'} == {'a', 'b', 'c', 'd', 'e'}
    assert keys & {'b', 'c', 'd', 'e'} == {'b', 'c'}
    assert keys ^ {'a', 'b', 'd'} == {'c', 'd'}
    assert keys  # bool
    assert not sortedmap().keys()
Example #16
0
def test_itemview_setlike(m):
    items = m.items()
    assert items - {('a', 1)} == {('b', 2), ('c', 3)}
    assert items <= {('a', 1), ('b', 2), ('c', 3)}
    assert items < {('a', 1), ('b', 2), ('c', 3), 'd'}
    assert items > {('a', 1), ('b', 2)}
    assert items | {'d', 'e'} == {('a', 1), ('b', 2), ('c', 3), 'd', 'e'}
    assert items & {('b', 2), ('c', 3), 'd', 'e'} == {('b', 2), ('c', 3)}
    assert items ^ {('a', 1), ('b', 2), ('d', 4)} == {('c', 3), ('d', 4)}
    assert items  # bool
    assert not sortedmap().items()
Example #17
0
def test_from_mapping():
    class M:
        def __init__(self):
            self._map = {'a': 1, 'b': 2, 'c': 3}

        def __getitem__(self, key):
            return self._map[key]

        def keys(self):
            return self._map.keys()

    assert (list(sortedmap(M()).items()) == list(zip('abc', (1, 2, 3))))
Example #18
0
def test_values():
    m = sortedmap(a=1, b=2, c=3)
    assert m.values() == [1, 2, 3]
    assert m.values() == {1, 2, 3}
    assert m.values() == (1, 2, 3)
    assert list(m.values()) == [1, 2, 3]  # check iter order

    # check that updates are seen
    view = m.values()
    m['d'] = 4
    assert view == [1, 2, 3, 4]
    assert view == {1, 2, 3, 4}
    assert view == (1, 2, 3, 4)
    assert list(m.values()) == [1, 2, 3, 4]  # check iter order
Example #19
0
def test_keys():
    m = sortedmap(a=1, b=2, c=3)
    assert m.keys() == list('abc')
    assert m.keys() == set('abc')
    assert m.keys() == tuple('abc')
    assert list(m.keys()) == list('abc')  # check iter order

    # check that updates are seen
    view = m.keys()
    m['d'] = 4
    assert view == list('abcd')
    assert view == set('abcd')
    assert view == tuple('abcd')
    assert list(m.keys()) == list('abcd')  # check iter order
Example #20
0
def test_values():
    m = sortedmap(a=1, b=2, c=3)
    assert m.values() == [1, 2, 3]
    assert m.values() == {1, 2, 3}
    assert m.values() == (1, 2, 3)
    assert list(m.values()) == [1, 2, 3]  # check iter order

    # check that updates are seen
    view = m.values()
    m['d'] = 4
    assert view == [1, 2, 3, 4]
    assert view == {1, 2, 3, 4}
    assert view == (1, 2, 3, 4)
    assert list(m.values()) == [1, 2, 3, 4]  # check iter order
Example #21
0
def test_keys():
    m = sortedmap(a=1, b=2, c=3)
    assert m.keys() == list('abc')
    assert m.keys() == set('abc')
    assert m.keys() == tuple('abc')
    assert list(m.keys()) == list('abc')  # check iter order

    # check that updates are seen
    view = m.keys()
    m['d'] = 4
    assert view == list('abcd')
    assert view == set('abcd')
    assert view == tuple('abcd')
    assert list(m.keys()) == list('abcd')  # check iter order
Example #22
0
def test_from_mapping():
    class M:
        def __init__(self):
            self._map = {'a': 1, 'b': 2, 'c': 3}

        def __getitem__(self, key):
            return self._map[key]

        def keys(self):
            return self._map.keys()

    assert (
        list(sortedmap(M()).items()) ==
        list(zip('abc', (1, 2, 3)))
    )
Example #23
0
def test_items():
    m = sortedmap(a=1, b=2, c=3)
    assert m.items() == [('a', 1), ('b', 2), ('c', 3)]
    assert m.items() == {('a', 1), ('b', 2), ('c', 3)}
    assert m.items() == (('a', 1), ('b', 2), ('c', 3))
    # check iter order
    assert list(m.items()) == [('a', 1), ('b', 2), ('c', 3)]

    # check that updates are seen
    view = m.items()
    m['d'] = 4
    assert view == [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
    assert view == {('a', 1), ('b', 2), ('c', 3), ('d', 4)}
    assert view == (('a', 1), ('b', 2), ('c', 3), ('d', 4))
    # check iter order
    assert list(m.items()) == [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
Example #24
0
def test_items():
    m = sortedmap(a=1, b=2, c=3)
    assert m.items() == [('a', 1), ('b', 2), ('c', 3)]
    assert m.items() == {('a', 1), ('b', 2), ('c', 3)}
    assert m.items() == (('a', 1), ('b', 2), ('c', 3))
    # check iter order
    assert list(m.items()) == [('a', 1), ('b', 2), ('c', 3)]

    # check that updates are seen
    view = m.items()
    m['d'] = 4
    assert view == [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
    assert view == {('a', 1), ('b', 2), ('c', 3), ('d', 4)}
    assert view == (('a', 1), ('b', 2), ('c', 3), ('d', 4))
    # check iter order
    assert list(m.items()) == [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
Example #25
0
def test_update_mapping(m):
    class M:
        def __init__(self):
            self._map = {'a': 4, 'b': 5, 'd': 6}

        def __getitem__(self, key):
            return self._map[key]

        def keys(self):
            return self._map.keys()

    m.update(M())
    assert m == sortedmap(
        a=4,
        b=5,
        c=3,
        d=6,
    )
Example #26
0
def test_update_mapping(m):
    class M:
        def __init__(self):
            self._map = {'a': 4, 'b': 5, 'd': 6}

        def __getitem__(self, key):
            return self._map[key]

        def keys(self):
            return self._map.keys()

    m.update(M())
    assert m == sortedmap(
        a=4,
        b=5,
        c=3,
        d=6,
    )
Example #27
0
def test_basic():
    m = sortedmap()

    m['a'] = 1
    assert 'a' in m
    assert m['a'] == 1
    assert list(m) == ['a']
    assert m.values() == [1]

    m['c'] = 3
    assert 'c' in m
    assert m['c'] == 3
    assert list(m) == ['a', 'c']
    assert m.values() == [1, 3]

    m['b'] = 2
    assert 'b' in m
    assert m['b'] == 2
    assert list(m) == ['a', 'b', 'c']
    assert m.values() == [1, 2, 3]
Example #28
0
def test_basic():
    m = sortedmap()

    m['a'] = 1
    assert 'a' in m
    assert m['a'] == 1
    assert list(m) == ['a']
    assert m.values() == [1]

    m['c'] = 3
    assert 'c' in m
    assert m['c'] == 3
    assert list(m) == ['a', 'c']
    assert m.values() == [1, 3]

    m['b'] = 2
    assert 'b' in m
    assert m['b'] == 2
    assert list(m) == ['a', 'b', 'c']
    assert m.values() == [1, 2, 3]
Example #29
0
def test_from_seq2():
    assert (
        list(sortedmap([('a', 1), ('b', 2), ('c', 3)]).items()) ==
        list(zip('abc', (1, 2, 3)))
    )
Example #30
0
def test_from_kwargs():
    assert (
        list(sortedmap(a=1, b=2, c=3).items()) ==
        list(zip('abc', (1, 2, 3)))
    )
Example #31
0
def test_from_sortedmap_different_keyfunc():
    m = sortedmap[len](abc=1, bc=2, c=3)
    n = sortedmap(m)
    assert m != n
    assert list(m.items()) == [('c', 3), ('bc', 2), ('abc', 1)]
Example #32
0
def test_fromkeys():
    keys = 'abc'
    assert sortedmap.fromkeys(keys) == sortedmap(a=None, b=None, c=None)
    ob = object()
    assert sortedmap.fromkeys(keys, ob) == sortedmap(a=ob, b=ob, c=ob)
Example #33
0
def test_from_seq2():
    assert (list(sortedmap([('a', 1), ('b', 2),
                            ('c', 3)]).items()) == list(zip('abc', (1, 2, 3))))
Example #34
0
def test_from_dict():
    assert (
        list(sortedmap({'a': 1, 'b': 2, 'c': 3}).items()) ==
        list(zip('abc', (1, 2, 3)))
    )
Example #35
0
def test_values_listlike(m):
    values = m.values()
    assert values + [4, 5, 6] == [1, 2, 3, 4, 5, 6]
    assert values * 2 == [1, 2, 3, 1, 2, 3]
    assert values  # bool
    assert not sortedmap().values()
Example #36
0
def test_values_listlike(m):
    values = m.values()
    assert values + [4, 5, 6] == [1, 2, 3, 4, 5, 6]
    assert values * 2 == [1, 2, 3, 1, 2, 3]
    assert values  # bool
    assert not sortedmap().values()
Example #37
0
def test_from_sortedmap_different_keyfunc():
    m = sortedmap[len](abc=1, bc=2, c=3)
    n = sortedmap(m)
    assert m != n
    assert list(m.items()) == [('c', 3), ('bc', 2), ('abc', 1)]
Example #38
0
def test_from_dict():
    assert (list(sortedmap({
        'a': 1,
        'b': 2,
        'c': 3
    }).items()) == list(zip('abc', (1, 2, 3))))
Example #39
0
def test_fromkeys():
    keys = 'abc'
    assert sortedmap.fromkeys(keys) == sortedmap(a=None, b=None, c=None)
    ob = object()
    assert sortedmap.fromkeys(keys, ob) == sortedmap(a=ob, b=ob, c=ob)
Example #40
0
def m():
    m = sortedmap()
    m['a'] = 1
    m['b'] = 2
    m['c'] = 3
    return m
Example #41
0
def test_from_kwargs():
    assert (list(sortedmap(a=1, b=2,
                           c=3).items()) == list(zip('abc', (1, 2, 3))))
Example #42
0
def m():
    m = sortedmap()
    m['a'] = 1
    m['b'] = 2
    m['c'] = 3
    return m
Example #43
0
def test_is_mapping():
    assert issubclass(sortedmap, MutableMapping)
    assert isinstance(sortedmap(), MutableMapping)
Example #44
0
def test_is_mapping():
    assert issubclass(sortedmap, MutableMapping)
    assert isinstance(sortedmap(), MutableMapping)