static void default_ctor() { Set<int> set; ASSERT_always_require2(set.isEmpty(), "a default-constructed set is empty"); ASSERT_always_require2(set.size() == 0, "a default-constructed set has no members"); ASSERT_always_require2(set.hull().isEmpty(), "a default-constructed set is empty"); ASSERT_always_require2(!set.exists(0), "member zero has not been inserted yet"); ASSERT_always_require2(!set.exists(1), "member one has not been inserted yet"); ASSERT_always_require2(!set.exists(2), "member two has not been inserted yet"); }
/********************************************************************** * Difference (-) * finds the unique numbers in the left. ***********************************************************************/ Set Set::operator - (const Set &rSide) { int i; int test; Set final; for (i = 0; i < used; i++) { test = set[i]; if (rSide.exists(test) == false) { final.add(test); } }
static void testInsertErase() { Set<int> set; bool inserted = set.insert(0); ASSERT_always_require2(inserted, "member should have been inserted"); ASSERT_always_require2(!set.isEmpty(), "a singleton set is not empty"); ASSERT_always_require2(set.size() == 1, "a singleton set has one member"); ASSERT_always_require2(set.hull().size() == 1, "singleton set has a singleton hull"); ASSERT_always_require2(set.exists(0), "member zero has been inserted"); ASSERT_always_require2(!set.exists(1), "member one has not been inserted yet"); ASSERT_always_require2(!set.exists(2), "member two has not been inserted yet"); inserted = set.insert(0); // again ASSERT_always_require2(!inserted, "member should have already existed"); ASSERT_always_require2(!set.isEmpty(), "a singleton set is not empty"); ASSERT_always_require2(set.size() == 1, "a singleton set has one member"); ASSERT_always_require2(set.hull().size() == 1, "singleton set has a singleton hull"); ASSERT_always_require2(set.exists(0), "member zero has been inserted"); ASSERT_always_require2(!set.exists(1), "member one has not been inserted yet"); ASSERT_always_require2(!set.exists(2), "member two has not been inserted yet"); inserted = set.insert(1); ASSERT_always_require2(inserted, "member should have been inserted"); ASSERT_always_require2(!set.isEmpty(), "a two-member set is not empty"); ASSERT_always_require2(set.size() == 2, "a two-member set has two members"); ASSERT_always_require2(set.hull().size() == 2, "hull of set {0,1} is [0..1]"); ASSERT_always_require2(set.exists(0), "member zero has been inserted"); ASSERT_always_require2(set.exists(1), "member one has been inserted"); ASSERT_always_require2(!set.exists(2), "member two has not been inserted yet"); inserted = set.insert(2); ASSERT_always_require2(inserted, "member should have been inserted"); ASSERT_always_require2(!set.isEmpty(), "a three-member set is not empty"); ASSERT_always_require2(set.size() == 3, "a three-member set has three members"); ASSERT_always_require2(set.hull().size() == 3, "hull of set {0,1,2} is [0..2]"); ASSERT_always_require2(set.exists(0), "member zero has been inserted"); ASSERT_always_require2(set.exists(1), "member one has been inserted"); ASSERT_always_require2(set.exists(2), "member two has been inserted"); bool erased = set.erase(1); ASSERT_always_require2(erased, "member should have been erased"); ASSERT_always_require2(!set.isEmpty(), "a two-member set is not empty"); ASSERT_always_require2(set.size() == 2, "a two-member set has three members"); ASSERT_always_require2(set.hull().size() == 3, "hull of set {0,2} is [0..2]"); ASSERT_always_require2(set.exists(0), "member zero has been inserted"); ASSERT_always_require2(!set.exists(1), "member one has been erased"); ASSERT_always_require2(set.exists(2), "member two has been inserted"); erased = set.erase(1); // again ASSERT_always_require2(!erased, "member has already been erased"); ASSERT_always_require2(!set.isEmpty(), "a two-member set is not empty"); ASSERT_always_require2(set.size() == 2, "a two-member set has three members"); ASSERT_always_require2(set.hull().size() == 3, "hull of set {0,2} is [0..2]"); ASSERT_always_require2(set.exists(0), "member zero has been inserted"); ASSERT_always_require2(!set.exists(1), "member one has been erased"); ASSERT_always_require2(set.exists(2), "member two has been inserted"); set.clear(); ASSERT_always_require2(set.isEmpty(), "a cleared set is empty"); ASSERT_always_require2(set.size() == 0, "a cleared set has no members"); ASSERT_always_require2(set.hull().isEmpty(), "a cleared set is empty"); ASSERT_always_require2(!set.exists(0), "member zero has been cleared"); ASSERT_always_require2(!set.exists(1), "member one has been cleared"); ASSERT_always_require2(!set.exists(2), "member two has been cleared"); }