public function testThatKeysCanBeKeptInArray()
 {
     $items = [["a" => "b", "c" => "d"], ["a" => "c", "c" => "e", "d" => "e"], null];
     //Default action (delete)
     $kept_keys = CollectionUtility::keepKeys($items, ["a", "c"]);
     $this->assertEquals([["a" => "b", "c" => "d"], ["a" => "c", "c" => "e"], []], $kept_keys);
     //Explicit action (delete)
     $kept_keys = CollectionUtility::keepKeys($items, ["a", "c"], CollectionUtility::REMOVAL_ACTION_DELETE);
     $this->assertEquals([["a" => "b", "c" => "d"], ["a" => "c", "c" => "e"], []], $kept_keys);
     //Nullify action
     $kept_keys = CollectionUtility::keepKeys($items, ["a", "c"], CollectionUtility::REMOVAL_ACTION_NULLIFY);
     $this->assertEquals([["a" => "b", "c" => "d"], ["a" => "c", "c" => "e", "d" => null], []], $kept_keys);
     //Invalid actions
     try {
         CollectionUtility::keepKeys($items, ["a", "c"], "invalid");
         $this->fail("Expected invalid argument exception");
     } catch (\InvalidArgumentException $e) {
     }
 }
 public function testThatKeysCanBeKeptInMultiDimArray()
 {
     $items = [["a" => "b", "c" => "d"], ["a" => "c", "c" => "e", "d" => "e"], null];
     $kept_keys = CollectionUtility::keepKeys($items, ["a", "c"]);
     $this->assertEquals([["a" => "b", "c" => "d"], ["a" => "c", "c" => "e"], []], $kept_keys);
 }