public function testUnion(array $A, array $B, array $A∪B, Set $R)
{
$setA = new Set($A);
$setB = new Set($B);
$expected = new Set($A∪B);
$union = $setA->union($setB);
$union_array = $union->asArray();
$this->assertEquals($R, $union);
$this->assertEquals($expected, $union);
$this->assertEquals(count($A∪B), count($union));
foreach ($A∪B as $member) {
$this->assertArrayHasKey("{$member}", $union_array);
}
foreach ($A∪B as $_ => $value) {
if ($value instanceof Set) {
$this->assertEquals($value, $union_array["{$value}"]);
} else {
$this->assertContains("{$value}", $union_array);
}
}
}