/** * @test */ public function ifelse() { $ls = ['name' => 'James Tiberius Kirk']; $upper = F\compose('strtoupper', F\prop('name')); $expected = F\ifelse(F\has('name'), $upper, F\always(false)); $this->assertEquals($expected($ls), 'JAMES TIBERIUS KIRK'); $expected = F\ifelse(F\has('lastname'), $upper, F\always(false)); $this->assertFalse($expected($ls)); }
/** * @test */ public function compose() { $f1 = F\compose(function ($x) { return "foo({$x})"; }, function ($x) { return "bar({$x})"; }, function ($x) { return "baz({$x})"; }); $this->assertSame($f1('x'), 'foo(bar(baz(x)))'); $f2 = F\compose('cos', 'deg2rad'); $this->assertEquals($f2(360), cos(deg2rad(360))); }