test() public static method

Generic test to verify if a type obey the functor laws.
public static test ( callable $assertEqual, callable $f, callable $g, Widmogrod\FantasyLand\Functor $x )
$assertEqual callable Asserting function (Functor $f1, Functor $f2, $message)
$f callable (a -> b)
$g callable (a -> b)
$x Widmogrod\FantasyLand\Functor f a
 /**
  * @dataProvider provideFunctorTestData
  */
 public function test_it_should_obey_functor_laws(callable $f, callable $g, Functor $x)
 {
     FunctorLaws::test(f\curryN(3, [$this, 'assertEquals']), $f, $g, $x);
 }
Example #2
0
 /**
  * @dataProvider provideFunctorTestData
  */
 public function test_it_should_obey_functor_laws(callable $f, callable $g, Functor $x, $reader)
 {
     FunctorLaws::test(function (Reader $a, Reader $b, $message) use($reader) {
         $this->assertEquals($a->runReader($reader), $b->runReader($reader), $message);
     }, $f, $g, $x);
 }
Example #3
0
 /**
  * @dataProvider provideFunctorTestData
  */
 public function test_it_should_obey_functor_laws(callable $f, callable $g, Functor $x)
 {
     FunctorLaws::test(function (Writer $a, Writer $b, $message) {
         $this->assertEquals($a->runWriter(), $b->runWriter(), $message);
     }, $f, $g, $x);
 }
Example #4
0
 /**
  * @dataProvider provideFunctorTestData
  */
 public function test_it_should_obey_functor_laws(callable $f, callable $g, Functor $x, $state)
 {
     FunctorLaws::test(function (State $a, State $b, $message) use($state) {
         $this->assertEquals($a->runState($state), $b->runState($state), $message);
     }, $f, $g, $x);
 }