summaryrefslogtreecommitdiff
path: root/tests/test-custom-misc-replace-fraction-glyphs.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-11-14 02:31:16 -0600
committerCraig Jennings <c@cjennings.net>2025-11-14 02:31:16 -0600
commit9d55ed149e100b4fb3ef6f5a79d263dcb26ce835 (patch)
treeb02a77b84849f15b4302fda8f3f8e3942cb253ac /tests/test-custom-misc-replace-fraction-glyphs.el
parent7b982b1984dd37af42a2dfc9f4c3e52b27102860 (diff)
checking in modified/removed tests and other misc changes
Diffstat (limited to 'tests/test-custom-misc-replace-fraction-glyphs.el')
-rw-r--r--tests/test-custom-misc-replace-fraction-glyphs.el185
1 files changed, 0 insertions, 185 deletions
diff --git a/tests/test-custom-misc-replace-fraction-glyphs.el b/tests/test-custom-misc-replace-fraction-glyphs.el
deleted file mode 100644
index 81d1546e..00000000
--- a/tests/test-custom-misc-replace-fraction-glyphs.el
+++ /dev/null
@@ -1,185 +0,0 @@
-;;; test-custom-misc-replace-fraction-glyphs.el --- Tests for cj/--replace-fraction-glyphs -*- lexical-binding: t; -*-
-
-;;; Commentary:
-;; Tests for the cj/--replace-fraction-glyphs function from custom-misc.el
-;;
-;; This function bidirectionally converts between text fractions (1/4) and
-;; Unicode fraction glyphs (¼). It supports 5 common fractions:
-;; - 1/4 ↔ ¼
-;; - 1/2 ↔ ½
-;; - 3/4 ↔ ¾
-;; - 1/3 ↔ ⅓
-;; - 2/3 ↔ ⅔
-;;
-;; We test the NON-INTERACTIVE implementation (cj/--replace-fraction-glyphs)
-;; to avoid mocking prefix arguments. This follows our testing best practice
-;; of separating business logic from UI interaction.
-
-;;; Code:
-
-(require 'ert)
-(require 'testutil-general)
-
-;; 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)
-
-;;; Test Helpers
-
-(defun test-replace-fraction-glyphs (input-text to-glyphs)
- "Test cj/--replace-fraction-glyphs on INPUT-TEXT.
-TO-GLYPHS determines conversion direction.
-Returns the buffer string after operation."
- (with-temp-buffer
- (insert input-text)
- (cj/--replace-fraction-glyphs (point-min) (point-max) to-glyphs)
- (buffer-string)))
-
-;;; Normal Cases - Text to Glyphs
-
-(ert-deftest test-replace-fraction-glyphs-text-to-glyph-quarter ()
- "Should convert 1/4 to ¼."
- (let ((result (test-replace-fraction-glyphs "1/4" t)))
- (should (string= result "¼"))))
-
-(ert-deftest test-replace-fraction-glyphs-text-to-glyph-half ()
- "Should convert 1/2 to ½."
- (let ((result (test-replace-fraction-glyphs "1/2" t)))
- (should (string= result "½"))))
-
-(ert-deftest test-replace-fraction-glyphs-text-to-glyph-three-quarters ()
- "Should convert 3/4 to ¾."
- (let ((result (test-replace-fraction-glyphs "3/4" t)))
- (should (string= result "¾"))))
-
-(ert-deftest test-replace-fraction-glyphs-text-to-glyph-third ()
- "Should convert 1/3 to ⅓."
- (let ((result (test-replace-fraction-glyphs "1/3" t)))
- (should (string= result "⅓"))))
-
-(ert-deftest test-replace-fraction-glyphs-text-to-glyph-two-thirds ()
- "Should convert 2/3 to ⅔."
- (let ((result (test-replace-fraction-glyphs "2/3" t)))
- (should (string= result "⅔"))))
-
-(ert-deftest test-replace-fraction-glyphs-text-to-glyph-multiple ()
- "Should convert multiple fractions in text."
- (let ((result (test-replace-fraction-glyphs "Use 1/4 cup and 1/2 teaspoon" t)))
- (should (string= result "Use ¼ cup and ½ teaspoon"))))
-
-(ert-deftest test-replace-fraction-glyphs-text-to-glyph-all-types ()
- "Should convert all fraction types."
- (let ((result (test-replace-fraction-glyphs "1/4 1/2 3/4 1/3 2/3" t)))
- (should (string= result "¼ ½ ¾ ⅓ ⅔"))))
-
-;;; Normal Cases - Glyphs to Text
-
-(ert-deftest test-replace-fraction-glyphs-glyph-to-text-quarter ()
- "Should convert ¼ to 1/4."
- (let ((result (test-replace-fraction-glyphs "¼" nil)))
- (should (string= result "1/4"))))
-
-(ert-deftest test-replace-fraction-glyphs-glyph-to-text-half ()
- "Should convert ½ to 1/2."
- (let ((result (test-replace-fraction-glyphs "½" nil)))
- (should (string= result "1/2"))))
-
-(ert-deftest test-replace-fraction-glyphs-glyph-to-text-three-quarters ()
- "Should convert ¾ to 3/4."
- (let ((result (test-replace-fraction-glyphs "¾" nil)))
- (should (string= result "3/4"))))
-
-(ert-deftest test-replace-fraction-glyphs-glyph-to-text-third ()
- "Should convert ⅓ to 1/3."
- (let ((result (test-replace-fraction-glyphs "⅓" nil)))
- (should (string= result "1/3"))))
-
-(ert-deftest test-replace-fraction-glyphs-glyph-to-text-two-thirds ()
- "Should convert ⅔ to 2/3."
- (let ((result (test-replace-fraction-glyphs "⅔" nil)))
- (should (string= result "2/3"))))
-
-(ert-deftest test-replace-fraction-glyphs-glyph-to-text-multiple ()
- "Should convert multiple glyphs in text."
- (let ((result (test-replace-fraction-glyphs "Use ¼ cup and ½ teaspoon" nil)))
- (should (string= result "Use 1/4 cup and 1/2 teaspoon"))))
-
-(ert-deftest test-replace-fraction-glyphs-glyph-to-text-all-types ()
- "Should convert all glyph types."
- (let ((result (test-replace-fraction-glyphs "¼ ½ ¾ ⅓ ⅔" nil)))
- (should (string= result "1/4 1/2 3/4 1/3 2/3"))))
-
-;;; Boundary Cases
-
-(ert-deftest test-replace-fraction-glyphs-empty-string ()
- "Should handle empty string."
- (let ((result (test-replace-fraction-glyphs "" t)))
- (should (string= result ""))))
-
-(ert-deftest test-replace-fraction-glyphs-no-fractions-to-glyphs ()
- "Should handle text with no fractions (no-op) when converting to glyphs."
- (let ((result (test-replace-fraction-glyphs "hello world" t)))
- (should (string= result "hello world"))))
-
-(ert-deftest test-replace-fraction-glyphs-no-fractions-to-text ()
- "Should handle text with no glyphs (no-op) when converting to text."
- (let ((result (test-replace-fraction-glyphs "hello world" nil)))
- (should (string= result "hello world"))))
-
-(ert-deftest test-replace-fraction-glyphs-at-start ()
- "Should handle fraction at start of text."
- (let ((result (test-replace-fraction-glyphs "1/2 of the total" t)))
- (should (string= result "½ of the total"))))
-
-(ert-deftest test-replace-fraction-glyphs-at-end ()
- "Should handle fraction at end of text."
- (let ((result (test-replace-fraction-glyphs "Reduce by 1/4" t)))
- (should (string= result "Reduce by ¼"))))
-
-(ert-deftest test-replace-fraction-glyphs-repeated ()
- "Should handle repeated fractions."
- (let ((result (test-replace-fraction-glyphs "1/4 and 1/4 and 1/4" t)))
- (should (string= result "¼ and ¼ and ¼"))))
-
-(ert-deftest test-replace-fraction-glyphs-very-long-text ()
- "Should handle very long text with many fractions."
- (let* ((long-text (mapconcat (lambda (_) "1/4") (make-list 50 nil) " "))
- (result (test-replace-fraction-glyphs long-text t)))
- (should (string-match-p "¼" result))
- (should-not (string-match-p "1/4" result))))
-
-(ert-deftest test-replace-fraction-glyphs-bidirectional ()
- "Should correctly convert back and forth."
- (let* ((original "Use 1/4 cup")
- (to-glyph (test-replace-fraction-glyphs original t))
- (back-to-text (test-replace-fraction-glyphs to-glyph nil)))
- (should (string= to-glyph "Use ¼ cup"))
- (should (string= back-to-text original))))
-
-;;; Error Cases
-
-(ert-deftest test-replace-fraction-glyphs-start-greater-than-end ()
- "Should error when start > end."
- (should-error
- (with-temp-buffer
- (insert "1/4")
- (cj/--replace-fraction-glyphs (point-max) (point-min) t))
- :type 'error))
-
-(ert-deftest test-replace-fraction-glyphs-empty-region ()
- "Should handle empty region (start == end) without error."
- (with-temp-buffer
- (insert "1/4")
- (let ((pos (/ (+ (point-min) (point-max)) 2)))
- (cj/--replace-fraction-glyphs pos pos t)
- ;; Should complete without error
- (should (string= (buffer-string) "1/4")))))
-
-(provide 'test-custom-misc-replace-fraction-glyphs)
-;;; test-custom-misc-replace-fraction-glyphs.el ends here