branch: externals/denote-sequence commit 5bf08e8e5477ede71d27d0421a114e4305b035a3 Author: Protesilaos Stavrou <i...@protesilaos.com> Commit: Protesilaos Stavrou <i...@protesilaos.com>
Streamline all the tests --- tests/denote-sequence-test.el | 221 +++++++++++++++++++++--------------------- 1 file changed, 108 insertions(+), 113 deletions(-) diff --git a/tests/denote-sequence-test.el b/tests/denote-sequence-test.el index e337218bd4..35a3879b34 100644 --- a/tests/denote-sequence-test.el +++ b/tests/denote-sequence-test.el @@ -34,6 +34,15 @@ (require 'ert) (require 'denote-sequence) +(defun dst-relative-p (sequence type &rest files) + "Return non-nil if FILES are relatives of SEQUENCE given TYPE." + (when-let* ((relatives (denote-sequence-get-relative sequence type files)) + (found (seq-filter + (lambda (file) + (member file relatives)) + (mapcar (lambda (file) (expand-file-name file denote-directory)) files)))) + (>= (length files) (length found)))) + (ert-deftest dst-denote-sequence--get-new-exhaustive () "Test if we get the correct parent, child, sibling, or relatives of a sequence. Use the function `denote-sequence-get-new' for child and sibling with @@ -68,21 +77,21 @@ function `denote-sequence-get-relative'." (sequences (denote-sequence-get-all-sequences files))) (should (string= (denote-sequence-get-new 'parent) "11")) - (should (and (string= (denote-sequence-get-new 'child "1" sequences) "1=3") - (string= (denote-sequence-get-new 'child "1=1" sequences) "1=1=3") - (string= (denote-sequence-get-new 'child "1=1=2" sequences) "1=1=2=1") - (string= (denote-sequence-get-new 'child "1=2" sequences) "1=2=2") - (string= (denote-sequence-get-new 'child "1=2=1" sequences) "1=2=1=2") - (string= (denote-sequence-get-new 'child "2" sequences) "2=1"))) + (should (string= (denote-sequence-get-new 'child "1" sequences) "1=3")) + (should (string= (denote-sequence-get-new 'child "1=1" sequences) "1=1=3")) + (should (string= (denote-sequence-get-new 'child "1=1=2" sequences) "1=1=2=1")) + (should (string= (denote-sequence-get-new 'child "1=2" sequences) "1=2=2")) + (should (string= (denote-sequence-get-new 'child "1=2=1" sequences) "1=2=1=2")) + (should (string= (denote-sequence-get-new 'child "2" sequences) "2=1")) (should-error (denote-sequence-get-new 'child "11" sequences)) - (should (and (string= (denote-sequence-get-new 'sibling "1" sequences) "11") - (string= (denote-sequence-get-new 'sibling "1=1" sequences) "1=3") - (string= (denote-sequence-get-new 'sibling "1=1=1" sequences) "1=1=3") - (string= (denote-sequence-get-new 'sibling "1=1=2" sequences) "1=1=3") - (string= (denote-sequence-get-new 'sibling "1=2" sequences) "1=3") - (string= (denote-sequence-get-new 'sibling "1=2=1" sequences) "1=2=2") - (string= (denote-sequence-get-new 'sibling "2" sequences) "11"))) + (should (string= (denote-sequence-get-new 'sibling "1" sequences) "11")) + (should (string= (denote-sequence-get-new 'sibling "1=1" sequences) "1=3")) + (should (string= (denote-sequence-get-new 'sibling "1=1=1" sequences) "1=1=3")) + (should (string= (denote-sequence-get-new 'sibling "1=1=2" sequences) "1=1=3")) + (should (string= (denote-sequence-get-new 'sibling "1=2" sequences) "1=3")) + (should (string= (denote-sequence-get-new 'sibling "1=2=1" sequences) "1=2=2")) + (should (string= (denote-sequence-get-new 'sibling "2" sequences) "11")) (should-error (denote-sequence-get-new 'sibling "12" sequences)) (should (string= (denote-sequence-get-relative "1=2=1=1" 'parent files) @@ -91,41 +100,33 @@ function `denote-sequence-get-relative'." (expand-file-name "20241230T075023==10=1--test__testing.txt" denote-directory))) (should (string= (denote-sequence-get-relative "10=10=1" 'parent files) (expand-file-name "20241230T075023==10=10--test__testing.txt" denote-directory))) - (should (equal (denote-sequence-get-relative "1=2=1=1" 'all-parents files) - (list - (expand-file-name "20241230T075023==1--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1=2--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1=2=1--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "10=1=1" 'all-parents files) - (list - (expand-file-name "20241230T075023==10--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==10=1--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "10=10=1" 'all-parents files) - (list - (expand-file-name "20241230T075023==10--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==10=10--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "1=1" 'siblings files) - (list - (expand-file-name "20241230T075023==1=1--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1=2--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "10=1" 'siblings files) - (list - (expand-file-name "20241230T075023==10=1--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==10=2--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==10=10--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "1" 'children files) - (list - (expand-file-name "20241230T075023==1=1--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1=2--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "10" 'children files) - (list - (expand-file-name "20241230T075023==10=1--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==10=2--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==10=10--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "1=1" 'all-children files) - (list - (expand-file-name "20241230T075023==1=1=1--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1=1=2--test__testing.txt" denote-directory))))) + (should (dst-relative-p "1=2=1=1" 'all-parents + "20241230T075023==1--test__testing.txt" + "20241230T075023==1=2--test__testing.txt" + "20241230T075023==1=2=1--test__testing.txt")) + (should (dst-relative-p "10=1=1" 'all-parents + "20241230T075023==10--test__testing.txt" + "20241230T075023==10=1--test__testing.txt")) + (should (dst-relative-p "10=10=1" 'all-parents + "20241230T075023==10--test__testing.txt" + "20241230T075023==10=10--test__testing.txt")) + (should (dst-relative-p "1=1" 'siblings + "20241230T075023==1=1--test__testing.txt" + "20241230T075023==1=2--test__testing.txt")) + (should (dst-relative-p "10=1" 'siblings + "20241230T075023==10=1--test__testing.txt" + "20241230T075023==10=10--test__testing.txt" + "20241230T075023==10=2--test__testing.txt")) + (should (dst-relative-p "1" 'children + "20241230T075023==1=1--test__testing.txt" + "20241230T075023==1=2--test__testing.txt")) + (should (dst-relative-p "10" 'children + "20241230T075023==10=1--test__testing.txt" + "20241230T075023==10=2--test__testing.txt" + "20241230T075023==10=10--test__testing.txt")) + (should (dst-relative-p "1=1" 'all-children + "20241230T075023==1=1=1--test__testing.txt" + "20241230T075023==1=1=2--test__testing.txt"))) (let* ((denote-sequence-scheme 'alphanumeric) (denote-directory (expand-file-name "denote-test" temporary-file-directory)) @@ -153,90 +154,84 @@ function `denote-sequence-get-relative'." (sequences (denote-sequence-get-all-sequences files))) (should (string= (denote-sequence-get-new 'parent) "11")) - (should (and (string= (denote-sequence-get-new 'child "1" sequences) "1c") - (string= (denote-sequence-get-new 'child "1a" sequences) "1a3") - (string= (denote-sequence-get-new 'child "1a2" sequences) "1a2a") - (string= (denote-sequence-get-new 'child "1b" sequences) "1b2") - (string= (denote-sequence-get-new 'child "1b1" sequences) "1b1b") - (string= (denote-sequence-get-new 'child "2" sequences) "2a"))) + (should (string= (denote-sequence-get-new 'child "1" sequences) "1c")) + (should (string= (denote-sequence-get-new 'child "1a" sequences) "1a3")) + (should (string= (denote-sequence-get-new 'child "1a2" sequences) "1a2a")) + (should (string= (denote-sequence-get-new 'child "1b" sequences) "1b2")) + (should (string= (denote-sequence-get-new 'child "1b1" sequences) "1b1b")) + (should (string= (denote-sequence-get-new 'child "2" sequences) "2a")) (should-error (denote-sequence-get-new 'child "11" sequences)) - (should (and (string= (denote-sequence-get-new 'sibling "1" sequences) "11") - (string= (denote-sequence-get-new 'sibling "1a" sequences) "1c") - (string= (denote-sequence-get-new 'sibling "1a1" sequences) "1a3") - (string= (denote-sequence-get-new 'sibling "1a2" sequences) "1a3") - (string= (denote-sequence-get-new 'sibling "1b" sequences) "1c") - (string= (denote-sequence-get-new 'sibling "1b1" sequences) "1b2") - (string= (denote-sequence-get-new 'sibling "2" sequences) "11"))) + (should (string= (denote-sequence-get-new 'sibling "1" sequences) "11")) + (should (string= (denote-sequence-get-new 'sibling "1a" sequences) "1c")) + (should (string= (denote-sequence-get-new 'sibling "1a1" sequences) "1a3")) + (should (string= (denote-sequence-get-new 'sibling "1a2" sequences) "1a3")) + (should (string= (denote-sequence-get-new 'sibling "1b" sequences) "1c")) + (should (string= (denote-sequence-get-new 'sibling "1b1" sequences) "1b2")) + (should (string= (denote-sequence-get-new 'sibling "2" sequences) "11")) (should-error (denote-sequence-get-new 'sibling "12" sequences)) (should (string= (denote-sequence-get-relative "1b1a" 'parent files) (expand-file-name "20241230T075023==1b1--test__testing.txt" denote-directory))) (should (string= (denote-sequence-get-relative "10a" 'parent files) (expand-file-name "20241230T075023==10--test__testing.txt" denote-directory))) - (should (equal (denote-sequence-get-relative "1b1a" 'all-parents files) - (list - (expand-file-name "20241230T075023==1--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1b--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1b1--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "1a" 'siblings files) - (list - (expand-file-name "20241230T075023==1a--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1b--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "10a" 'siblings files) - (list - (expand-file-name "20241230T075023==10a--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==10b--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "1" 'children files) - (list - (expand-file-name "20241230T075023==1a--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1b--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "10" 'children files) - (list - (expand-file-name "20241230T075023==10a--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==10b--test__testing.txt" denote-directory)))) - (should (equal (denote-sequence-get-relative "1a" 'all-children files) - (list - (expand-file-name "20241230T075023==1a1--test__testing.txt" denote-directory) - (expand-file-name "20241230T075023==1a2--test__testing.txt" denote-directory)))))) + (should (dst-relative-p "1b1a" 'all-parents + "20241230T075023==1--test__testing.txt" + "20241230T075023==1b--test__testing.txt" + "20241230T075023==1b1--test__testing.txt")) + (should (dst-relative-p "1a" 'siblings + "20241230T075023==1a--test__testing.txt" + "20241230T075023==1b--test__testing.txt")) + (should (dst-relative-p "10a" 'siblings + "20241230T075023==10a--test__testing.txt" + "20241230T075023==10b--test__testing.txt")) + (should (dst-relative-p "1" 'children + "20241230T075023==1a--test__testing.txt" + "20241230T075023==1b--test__testing.txt")) + (should (dst-relative-p "10" 'children + "20241230T075023==10a--test__testing.txt" + "20241230T075023==10b--test__testing.txt")) + (should (dst-relative-p "1a" 'all-children + "20241230T075023==1a1--test__testing.txt" + "20241230T075023==1a2--test__testing.txt")))) (ert-deftest dst-denote-sequence-split () "Test that `denote-sequence-split' splits a sequence correctly." - (should (and (equal (denote-sequence-split "1") '("1")) - (equal (denote-sequence-split "1=1=2") '("1" "1" "2")) - (equal (denote-sequence-split "1za5zx") '("1" "za" "5" "zx"))))) + (should (equal (denote-sequence-split "1") '("1"))) + (should (equal (denote-sequence-split "1=1=2") '("1" "1" "2"))) + (should (equal (denote-sequence-split "1za5zx") '("1" "za" "5" "zx")))) (ert-deftest dst-denote-sequence-make-conversion () "Test that `denote-sequence-make-conversion' converts from alpha to numeric and vice versa." - (should (and (string= (denote-sequence-make-conversion "3") "c") - (string= (denote-sequence-make-conversion "18") "r") - (string= (denote-sequence-make-conversion "26") "z") - (string= (denote-sequence-make-conversion "27") "za") - (string= (denote-sequence-make-conversion "130") "zzzzz") - (string= (denote-sequence-make-conversion "131") "zzzzza") - (string= (denote-sequence-make-conversion "c") "3") - (string= (denote-sequence-make-conversion "r") "18") - (string= (denote-sequence-make-conversion "z") "26") - (string= (denote-sequence-make-conversion "za") "27") - (string= (denote-sequence-make-conversion "zzzzz") "130") - (string= (denote-sequence-make-conversion "zzzzza") "131"))) - (should (and (string= (denote-sequence-make-conversion "1=1=2" :string-is-sequence) "1a2") - (string= (denote-sequence-make-conversion "1a2" :string-is-sequence) "1=1=2") - (string= (denote-sequence-make-conversion "1=27=2=55" :string-is-sequence) "1za2zzc") - (string= (denote-sequence-make-conversion "1za2zzc" :string-is-sequence) "1=27=2=55") - (string= (denote-sequence-make-conversion "1=1=2=2=4=1" :string-is-sequence) "1a2b4a") - (string= (denote-sequence-make-conversion "1a2b4a" :string-is-sequence) "1=1=2=2=4=1"))) + (should (string= (denote-sequence-make-conversion "3") "c")) + (should (string= (denote-sequence-make-conversion "18") "r")) + (should (string= (denote-sequence-make-conversion "26") "z")) + (should (string= (denote-sequence-make-conversion "27") "za")) + (should (string= (denote-sequence-make-conversion "130") "zzzzz")) + (should (string= (denote-sequence-make-conversion "131") "zzzzza")) + (should (string= (denote-sequence-make-conversion "c") "3")) + (should (string= (denote-sequence-make-conversion "r") "18")) + (should (string= (denote-sequence-make-conversion "z") "26")) + (should (string= (denote-sequence-make-conversion "za") "27")) + (should (string= (denote-sequence-make-conversion "zzzzz") "130")) + (should (string= (denote-sequence-make-conversion "zzzzza") "131")) + (should (string= (denote-sequence-make-conversion "1=1=2" :string-is-sequence) "1a2")) + (should (string= (denote-sequence-make-conversion "1a2" :string-is-sequence) "1=1=2")) + (should (string= (denote-sequence-make-conversion "1=27=2=55" :string-is-sequence) "1za2zzc")) + (should (string= (denote-sequence-make-conversion "1za2zzc" :string-is-sequence) "1=27=2=55")) + (should (string= (denote-sequence-make-conversion "1=1=2=2=4=1" :string-is-sequence) "1a2b4a")) + (should (string= (denote-sequence-make-conversion "1a2b4a" :string-is-sequence) "1=1=2=2=4=1")) (should-error (denote-sequence-make-conversion "111=a" :string-is-sequence)) (should-error (denote-sequence-make-conversion "a1" :string-is-sequence))) (ert-deftest dst-denote-sequence-increment () "Test that `denote-sequence-increment' works with numbers and letters." - (should (and (string= (denote-sequence-increment "z") "za") - (string= (denote-sequence-increment "ab") "ac") - (string= (denote-sequence-increment "az") "aza") - (string= (denote-sequence-increment "bbcz") "bbcza"))) - (should (and (string= (denote-sequence-increment "1") "2") - (string= (denote-sequence-increment "10") "11"))) + (should (string= (denote-sequence-increment "z") "za")) + (should (string= (denote-sequence-increment "ab") "ac")) + (should (string= (denote-sequence-increment "az") "aza")) + (should (string= (denote-sequence-increment "bbcz") "bbcza")) + (should (string= (denote-sequence-increment "1") "2")) + (should (string= (denote-sequence-increment "10") "11")) (should-error (denote-sequence-increment "1=a"))) (provide 'denote-test)