text: #include <iostream>
  #include <fstream>
  #include <sstream>
  #include "Stress_ball.h"
  #include "Collection.h"
  
  using CollectionSB = Collection<Stress_ball, Stress_ball_colors, Stress_ball_sizes>;
  
  istream& operator>>(istream& is, CollectionSB& c) {
  
      string jcols;
  
      string jsize;
  
      Stress_ball_colors sbC;
      
      Stress_ball_sizes sbS;
      
      while (is>>jcols>>jsize) {
  
          if (jcols == "red")
              sbC = Stress_ball_colors::red;
          if (jcols == "blue")
              sbC = Stress_ball_colors::blue;
          if (jcols == "green")
              sbC = Stress_ball_colors::green;
          if (jcols == "yellow")
              sbC = Stress_ball_colors::yellow;
          if (jsize == "small") 
              sbS = Stress_ball_sizes::small;
          if (jsize == "medium") 
              sbS = Stress_ball_sizes::medium;
          if (jsize == "large") 
              sbS = Stress_ball_sizes::large;
  
          Stress_ball * sb1 = new Stress_ball(sbC, sbS);
          c.insert_item(*sb1);
      }
      return is;
  }
  
  void test_stress_balls(){
          Stress_ball stress_ball_1 = Stress_ball(Stress_ball_colors::blue, Stress_ball_sizes::large);
          Stress_ball stress_ball_2 = Stress_ball(Stress_ball_colors::yellow, Stress_ball_sizes::large);
          Stress_ball stress_ball_3 = Stress_ball(Stress_ball_colors::green, Stress_ball_sizes::small);
          Stress_ball stress_ball_4 = Stress_ball(Stress_ball_colors::red, Stress_ball_sizes::medium);
          CollectionSB collection_1;
          CollectionSB collection_2(3);
          CollectionSB collection_3(5);
          CollectionSB collection_file(1);
          collection_2.insert_item(stress_ball_2);
          collection_2.insert_item(stress_ball_4);
          collection_1.insert_item(stress_ball_1);
          collection_2.insert_item(stress_ball_2);
          collection_2.insert_item(Stress_ball(Stress_ball_colors::blue, Stress_ball_sizes::small));
          collection_2.insert_item(stress_ball_3);
          collection_2.insert_item(stress_ball_3);
          CollectionSB collection_4 = collection_1;
          CollectionSB collection_5(move(collection_4));
          collection_1.insert_item(Stress_ball(Stress_ball_colors::green, Stress_ball_sizes::small));
          collection_2.insert_item(Stress_ball(Stress_ball_colors::blue, Stress_ball_sizes::medium));
          collection_2.insert_item(Stress_ball(Stress_ball_colors::red, Stress_ball_sizes::large));
          collection_2.insert_item(Stress_ball(Stress_ball_colors::red, Stress_ball_sizes::large));
          collection_2.remove_this_item(stress_ball_2);        
          collection_2.print_items();
          ifstream ifs("stress_ball1.data");
          ifs >> collection_file;
          collection_file.insert_item(stress_ball_3);
          collection_file.insert_item(stress_ball_3);
          collection_2.insert_item(stress_ball_3);
          collection_2.insert_item(stress_ball_3);
          collection_2.insert_item(stress_ball_2);
          collection_2.insert_item(stress_ball_1);
          
          collection_file.print_items();
          collection_3 = make_union(collection_file,collection_2);
          if(collection_3.total_items() == (collection_file.total_items() + collection_2.total_items())){ 
                            sort_by_size(collection_2,Sort_choice::insertion_sort);                           
                            cout<<collection_3;
          }
  }
  