function testNested()
 {
     $loader = $this->getFileLoader();
     $data = ["User" => ["id" => "malformed value", "name" => "user name", "password" => "user password", "password_confirm" => "user password"]];
     $expected_values = ["User" => ["name" => "user name", "password" => "user password", "password_confirm" => "user password"]];
     $v = new Validator($data);
     $v->isArray("User")->each(function ($v2) use($loader) {
         $loader->load($v2, "user");
     });
     $this->assertTrue($v->success());
     $cleanuped_value = $v->cleanup();
     $this->assertEquals($expected_values, $cleanuped_value);
 }
 function testCheckedValue()
 {
     $values = ["User" => ["id" => "this is malformed value", "name" => "User Name", "password" => "password_test", "password_confirm" => "password_test"]];
     $expected_values = ["User" => ["name" => "User Name", "password" => "password_test", "password_confirm" => "password_test"]];
     $v = new Validator($values);
     $v->isArray("User")->each(function (Validator $v2) {
         $v2->required("name");
         $v2->required("password");
         $v2->required("password_confirm")->matches("password");
     });
     $cleanuped_value = $v->cleanup();
     $this->assertEquals($expected_values, $cleanuped_value);
 }