ForEach.m
上传用户:shenzhenrh
上传日期:2013-05-12
资源大小:2904k
文件大小:2k
源码类别:

信息检索与抽取

开发平台:

Unix_Linux

  1. /*
  2. Name:         ForEach.m
  3. Description:  Tests ForEachAction performed in Sequential order. It also
  4.               performs a test of ActionGroup.
  5. Test suite:   activity
  6. */
  7. #import <simtools.h>
  8. #import <tactivity.h>
  9. #import "Responder.h"
  10. int 
  11. main (int argc, const char ** argv)
  12. {
  13.   id actionGroupTest;
  14.   id obj;
  15.   id collection;
  16.   int i, ok;
  17.   
  18.   initSwarmBatch (argc, argv);
  19.   initModule (tactivity);
  20.   init_tables ();
  21.   
  22.   actionGroupTest = [ActionGroup_test createBegin: globalZone 
  23.       numberOfObjects: 6];
  24.   for (i = 0; i < 5; i++)
  25.     {
  26.       obj = [Responder create:globalZone];
  27.       [actionGroupTest addObject: obj];
  28.     }
  29.   collection = [List createBegin: globalZone];
  30.   collection = [collection createEnd];
  31.   for (i = 1; i <= 5; i++)
  32.     {
  33.       [collection addLast: [Responder create: globalZone withId: i]];
  34.     }
  35.   [actionGroupTest addObject: collection];
  36.   
  37.   [actionGroupTest setDefaultOrder: Sequential];
  38.   actionGroupTest = [actionGroupTest createEnd];
  39.   
  40.   
  41.   [actionGroupTest createActionTo: [actionGroupTest getObjectAt: 0]
  42.    message: M(m1)];
  43.   [actionGroupTest createActionTo: [actionGroupTest getObjectAt: 1]
  44.    message: M(m2)];
  45.   [actionGroupTest createActionTo: [actionGroupTest getObjectAt: 2]
  46.    message: M(m3)];
  47.   [actionGroupTest createActionTo: [actionGroupTest getObjectAt: 3]
  48.    message: M(m4)];
  49.   [actionGroupTest createActionTo: [actionGroupTest getObjectAt: 4]
  50.    message: M(m5)];
  51.   [actionGroupTest createActionForEach: [actionGroupTest getObjectAt: 5]
  52.    message: M(mId)];  
  53.   [[actionGroupTest activateIn: nil] run];
  54.   
  55.   ok = 1;
  56.   for (i = 0; i<5; i++) 
  57.     {
  58.       if (!messages[i]) 
  59. {
  60.   fprintf (stderr, "Error in ActionGroupRandomized  method m%d not called !n", i + 1);
  61.   return 1;
  62. }
  63.       if (!ids[i])
  64. {
  65.   fprintf (stderr, "Error in ForEachAction message not sent to member of n collection at index %d !n", i);
  66.   return 1;
  67. }
  68.       if (ids[i] != i + 1) 
  69. ok = 0;
  70.     }
  71.   
  72.   if (ok)
  73.     return 0;
  74.   else 
  75.     {
  76.       fprintf (stderr, "Error ForEachAction should not be randomized!n");
  77.       return 1;
  78.     }
  79. }