diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2021-08-19 16:48:59 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2021-08-19 16:48:59 -0700 |
commit | 07fcbb558d797272b9f43547da60beda485873a3 (patch) | |
tree | 77d5da14e9f9d9d8b1d877c70c01296fd3893796 /test/src/character-tests.el | |
parent | c9bdeff3e45a7ac84a74a81bb048046f82dddc91 (diff) | |
parent | fb81c8c3adf8633f2f617c82f6019aef630860c7 (diff) | |
download | emacs-07fcbb558d797272b9f43547da60beda485873a3.tar.gz |
Merge remote-tracking branch 'origin/master' into athena/unstable
Diffstat (limited to 'test/src/character-tests.el')
-rw-r--r-- | test/src/character-tests.el | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/src/character-tests.el b/test/src/character-tests.el new file mode 100644 index 00000000000..f630b32a5ee --- /dev/null +++ b/test/src/character-tests.el @@ -0,0 +1,45 @@ +;;; character-tests.el --- tests for character.c -*- lexical-binding:t -*- + +;; Copyright (C) 2021 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +;;; Code: + +(require 'ert) + +(ert-deftest character-test-string-width () + "Test `string-width' with and without compositions." + (should (= (string-width "1234") 4)) + (should (= (string-width "12\t34") (+ 4 tab-width))) + (should (= (string-width "áëòç") 4)) + (should (= (string-width "áëòç") 4)) + (should (= (string-width "הַרְבֵּה אַהֲבָה") 9)) + (should (= (string-width "1234" 1 3) 2)) + (should (= (string-width "1234" nil -1) 3)) + (should (= (string-width "1234" 2) 2)) + (should-error (string-width "1234" nil 5)) + (should-error (string-width "1234" -5)) + (should (= (string-width "12\t34") (+ 4 tab-width))) + (should (= (string-width "1234\t56") (+ 6 tab-width))) + (should (= (string-width "áëòç") 4)) + (should (= (string-width "áëòç" nil 3) 3)) + (should (= (string-width "áëòç" 1 3) 2)) + (should (= (string-width "áëòç" nil 2) 1)) + (should (= (string-width "áëòç" nil 3) 2)) + (should (= (string-width "áëòç" nil 4) 2)) + (should (= (string-width "הַרְבֵּה אַהֲבָה") 9)) + (should (= (string-width "הַרְבֵּה אַהֲבָה" nil 8) 4))) |