PlanSelector<Plan, Person> selector = getPlanSelector();
person.addPlan(plan6);
assertEquals("test we have all plans we want", 6, person.getPlans().size());
assertEquals("test that two plans were removed", 4, person.getPlans().size());
assertFalse("test that plan with undefined score was removed.", person.getPlans().contains(plan3));
assertFalse("test that plan with worst score was removed.", person.getPlans().contains(plan4));
assertEquals("test that two plans were removed", 2, person.getPlans().size());
assertFalse("test that the plan with worst score was removed", person.getPlans().contains(plan1));
assertTrue("test that the now only plan of type a was not removed", person.getPlans().contains(plan5));
assertFalse("test that the plan with the 2nd-worst score was removed", person.getPlans().contains(plan6));
assertEquals("test that one plan was removed", 1, person.getPlans().size());
assertTrue("test that the plan with highest score of type b was not removed", person.getPlans().contains(plan2));