## Last version: 14 June 2019

## To test each of the two implementations, comment out each of the "from"
## lines below in turn.

import check
#from multisetcontiguous import Multiset
from multisetlinked import Multiset

birds = Multiset()

birds.add("Swallow")
birds.add("Chicken nugget")
birds.add("Penguin")
birds.add("Stork")
birds.add("Chicken nugget")

## fix_nuggets(birds) replaces each instance of "Chicken nugget"
##     by "Chicken"
## Effects: Mutates birds by replacing each instance of
##     "Chicken nugget" by "Chicken"
## fix_nuggets: Multiset -> Multiset
def fix_nuggets(birds):
    while "Chicken nugget" in birds:
        birds.delete("Chicken nugget")
        birds.add("Chicken")
    return birds

new_birds = fix_nuggets(birds)

check.expect("No chicken nuggets", "Chicken nugget" in new_birds, False)
check.expect("Chicken", "Chicken" in new_birds, True)
check.expect("Penguin", "Penguin" in new_birds, True)

new_birds.delete("Chicken")
new_birds.delete("Chicken")

check.expect("Chicken removed", "Chicken" in new_birds, False)
