MathPHP\SetTheory\Set::symmetricDifference PHP Méthode

symmetricDifference() public méthode

Example: {7, 8, 9, 10} Δ {9, 10, 11, 12} = {7, 8, 11, 12}
public symmetricDifference ( Set $B ) : Set
$B Set
Résultat Set
    public function symmetricDifference(Set $B)
    {
        $B_array = $B->asArray();
        $A∪B = array_intersect_key($this->A, $B_array);
        $A∖B = array_diff_key($this->A, $A∪B);
        $B∖A = array_diff_key($B_array, $A∪B);
        return new Set($A∖B + $B∖A);
    }

Usage Example

 public function testSymmetricDifferenceWithObjects()
 {
     $vector1 = new Vector([1, 2, 3]);
     $vector2 = new Vector([1, 2, 3]);
     $A = new Set([1, 2, $vector1]);
     $B = new Set([2, 3, $vector2]);
     $AΔB = $A->symmetricDifference($B);
     $expected = new Set([1, 3, $vector1, $vector2]);
     $this->assertEquals($expected, $AΔB);
     $this->assertEquals($expected->asArray(), $AΔB->asArray());
     $A = new Set([1, 2, $vector1]);
     $B = new Set([2, 3, $vector2, $vector1]);
     $AΔB = $A->symmetricDifference($B);
     $expected = new Set([1, 3, $vector2]);
     $this->assertEquals($expected, $AΔB);
     $this->assertEquals($expected->asArray(), $AΔB->asArray());
 }