diff options
Diffstat (limited to 'tests/test-custom-misc-cj--count-characters.el')
| -rw-r--r-- | tests/test-custom-misc-cj--count-characters.el | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/tests/test-custom-misc-cj--count-characters.el b/tests/test-custom-misc-cj--count-characters.el deleted file mode 100644 index 1834b5c4..00000000 --- a/tests/test-custom-misc-cj--count-characters.el +++ /dev/null @@ -1,171 +0,0 @@ -;;; test-custom-misc-cj--count-characters.el --- Tests for cj/--count-characters -*- lexical-binding: t; -*- - -;;; Commentary: -;; Tests for the cj/--count-characters internal implementation function from custom-misc.el -;; -;; This internal function counts characters between START and END positions. -;; It validates that START is not greater than END and returns the character count. - -;;; Code: - -(require 'ert) - -;; Add modules directory to load path -(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory)) - -;; Stub dependencies before loading the module -(defvar cj/custom-keymap (make-sparse-keymap) - "Stub keymap for testing.") - -;; Now load the actual production module -(require 'custom-misc) - -;;; Setup and Teardown - -(defun test-count-characters-setup () - "Set up test environment." - ;; No setup needed for this function - nil) - -(defun test-count-characters-teardown () - "Clean up test environment." - ;; No teardown needed for this function - nil) - -;;; Normal Cases - -(ert-deftest test-custom-misc-cj--count-characters-normal-simple-text-returns-count () - "Should count characters in simple text region." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert "Hello, world!") - (let ((result (cj/--count-characters 1 14))) - (should (= result 13)))) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-normal-partial-region-returns-count () - "Should count characters in partial region." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert "Hello, world!") - (let ((result (cj/--count-characters 1 6))) - (should (= result 5)))) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-normal-multiline-returns-count () - "Should count characters including newlines." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert "Line 1\nLine 2\nLine 3") - ;; 6 + 1 + 6 + 1 + 6 = 20 characters - (let ((result (cj/--count-characters (point-min) (point-max)))) - (should (= result 20)))) - (test-count-characters-teardown))) - -;;; Boundary Cases - -(ert-deftest test-custom-misc-cj--count-characters-boundary-empty-region-returns-zero () - "Should return 0 for empty region (start equals end)." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert "Hello") - (let ((result (cj/--count-characters 3 3))) - (should (= result 0)))) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-boundary-single-character-returns-one () - "Should return 1 for single character region." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert "Hello") - (let ((result (cj/--count-characters 1 2))) - (should (= result 1)))) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-boundary-large-region-returns-count () - "Should handle very large region." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (let ((large-content (make-string 100000 ?x))) - (insert large-content) - (let ((result (cj/--count-characters (point-min) (point-max)))) - (should (= result 100000))))) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-boundary-unicode-returns-count () - "Should count unicode characters (emoji, RTL text, combining characters)." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - ;; "Hello 👋 Ù…Ø±ØØ¨Ø§" contains emoji and Arabic text - (insert "Hello 👋 Ù…Ø±ØØ¨Ø§") - (let ((result (cj/--count-characters (point-min) (point-max)))) - ;; Count the actual characters in the buffer - (should (= result (- (point-max) (point-min)))))) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-boundary-whitespace-only-returns-count () - "Should count whitespace characters." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert " \t\n ") - ;; 3 spaces + 1 tab + 1 newline + 2 spaces = 7 characters - (let ((result (cj/--count-characters (point-min) (point-max)))) - (should (= result 7)))) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-boundary-newlines-at-boundaries-returns-count () - "Should count newlines at start and end." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert "\n\nHello\n\n") - ;; 2 newlines + 5 chars + 2 newlines = 9 characters - (let ((result (cj/--count-characters (point-min) (point-max)))) - (should (= result 9)))) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-boundary-binary-content-returns-count () - "Should handle binary content." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert (string 0 1 2 255)) - (let ((result (cj/--count-characters (point-min) (point-max)))) - (should (= result 4)))) - (test-count-characters-teardown))) - -;;; Error Cases - -(ert-deftest test-custom-misc-cj--count-characters-error-start-greater-than-end-signals-error () - "Should signal error when start is greater than end." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert "Hello, world!") - (should-error (cj/--count-characters 10 5) - :type 'error)) - (test-count-characters-teardown))) - -(ert-deftest test-custom-misc-cj--count-characters-error-positions-out-of-bounds-handled () - "Should handle positions beyond buffer bounds (Emacs handles this)." - (test-count-characters-setup) - (unwind-protect - (with-temp-buffer - (insert "Hello") - ;; Emacs will error if positions are truly out of bounds, - ;; but this tests that our function doesn't add additional errors - ;; Buffer has 6 positions (1-6), testing valid bounds - (let ((result (cj/--count-characters 1 6))) - (should (= result 5)))) - (test-count-characters-teardown))) - -(provide 'test-custom-misc-cj--count-characters) -;;; test-custom-misc-cj--count-characters.el ends here |
