child_3 = Observer() print("Children Added") assert(parent.state == "ready") parent.add_observer(child_1) parent.add_observer(child_2) parent.add_observer(child_3) parent.notify_observers() assert(parent.state == "ready") assert(child_1.parent_state == "ready") assert(child_2.parent_state == "ready") assert(child_3.parent_state == "ready") parent.remove_observer(child_2) #change the state, this should automatically notify observers parent.set_state("running") print("Parent State Changed") assert(parent.state == "running") assert(child_1.parent_state == "running") assert(child_2.parent_state == "ready") assert(child_3.parent_state == "running") print("Tests Passed")