diff --git a/users/wpcarro/emacs/pkgs/math/default.nix b/users/wpcarro/emacs/pkgs/math/default.nix new file mode 100644 index 000000000..9167d61d4 --- /dev/null +++ b/users/wpcarro/emacs/pkgs/math/default.nix @@ -0,0 +1,30 @@ +{ pkgs, depot, ... }: + +let + math = pkgs.callPackage + ({ emacsPackages }: + emacsPackages.trivialBuild { + pname = "math"; + version = "1.0.0"; + src = ./math.el; + packageRequires = + (with emacsPackages; [ + dash + ]) ++ + (with depot.users.wpcarro.emacs.pkgs; [ + maybe + ]); + }) + { }; + + emacs = (pkgs.emacsPackagesFor pkgs.emacs28).emacsWithPackages (epkgs: [ + math + ]); +in +math.overrideAttrs (_old: { + doCheck = true; + checkPhase = '' + ${emacs}/bin/emacs -batch \ + -l ert -l ${./tests.el} -f ert-run-tests-batch-and-exit + ''; +}) diff --git a/users/wpcarro/emacs/.emacs.d/wpc/math.el b/users/wpcarro/emacs/pkgs/math/math.el similarity index 100% rename from users/wpcarro/emacs/.emacs.d/wpc/math.el rename to users/wpcarro/emacs/pkgs/math/math.el diff --git a/users/wpcarro/emacs/pkgs/math/tests.el b/users/wpcarro/emacs/pkgs/math/tests.el new file mode 100644 index 000000000..ef3430c91 --- /dev/null +++ b/users/wpcarro/emacs/pkgs/math/tests.el @@ -0,0 +1,25 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dependencies +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(require 'ert) +(require 'math) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Tests +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(ert-deftest math-mod () + (should (= 0 (math-mod 9 3))) + (should (= 4 (math-mod 9 5)))) + +(ert-deftest math-exp () + (should (= 9 (math-exp 3 2))) + (should (= 8 (math-exp 2 3)))) + +(ert-deftest math-round () + (should (= 10 (math-round 9.5))) + (should (= 9 (math-round 9.45)))) + +(ert-deftest math-floor () + (should (= 9 (math-floor 9.5))))