aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/text/test-util.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/text/test-util.scm')
-rw-r--r--tests/unit/text/test-util.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/unit/text/test-util.scm b/tests/unit/text/test-util.scm
new file mode 100644
index 00000000..6d721eb1
--- /dev/null
+++ b/tests/unit/text/test-util.scm
@@ -0,0 +1,50 @@
+(define-module (test text-util)
+ :use-module (srfi srfi-64)
+ :use-module (srfi srfi-71)
+ :use-module (srfi srfi-88)
+ :use-module (text util))
+
+(test-group "words/unwords"
+ (test-equal '("A" "list" "of" "words")
+ (words "A list of words"))
+
+ (test-equal "A joined string"
+ (unwords '("A" "joined" "string"))))
+
+(test-group "lines/unlines"
+ (test-equal '("A" "list of" "words")
+ (lines "A\nlist of\nwords"))
+
+ (test-equal "A joined\nstring"
+ (unlines '("A joined" "string"))))
+
+;;; TODO tests for "true" string length procedures
+;;; Or better yet, remove them and format text properly.
+
+(test-group "trim-to-width"
+ (test-equal "Extending strings"
+ "An extended string "
+ (trim-to-width "An extended string" 40))
+ (test-equal "Truncating strings"
+ "This is a…"
+ (trim-to-width "This is a rather long string" 10))
+ (test-equal "Exact width"
+ "Hello"
+ (trim-to-width "Hello" 5)))
+
+
+(test-group "Add enumeration punctuation"
+ (test-equal '("")
+ (add-enumeration-punctuation '()))
+ (test-equal '("Single element")
+ (add-enumeration-punctuation '("Single element")))
+ (test-equal "Two elements"
+ '("Hello" " " "&" " " "World")
+ (add-enumeration-punctuation '("Hello" "World")))
+ (test-equal "Three elements and different end"
+ '("A" ", " "B" " " "and" " " "C")
+ (add-enumeration-punctuation '("A" "B" "C")
+ "and")))
+
+
+'((text util))