1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Tweak subr-x.el substring functions

* lisp/emacs-lisp/subr-x.el (string-join): #'-quote function symbol.
(string-trim-left, string-trim-right):
Make better use of substring for minor speedup.
* test/lisp/emacs-lisp/subr-x-tests.el
(subr-x-test-string-trim-left, subr-x-test-string-trim-right)
(subr-x-test-string-remove-prefix)
(subr-x-test-string-remove-suffix): New tests.
This commit is contained in:
Basil L. Contovounesios 2018-06-01 21:58:10 +01:00 committed by Stefan Monnier
parent 34eba3e333
commit 1013e0392b
2 changed files with 53 additions and 6 deletions

View file

@ -532,6 +532,53 @@
(format "abs sum is: %s"))
"abs sum is: 15")))
;; Substring tests
(ert-deftest subr-x-test-string-trim-left ()
"Test `string-trim-left' behavior."
(should (equal (string-trim-left "") ""))
(should (equal (string-trim-left " \t\n\r") ""))
(should (equal (string-trim-left " \t\n\ra") "a"))
(should (equal (string-trim-left "a \t\n\r") "a \t\n\r"))
(should (equal (string-trim-left "" "") ""))
(should (equal (string-trim-left "a" "") "a"))
(should (equal (string-trim-left "aa" "a*") ""))
(should (equal (string-trim-left "ba" "a*") "ba"))
(should (equal (string-trim-left "aa" "a*?") "aa"))
(should (equal (string-trim-left "aa" "a+?") "a")))
(ert-deftest subr-x-test-string-trim-right ()
"Test `string-trim-right' behavior."
(should (equal (string-trim-right "") ""))
(should (equal (string-trim-right " \t\n\r") ""))
(should (equal (string-trim-right " \t\n\ra") " \t\n\ra"))
(should (equal (string-trim-right "a \t\n\r") "a"))
(should (equal (string-trim-right "" "") ""))
(should (equal (string-trim-right "a" "") "a"))
(should (equal (string-trim-right "aa" "a*") ""))
(should (equal (string-trim-right "ab" "a*") "ab"))
(should (equal (string-trim-right "aa" "a*?") "")))
(ert-deftest subr-x-test-string-remove-prefix ()
"Test `string-remove-prefix' behavior."
(should (equal (string-remove-prefix "" "") ""))
(should (equal (string-remove-prefix "" "a") "a"))
(should (equal (string-remove-prefix "a" "") ""))
(should (equal (string-remove-prefix "a" "b") "b"))
(should (equal (string-remove-prefix "a" "a") ""))
(should (equal (string-remove-prefix "a" "aa") "a"))
(should (equal (string-remove-prefix "a" "ab") "b")))
(ert-deftest subr-x-test-string-remove-suffix ()
"Test `string-remove-suffix' behavior."
(should (equal (string-remove-suffix "" "") ""))
(should (equal (string-remove-suffix "" "a") "a"))
(should (equal (string-remove-suffix "a" "") ""))
(should (equal (string-remove-suffix "a" "b") "b"))
(should (equal (string-remove-suffix "a" "a") ""))
(should (equal (string-remove-suffix "a" "aa") "a"))
(should (equal (string-remove-suffix "a" "ba") "b")))
(provide 'subr-x-tests)
;;; subr-x-tests.el ends here