/**
  * @dataProvider validItems
  */
 public function testAddingAllAndRemovingAll($itemType, array $validItems, array $otherValidItems)
 {
     $list1 = new GenericList($itemType);
     foreach ($validItems as $item) {
         $list1->add($item);
     }
     $originalList = clone $list1;
     $list2 = new GenericList($itemType);
     foreach ($otherValidItems as $item) {
         $list2->add($item);
     }
     $list1->addAll($list2);
     $this->assertEquals(count($validItems) + count($otherValidItems), $list1->count());
     $list1->removeAll($list2);
     $this->assertEquals($originalList, $list1);
 }