䷑ Repair

Successful progress is indicated for those who properly repair what has been spoiled.
This commit is contained in:
nik gaffney 2021-01-11 13:08:32 +01:00
parent c6836aee32
commit 85b6a2f2b9
2 changed files with 80 additions and 21 deletions

View file

@ -525,7 +525,8 @@ c.f. The Superior man (Legge, Wilhem), Noble young one (Hatcher), 't
"The name of Hexagram NUMBER based on it's unicode name." "The name of Hexagram NUMBER based on it's unicode name."
(let* ((hexagrams i-ching-hexagram-summary) (let* ((hexagrams i-ching-hexagram-summary)
(unicode-name (nth 4 (alist-get number hexagrams)))) (unicode-name (nth 4 (alist-get number hexagrams))))
(capitalize (seq-drop unicode-name 13)))) (when unicode-name
(capitalize (seq-drop unicode-name 13)))))
(defun i-ching-describe-hexagram (point mark) (defun i-ching-describe-hexagram (point mark)
"Show the name of a HEXAGRAM (between POINT and MARK) based on it's unicode name." "Show the name of a HEXAGRAM (between POINT and MARK) based on it's unicode name."

View file

@ -4,41 +4,99 @@
(require 'i-ching) (require 'i-ching)
(ert-deftest qrnd () (ert-deftest i-ching-qrnd ()
(should (numberp (i-ching-q64))) (should (numberp (i-ching-q64)))
(should (< 0 (i-ching-q64))) (should (< 0 (i-ching-q64)))
(should (>= 64 (i-ching-q64)))) (should (>= 64 (i-ching-q64))))
(ert-deftest rrnd () (ert-deftest i-ching-rrnd ()
(should (numberp (i-ching-r64))) (should (numberp (i-ching-r64)))
(should (< 0 (i-ching-r64))) (should (< 0 (i-ching-r64)))
(should (>= 64 (i-ching-r64)))) (should (>= 64 (i-ching-r64))))
(ert-deftest i-ching-random ()
(should (numberp (i-ching-random 'quantum)))
(should (numberp (i-ching-random 'atmospheric)))
(should (numberp (i-ching-random 'pseudo))))
(ert-deftest i-ching-n2h () (ert-deftest i-ching-n2h ()
(should (string= "" (i-ching-number-to-hexagram 2))) (should (string= "" (i-ching-number-to-hexagram 2)))
(should (string= "" (i-ching-number-to-hexagram 42))) (should (string= "" (i-ching-number-to-hexagram 42)))
(should (string= nil (i-ching-number-to-hexagram 65)))) (should (string= nil (i-ching-number-to-hexagram 65))))
(ert-deftest i-ching-h2n () (ert-deftest i-ching-h2n ()
(should (eql 2 (i-ching-hexagram-to-number ""))) (should (eql 2 (i-ching-hexagram-to-number "")))
(should (eql 40 (i-ching-hexagram-to-number ""))) (should (eql 40 (i-ching-hexagram-to-number "")))
(should (eql nil (i-ching-hexagram-to-number "NOT")))) (should-not (i-ching-hexagram-to-number "NOT")))
(ert-deftest i-ching-b2h () (ert-deftest i-ching-b2h ()
(string= "" (i-ching-binary-to-hexagram #b010100))) (string= "" (i-ching-binary-to-hexagram #b010100)))
(ert-deftest i-ching-name ()
(string= "HEXAGRAM FOR BEFORE COMPLETION" (i-ching-number-to-unicode-name 64))) (ert-deftest i-ching-names ()
(should-not (i-ching-number-to-name 65))
(should (string= "HEXAGRAM FOR BEFORE COMPLETION"
(i-ching-number-to-unicode-name 64)))
(should (string= "Before Completion"
(i-ching-number-to-name 64))))
(ert-deftest i-ching-descriptions ()
(should (stringp (i-ching-number-to-description 43)))
(should (stringp (i-ching-number-to-judgment 27)))
(should (stringp (i-ching-number-to-image 13)))
(should-not (stringp (i-ching-number-to-description 65)))
(should-not (stringp (i-ching-number-to-judgment 65)))
(should-not (stringp (i-ching-number-to-image 65))))
(ert-deftest i-ching-all-descriptions ()
(dotimes (i 63)
(should-not (seq-empty-p (i-ching-number-to-unicode-name (1+ i))))
(should-not (seq-empty-p (i-ching-number-to-description (1+ i))))
(should-not (seq-empty-p (i-ching-number-to-judgment (1+ i))))
(should-not (seq-empty-p (i-ching-number-to-image (1+ i))))
(should-not (seq-empty-p (i-ching-number-to-name (1+ i))))
(should (stringp (i-ching-number-to-unicode-name (1+ i))))
(should (stringp (i-ching-number-to-description (1+ i))))
(should (stringp (i-ching-number-to-judgment (1+ i))))
(should (stringp (i-ching-number-to-image (1+ i))))
(should (stringp (i-ching-number-to-name (1+ i))))))
(ert-deftest i-ching-interprets ()
(should (stringp (i-ching-interpretation 49)))
(should-not (seq-empty-p (i-ching-interpretation 49))))
(ert-deftest i-ching-queries ()
(should (stringp (i-ching-query-string)))
(should (stringp (i-ching-query-string '3-coins))))
(ert-deftest i-ching-castings () (ert-deftest i-ching-castings ()
(should (stringp (i-ching-cast 'yarrow-stalks))) (should (stringp (i-ching-cast 'yarrow-stalks)))
(should (stringp (i-ching-cast '3-coins))) (should (stringp (i-ching-cast '3-coins)))
(should (stringp (i-ching-cast)))) (should (stringp (i-ching-cast))))
;; (i-ching-query '6-bit) ;; (i-ching-query '6-bit)
;; (i-ching-query '3-coins) ;; (i-ching-query '3-coins)
;; (i-ching-query 'yarrow-stalks) ;; (i-ching-query 'yarrow-stalks)
;; interactive testing
(ert-deftest i-ching-query-6bit ()
(should (with-simulated-input
"testing SPC circumstances RET"
(i-ching-query '6-bit))))
(ert-deftest i-ching-query-3coin ()
(should (with-simulated-input
"testing SPC circumstances RET"
(i-ching-query '3-coins))))
(ert-deftest i-ching-query-yarrow ()
(should (with-simulated-input
"testing SPC circumstances RET"
(i-ching-query 'yarrow-stalks))))
;; run them...
(ert t) (ert t)
;;; tests.el ends here ;;; tests.el ends here