def test_supprime():
    param = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}
    M = MultiSet(param)
    for element in M:
        M.ajoute(element,
                 2 + random.randrange(8))  # On ajoute de 2 à 9 éléments, donc
        # chaque élément est présent de 3 à 10 fois

    M.supprime(1, 20)
    assert 1 not in M
    assert M.multiplicity(1) == 0

    for element in param:
        avant = M.multiplicity(element)
        M.supprime(element, 3)
        apres = M.multiplicity(element)
        assert avant == 0 or apres < avant
def test_multiplicite():
    m = MultiSet()
    for i, lettre in enumerate(('a', 'b', 'c', 'd')):
        m.ajoute(lettre, i)
        assert m.multiplicity(lettre) == i

    m.ajoute('o', 18)
    assert m.multiplicity('o') == 18
    m.ajoute('o', 12)
    assert m.multiplicity('o') == 30

    assert m.multiplicity('test') == 0
    assert m.multiplicity({1: 2, 3: 4, 5: 6, 7: 8}) == 0

    m.ajoute('p', -5478)
    assert m.multiplicity('p') == 0

    m.supprime('o', 165465)
    assert m.multiplicity('o') == 0