Move some uncontroversial char-folding pairs from test data to default values

* lisp/char-fold.el (char-fold--default-include)
(char-fold--default-exclude): Add some default values.

* test/lisp/char-fold-tests.el (char-fold--test-without-customization)
(char-fold--test-with-customization): Move some test data to
default values.  Add more data for tests to pass.   (Bug#35689)
This commit is contained in:
Juri Linkov 2019-07-29 01:45:36 +03:00
parent d69e1d7056
commit be16c204d6
2 changed files with 45 additions and 26 deletions

View file

@ -27,12 +27,20 @@
(defconst char-fold--default-include
'((?\" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "🙷" "🙶" "🙸" "«" "»")
(?' "" "" "" "" "" "" "" "" "󠀢" "" "" "" "")
(?` "" "" "" "󠀢" "" "")))
(defconst char-fold--default-exclude nil)
(?` "" "" "" "󠀢" "" "")
( "ss") ;; de
(?ι "ΐ") ;; el for (?ΐ "ΐ") decomposition
(?υ "ΰ") ;; el for (?ΰ "ΰ") decomposition
))
(defconst char-fold--default-exclude
'(
( "й") ;; ru
))
(defconst char-fold--default-symmetric nil)
(defconst char-fold--previous (list char-fold--default-include
char-fold--default-exclude
char-fold--default-symmetric)))
(defvar char-fold--previous
(list char-fold--default-include
char-fold--default-exclude
char-fold--default-symmetric)))
(eval-and-compile
@ -221,12 +229,13 @@ Exceptionally for the space character (32), ALIST is ignored.")
(defun char-fold-update-table ()
"Update char-fold-table only when one of the options changes its value."
(let ((new (list (or (bound-and-true-p char-fold-include)
char-fold--default-include)
(or (bound-and-true-p char-fold-exclude)
char-fold--default-exclude)
(or (bound-and-true-p char-fold-symmetric)
char-fold--default-symmetric))))
char-fold--default-symmetric))))
(unless (equal char-fold--previous new)
(setq char-fold-table (char-fold-make-table)
char-fold--previous new))))

View file

@ -150,47 +150,57 @@
(ert-deftest char-fold--test-without-customization ()
(let* ((matches
'(
("'" "")
("e" "" "" "ë" "")
("ι"
"ί" ;; 1 level decomposition
"" ;; 2 level decomposition
;; FIXME:
;; "ΐ" ;; 3 level decomposition
"" ;; 3 level decomposition
)
("ß" "ss")
))
(no-matches
'(
("и" "й")
)))
(dolist (strings matches)
(apply 'char-fold--test-match-exactly strings))))
(apply 'char-fold--test-match-exactly strings))
(dolist (strings no-matches)
(apply 'char-fold--test-no-match-exactly strings))))
(ert-deftest char-fold--test-with-customization ()
:tags '(:expensive-test)
;; FIXME: move some language-specific settings to defaults
(let* ((char-fold-include
'(
( "ss") ;; de
(?o "ø") ;; da no nb nn
(?l "ł") ;; pl
))
;; FIXME: move language-specific settings to defaults
(append char-fold-include
'(
(?o "ø") ;; da no nb nn
(?l "ł") ;; pl
( "ae")
(?→ "->")
(?⇒ "=>")
)))
(char-fold-exclude
'(
(?a "å") ;; sv da no nb nn
(?a "ä") ;; sv fi et
(?o "ö") ;; sv fi et
(?n "ñ") ;; es
( "й") ;; ru
))
(append char-fold-exclude
'(
(?a "å") ;; da no nb nn sv
(?a "ä") ;; et fi sv
(?o "ö") ;; et fi sv
(?n "ñ") ;; es
)))
(char-fold-symmetric t)
(char-fold-table (char-fold-make-table))
(matches
'(
("e" "" "" "ë" "")
("е" "ё" "ё")
("ι" "ί" ""
;; FIXME: "ΐ"
)
("ι" "ί" "" "")
("ß" "ss")
("o" "ø")
("l" "ł")
("æ" "ae")
("" "->")
("" "=>")
))
(no-matches
'(