From test, 1 Week ago, written in C++.
This paste will explode in 1 Second.
  1. #include "testMacros.h"
  2. #include "MtmSet.h"
  3. #include "exceptions.h"
  4.  
  5. using namespace mtm;
  6.  
  7. bool isEven(int n){
  8.     return !(n%2);
  9. }
  10.  
  11. bool exampleSet(){
  12.     MtmSet<int> set;
  13.     ASSERT_NO_EXCEPTION(set.insert(1));
  14.     ASSERT_NO_EXCEPTION(set.insert(2));
  15.     MtmSet<int> set2(set);
  16.     ASSERT_TRUE(set.contains(1));
  17.     ASSERT_NO_EXCEPTION(set.erase(1));
  18.     ASSERT_FALSE(set.contains(1));
  19.     ASSERT_TRUE(set.size() == 1);
  20.     ASSERT_FALSE(set.empty());
  21.     MtmSet<int>::iterator it = set.begin();
  22.     ASSERT_TRUE(*(it++) == 2);
  23.     ASSERT_TRUE(it == set.end());
  24.     ASSERT_TRUE(set.begin() == set.find(2));
  25.     ASSERT_TRUE(set2.isSuperSetOf(set));
  26.     ASSERT_TRUE(set2 != set);
  27.     ASSERT_NO_EXCEPTION(set.unite(set2));
  28.     ASSERT_TRUE(set == set2);
  29.     MtmSet<int> set3;
  30.     ASSERT_NO_EXCEPTION(set.intersect(set3));
  31.     ASSERT_TRUE(set.empty());
  32.     ASSERT_NO_EXCEPTION(set2.clear());
  33.     ASSERT_TRUE(set2.empty());
  34.     ASSERT_NO_EXCEPTION(set.insert(1));
  35.     ASSERT_NO_EXCEPTION(set.insert(2));
  36.     ASSERT_NO_EXCEPTION(set.insert(3));
  37.     ASSERT_TRUE(set.getSubSet(isEven).size() == 1);
  38.     return true;
  39. }
  40.  
  41. int main(){
  42.     RUN_TEST(exampleSet);
  43.     return 0;
  44. }
  45.