diff options
Diffstat (limited to 'users/sterni/nix/num')
-rw-r--r-- | users/sterni/nix/num/default.nix | 16 | ||||
-rw-r--r-- | users/sterni/nix/num/tests/default.nix | 26 |
2 files changed, 42 insertions, 0 deletions
diff --git a/users/sterni/nix/num/default.nix b/users/sterni/nix/num/default.nix new file mode 100644 index 000000000000..640493083722 --- /dev/null +++ b/users/sterni/nix/num/default.nix @@ -0,0 +1,16 @@ +{ ... }: + +rec { + inherit (builtins) + mul + div + add + sub + ; + + abs = i: if i < 0 then -i else i; + + inRange = a: b: x: x >= a && x <= b; + + sum = builtins.foldl' (a: b: a + b) 0; +} diff --git a/users/sterni/nix/num/tests/default.nix b/users/sterni/nix/num/tests/default.nix new file mode 100644 index 000000000000..ca5f861debe8 --- /dev/null +++ b/users/sterni/nix/num/tests/default.nix @@ -0,0 +1,26 @@ +{ depot, ... }: + +let + + inherit (depot.nix.runTestsuite) + runTestsuite + it + assertEq + ; + + inherit (depot.users.sterni.nix) + num + ; + + testsBasic = it "tests basic operations" [ + (assertEq "abs -4959" (num.abs (-4959)) 4959) + (assertEq "sum" (num.sum [ 123 321 1.5 ]) (123 + 321 + 1.5)) + (assertEq "inRange" + (builtins.map (num.inRange 1.0 5) [ 0 0.5 3 4 4.5 5.5 5 6 ]) + [ false false true true true false true false ]) + ]; +in + +runTestsuite "nix.num" [ + testsBasic +] |