public function visitOperation(Segments\Operation $query) { $otherValues = self::evaluateSource($query->getSource(), $this->resolvedParameters); switch ($query->getOperationType()) { case Segments\Operation::UNION: $this->traversable = $this->traversable->union($otherValues); break; case Segments\Operation::INTERSECT: $this->traversable = $this->traversable->intersect($otherValues); break; case Segments\Operation::DIFFERENCE: $this->traversable = $this->traversable->difference($otherValues); break; case Segments\Operation::APPEND: $this->traversable = $this->traversable->append($otherValues); break; case Segments\Operation::WHERE_IN: $this->traversable = $this->traversable->whereIn($otherValues); break; case Segments\Operation::EXCEPT: $this->traversable = $this->traversable->except($otherValues); break; } }
/** * @dataProvider oneToTen */ public function testThatIntersectUsesStrictEquality(\Pinq\ITraversable $traversable, array $data) { $insection = $traversable->intersect(['1', '2', '3', '4', '5']); $this->assertMatches($insection, []); }