File tree Expand file tree Collapse file tree 3 files changed +45
-0
lines changed
src/Fp/Functions/Evidence
tests/Runtime/Functions/Evidence Expand file tree Collapse file tree 3 files changed +45
-0
lines changed Original file line number Diff line number Diff line change 8686 " src/Fp/Functions/Collection/Tail.php" ,
8787 " src/Fp/Functions/Collection/Zip.php" ,
8888 " src/Fp/Functions/Collection/MkString.php" ,
89+ " src/Fp/Functions/Evidence/ProveNull.php" ,
8990 " src/Fp/Functions/Evidence/ProveArray.php" ,
9091 " src/Fp/Functions/Evidence/ProveBool.php" ,
9192 " src/Fp/Functions/Evidence/ProveFloat.php" ,
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Fp \Evidence ;
6+
7+ use Fp \Functional \Option \Option ;
8+
9+ /**
10+ * Prove that subject is null.
11+ *
12+ * ```php
13+ * >>> proveNull(null);
14+ * => Some(null)
15+ *
16+ * >>> proveNull(1);
17+ * => None
18+ * ```
19+ *
20+ * @return Option<null>
21+ */
22+ function proveNull (mixed $ potential ): Option
23+ {
24+ return null === $ potential ? Option::some ($ potential ) : Option::none ();
25+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Tests \Runtime \Functions \Evidence ;
6+
7+ use Fp \Functional \Option \Option ;
8+ use PHPUnit \Framework \TestCase ;
9+
10+ use function Fp \Evidence \proveNull ;
11+
12+ final class ProveNullTest extends TestCase
13+ {
14+ public function testProveNull (): void
15+ {
16+ $ this ->assertEquals (Option::none (), proveNull (1 ));
17+ $ this ->assertEquals (Option::some (null ), proveNull (null ));
18+ }
19+ }
You can’t perform that action at this time.
0 commit comments