/** * Set test method. * * @param object ISet $s1 A set to test. * @param object ISet $s2 A set to test. * @param object ISet $s3 A set to test. */ public static function test(ISet $s1, ISet $s2, ISet $s3) { printf("AbstractSet test program.\n"); for ($i = 0; $i < 4; ++$i) { $s1->insert(box($i)); } for ($i = 2; $i < 6; ++$i) { $s2->insert(box($i)); } $s3->insert(box(0)); $s3->insert(box(2)); printf("%s\n", str($s1)); printf("%s\n", str($s2)); printf("%s\n", str($s3)); printf("%s\n", str($s1->union($s2))); # union printf("%s\n", str($s1->intersection($s3))); # intersection printf("%s\n", str($s1->difference($s3))); # difference printf("Using foreach\n"); foreach ($s3 as $obj) { printf("%s\n", str($obj)); } printf("Using reduce\n"); $s3->reduce(create_function('$sum,$obj', 'printf("%s\\n", str($obj));'), ''); }