| Performs testing of all test cases accumulated so far and print 
  information indicating a particular case is passed or failed. The user 
  can explicitly call this function as many times as like. Already tested 
  cases will not be tested again. This means that the user can do something
  like this: 
  tsuite = TestSuite( 'util' )
  ...
  tsuite << case1
  tsuite.run()    # Testing of 'case1' will be performed
  tsuite.run()    # Allowed, but meaningless since 'case1' will be tested again.
 and so this: 
  tsuite << case1
  tsuite.run()   
  tsuite << case1 
  tsuite.run()    # Allowed. The 'tsuite' takes the 2nd 'case1' as a new case and performs the testing.
 The user usually does NOT need to call this function explicitly 
  because when the 'TestSuite' object is about to be destructed, it will 
  automatically check and test any untested cases. 
   |