Author: koutou
Date: Sat Mar 21 20:44:45 2009
New Revision: 5907

Modified:
   trunk/test/test-uim-util.scm
   trunk/test/util/test-string.scm

Log:
* test/test-uim-util.scm: move string related tests to ...
* test/util/test-string.scm: ... here.


Modified: trunk/test/test-uim-util.scm
==============================================================================
--- trunk/test/test-uim-util.scm        (original)
+++ trunk/test/test-uim-util.scm        Sat Mar 21 20:44:45 2009
@@ -41,177 +41,6 @@
      (uim '(require "util.scm"))
      (uim '(define lst '(1 2 3 4)))))

-  ;; See "Specification changes of utility procedures" of doc/COMPATIBILITY
-;;  ("test string-split (uim 1.4)"
-;;   ;; ordinary split
-;;   (assert-equal '("h" "geh" "ge")
-;;              (uim '(string-split "hogehoge" "o")))
-;;   ;; case sensitive
-;;   (assert-equal '("hogehoge")
-;;              (uim '(string-split "hogehoge" "O")))
-;;   ;; split by sequence
-;;   (assert-equal '("h" "eh" "e")
-;;              (uim '(string-split "hogehoge" "og")))
-;;   ;; split by first character
-;;   (assert-equal '("oge" "oge")
-;;              (uim '(string-split "hogehoge" "h")))
-;;   ;; split by first sequence
-;;   (assert-equal '("ge" "ge")
-;;              (uim '(string-split "hogehoge" "ho")))
-;;   ;; split by last character
-;;   (assert-equal '("hog" "hog")
-;;              (uim '(string-split "hogehoge" "e")))
-;;   ;; split by last sequence
-;;   (assert-equal '("ho" "ho")
-;;              (uim '(string-split "hogehoge" "ge")))
-;;   ;; split by whole string
-;;   (assert-equal ()
-;;              (uim '(string-split "hogehoge" "hogehoge")))
-;;   ;; repeated splitter
-;;   (assert-equal ()
-;;              (uim '(string-split "hhh" "h")))
-;;   ;; split by space
-;;   (assert-equal '("h" "o" "g" "e" "hoge")
-;;              (uim '(string-split " h o g e hoge" " ")))
-;;   ;; split by symbolic character
-;;   (assert-equal '("h" "o" "g" "e" "hoge")
-;;              (uim '(string-split "|h|o|g|e|hoge" "|")))
-;;   ;; split by non existent character
-;;   (assert-equal '("hogehoge")
-;;              (uim '(string-split "hogehoge" "|"))))
-
-  ;; See "Specification changes of utility procedures" of doc/COMPATIBILITY
-  ("test string-split (uim 1.5)"
-   ;; ordinary split
-   (assert-equal '("h" "geh" "ge")
-                (uim '(string-split "hogehoge" "o")))
-   ;; case sensitive
-   (assert-equal '("hogehoge")
-                (uim '(string-split "hogehoge" "O")))
-   ;; split by sequence
-   (assert-equal '("h" "eh" "e")
-                (uim '(string-split "hogehoge" "og")))
-   ;; split by first character
-   (assert-equal '("" "oge" "oge")
-                (uim '(string-split "hogehoge" "h")))
-   ;; split by first sequence
-   (assert-equal '("" "ge" "ge")
-                (uim '(string-split "hogehoge" "ho")))
-   ;; split by last character
-   (assert-equal '("hog" "hog" "")
-                (uim '(string-split "hogehoge" "e")))
-   ;; split by last sequence
-   (assert-equal '("ho" "ho" "")
-                (uim '(string-split "hogehoge" "ge")))
-   ;; split by whole string
-   (assert-equal '("" "")
-                (uim '(string-split "hogehoge" "hogehoge")))
-   ;; repeated splitter
-   (assert-equal '("" "" "" "")
-                (uim '(string-split "hhh" "h")))
-   ;; split by space
-   (assert-equal '("" "h" "o" "g" "e" "hoge")
-                (uim '(string-split " h o g e hoge" " ")))
-   ;; split by symbolic character
-   (assert-equal '("" "h" "o" "g" "e" "hoge")
-                (uim '(string-split "|h|o|g|e|hoge" "|")))
-   ;; split by non existent character
-   (assert-equal '("hogehoge")
-                (uim '(string-split "hogehoge" "|"))))
-
-  ;; split EUC-JP string into reversed character list
-  ("test string-to-list"
-   (assert-equal '()
-                (uim '(string-to-list "")))
-   (assert-equal '("s")
-                (uim '(string-to-list "s")))
-   (assert-equal '("t" "s")
-                (uim '(string-to-list "st")))
-   (assert-equal '("g" "n" "i" "r" "t" "s")
-                (uim '(string-to-list "string")))
-   ;; TODO: activate following EUC-JP string test
-;   (assert-equal '("あ")
-;               (uim '(string-to-list "あ")))
-;   (assert-equal '("あ" "a")
-;               (uim '(string-to-list "aあ")))
-;   (assert-equal '("a" "あ")
-;               (uim '(string-to-list "あa")))
-;   (assert-equal '("語" "本" "日")
-;               (uim '(string-to-list "日本語")))
-;   (assert-equal '("c" "語" "本" "b" "日" "a")
-;               (uim '(string-to-list "a日b本語c")))
-   )
-
-  ("test string-contains"
-   (assert-equal 0 (uim '(string-contains ""         "" 0)))
-   (assert-false   (uim '(string-contains ""         "f" 0)))
-   (assert-equal 0 (uim '(string-contains "foo"      "" 0)))
-   (assert-equal 0 (uim '(string-contains "foo"      "f" 0)))
-   (assert-equal 1 (uim '(string-contains "foo"      "o" 0)))
-   (assert-equal 1 (uim '(string-contains "foo"      "oo" 0)))
-   (assert-false   (uim '(string-contains "foo"      "oof" 0)))
-   (assert-equal 1 (uim '(string-contains "foo"      "o" 1)))
-   (assert-equal 2 (uim '(string-contains "foo"      "o" 2))))
-
-  ("test string-prefix?"
-   (assert-true  (uim-bool '(string-prefix? ""         "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix? "f"        "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix? "fo"       "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix? "foo"      "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix? "foo_"     "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix? "foo_b"    "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix? "foo_ba"   "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix? "foo_bar"  "foo_bar")))
-   (assert-false (uim-bool '(string-prefix? "foo_bar_" "foo_bar")))
- (assert-error (lambda () (uim-bool '(string-prefix? #f "foo_bar"))))
-   (assert-error (lambda () (uim-bool '(string-prefix? "foo_bar"  #f))))
-   (assert-false (uim-bool '(string-prefix? "Foo"      "foo_bar")))
-   (assert-false (uim-bool '(string-prefix? "oo_"      "foo_bar")))
-   (assert-false (uim-bool '(string-prefix? "bar"      "foo_bar")))
-
-   (assert-true  (uim-bool '(string-prefix? ""    "")))
-   (assert-false (uim-bool '(string-prefix? "foo" "")))
-   (assert-error (lambda () (uim-bool '(string-prefix? #f    ""))))
-   (assert-error (lambda () (uim-bool '(string-prefix? ""    #f)))))
-
-  ("test string-prefix-ci?"
-   (assert-true  (uim-bool '(string-prefix-ci? ""         "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "f"        "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "fo"       "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "foo"      "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "foo_"     "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "foo_b"    "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "foo_ba"   "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "foo_bar"  "foo_bar")))
-   (assert-false (uim-bool '(string-prefix-ci? "foo_bar_" "foo_bar")))
- (assert-error (lambda () (uim-bool '(string-prefix-ci? #f "foo_bar"))))
-   (assert-error (lambda () (uim-bool '(string-prefix-ci? "foo_bar"  #f))))
-   (assert-true  (uim-bool '(string-prefix-ci? "Foo"      "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "fOo"      "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "fOO"      "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "FOO"      "foo_bar")))
-   (assert-true  (uim-bool '(string-prefix-ci? "FOO_bar"  "foo_bar")))
-   (assert-false (uim-bool '(string-prefix-ci? "oo_"      "foo_bar")))
-   (assert-false (uim-bool '(string-prefix-ci? "bar"      "foo_bar")))
-
-   (assert-true  (uim-bool '(string-prefix-ci? ""    "")))
-   (assert-false (uim-bool '(string-prefix-ci? "foo" "")))
-   (assert-error (lambda () (uim-bool '(string-prefix-ci? #f    ""))))
-   (assert-error (lambda () (uim-bool '(string-prefix-ci? ""    #f)))))
-
-  ("test string=?"
-   (assert-true  (uim-bool '(string=? "foo1" "foo1")))
-   (assert-true  (uim-bool '(string=? "Foo1" "Foo1")))
-   (assert-true  (uim-bool '(string=? "FOO1" "FOO1")))
-   (assert-true  (uim-bool '(string=? "1foo" "1foo")))
-   (assert-true  (uim-bool '(string=? "1Foo" "1Foo")))
-   (assert-true  (uim-bool '(string=? "1FOO" "1FOO")))
-   (assert-true  (uim-bool '(string=? "" "")))
-   (assert-false (uim-bool '(string=? "foo1" "")))
-   (assert-false (uim-bool '(string=? "" "foo1")))
-   (assert-false (uim-bool '(string=? "foo1" "Foo1")))
-   (assert-false (uim-bool '(string=? "Foo1" "foo1"))))
-
   ("test nthcdr"
    (assert-equal '(1 2 3 4)
                 (uim '(nthcdr 0 lst)))
@@ -224,131 +53,7 @@
    (assert-equal ()
                 (uim '(nthcdr 4 lst)))
    (assert-equal #f
-                (uim '(nthcdr 5 lst))))
-
-  ("test charcode->string"
-   (assert-equal ""   (uim '(charcode->string 'return)))
-   (assert-equal ""   (uim '(charcode->string 0)))
-   (assert-equal "\n" (uim '(charcode->string 10)))
-   (assert-equal "\r" (uim '(charcode->string 13)))
-   (assert-equal " "  (uim '(charcode->string 32)))
-   (assert-equal "!"  (uim '(charcode->string 33)))
-   (assert-equal "/"  (uim '(charcode->string 47)))
-   (assert-equal "0"  (uim '(charcode->string 48)))
-   (assert-equal "9"  (uim '(charcode->string 57)))
-   (assert-equal ":"  (uim '(charcode->string 58)))
-   (assert-equal "@"  (uim '(charcode->string 64)))
-   (assert-equal "A"  (uim '(charcode->string 65)))
-   (assert-equal "Z"  (uim '(charcode->string 90)))
-   (assert-equal "["  (uim '(charcode->string 91)))
-   (assert-equal "\\" (uim '(charcode->string 92)))
-   (assert-equal "`"  (uim '(charcode->string 96)))
-   (assert-equal "a"  (uim '(charcode->string 97)))
-   (assert-equal "z"  (uim '(charcode->string 122)))
-   (assert-equal "{"  (uim '(charcode->string 123)))
-   (assert-equal "~"  (uim '(charcode->string 126))))
-
-  ("test string->charcode"
-   (assert-equal 0   (uim '(string->charcode "")))
-   (assert-equal 10  (uim '(string->charcode "\n")))
-   (assert-equal 13  (uim '(string->charcode "\r")))
-   (assert-equal 32  (uim '(string->charcode " ")))
-   (assert-equal 33  (uim '(string->charcode "!")))
-   (assert-equal 47  (uim '(string->charcode "/")))
-   (assert-equal 48  (uim '(string->charcode "0")))
-   (assert-equal 57  (uim '(string->charcode "9")))
-   (assert-equal 58  (uim '(string->charcode ":")))
-   (assert-equal 64  (uim '(string->charcode "@")))
-   (assert-equal 65  (uim '(string->charcode "A")))
-   (assert-equal 90  (uim '(string->charcode "Z")))
-   (assert-equal 91  (uim '(string->charcode "[")))
-   (assert-equal 92  (uim '(string->charcode "\\")))
-   (assert-equal 96  (uim '(string->charcode "`")))
-   (assert-equal 97  (uim '(string->charcode "a")))
-   (assert-equal 122 (uim '(string->charcode "z")))
-   (assert-equal 123 (uim '(string->charcode "{")))
-   (assert-equal 126 (uim '(string->charcode "~"))))
-
-  ("test digit->string"
-   ;; for storage-fa...@32-bit
-   ;;(assert-equal "-2147483648" (uim '(digit->string -2147483648)))
-   ;; for storage-comp...@32-bit
-   (assert-equal "-134217728" (uim '(digit->string -134217728)))
-   (assert-equal "-10"  (uim '(digit->string -10)))
-   (assert-equal "-2"   (uim '(digit->string -2)))
-   (assert-equal "-1"   (uim '(digit->string -1)))
-   (assert-equal "0"    (uim '(digit->string 0)))
-   (assert-equal "1"    (uim '(digit->string 1)))
-   (assert-equal "2"    (uim '(digit->string 2)))
-   (assert-equal "3"    (uim '(digit->string 3)))
-   (assert-equal "4"    (uim '(digit->string 4)))
-   (assert-equal "5"    (uim '(digit->string 5)))
-   (assert-equal "6"    (uim '(digit->string 6)))
-   (assert-equal "7"    (uim '(digit->string 7)))
-   (assert-equal "8"    (uim '(digit->string 8)))
-   (assert-equal "9"    (uim '(digit->string 9)))
-   (assert-equal "10"   (uim '(digit->string 10)))
-   (assert-equal "11"   (uim '(digit->string 11)))
-   (assert-equal "12"   (uim '(digit->string 12)))
-   (assert-equal "13"   (uim '(digit->string 13)))
-   (assert-equal "14"   (uim '(digit->string 14)))
-   (assert-equal "15"   (uim '(digit->string 15)))
-   (assert-equal "16"   (uim '(digit->string 16)))
-   (assert-equal "17"   (uim '(digit->string 17)))
-   (assert-equal "18"   (uim '(digit->string 18)))
-   (assert-equal "19"   (uim '(digit->string 19)))
-   (assert-equal "100"  (uim '(digit->string 100)))
-   (assert-equal "1000" (uim '(digit->string 1000)))
-   ;; for storage-fa...@32-bit
-   ;;(assert-equal "2147483647" (uim '(digit->string 2147483647)))
-   ;; for storage-comp...@32-bit
-   (assert-equal "134217727" (uim '(digit->string 134217727)))
-   )
-
-  ;; compare string sequence
-  ("test str-seq-equal?"
-   (assert-true  (uim-bool '(str-seq-equal? () ())))
-   (assert-true  (uim-bool '(str-seq-equal? '("") '(""))))
-   (assert-false (uim-bool '(str-seq-equal? () '(""))))
-   (assert-false (uim-bool '(str-seq-equal? '("") ())))
-   (assert-true  (uim-bool '(str-seq-equal? '("a") '("a"))))
-   (assert-false (uim-bool '(str-seq-equal? '("a") '("A"))))
-   (assert-false (uim-bool '(str-seq-equal? '("a") '("b"))))
-   (assert-true  (uim-bool '(str-seq-equal? '("a" "b" "c")
-                                           '("a" "b" "c"))))
-   (assert-false (uim-bool '(str-seq-equal? '("a" "b" "c")
-                                           '("a" "b" "c" "d"))))
-   (assert-false (uim-bool '(str-seq-equal? '("a" "b" "c")
-                                           '("z" "a" "b" "c"))))
-   (assert-false (uim-bool '(str-seq-equal? '("a" "b" "c" "d")
-                                           '("a" "b" "c")))))
-
-  ;; Partial -> first string of remaining sequence
-  ;;  eg. ("a" "b") ("a" "b" "c") -> "c"
-  ;; Not partial -> #f
-  ("test str-seq-partial?"
-   (assert-false (uim-bool '(str-seq-partial? () ())))
-   (assert-false (uim-bool '(str-seq-partial? '("") '(""))))
-   (assert-equal ""
-                (uim '(str-seq-partial? () '(""))))
-   (assert-false (uim-bool '(str-seq-partial? '("") ())))
-   (assert-false (uim-bool '(str-seq-partial? '("a") '("a"))))
-   (assert-false (uim-bool '(str-seq-partial? '("a") '("A"))))
-   (assert-false (uim-bool '(str-seq-partial? '("a") '("b"))))
-   (assert-equal "b"
-                (uim '(str-seq-partial? '("a")
-                                        '("a" "b"))))
-   (assert-false (uim-bool '(str-seq-partial? '("a" "b" "c")
-                                             '("a" "b" "c"))))
-   (assert-equal "d"
-                (uim '(str-seq-partial? '("a" "b" "c")
-                                        '("a" "b" "c" "d"))))
-   (assert-equal "d"
-                (uim '(str-seq-partial? '("a" "b" "c")
-                                        '("a" "b" "c" "d" "e"))))
-   (assert-false (uim-bool '(str-seq-partial? '("a" "b" "c" "d")
-                                             '("a" "b" "c"))))))
-
+                (uim '(nthcdr 5 lst)))))

 ;; this test assumes that string encoding of Gauche is configured as
 ;; UTF-8

Modified: trunk/test/util/test-string.scm
==============================================================================
--- trunk/test/util/test-string.scm     (original)
+++ trunk/test/util/test-string.scm     Sat Mar 21 20:44:45 2009
@@ -74,4 +74,310 @@
   (assert-uim-false '(string-find '("foo" "bar" "baz") "quux"))
   #f)

+;; See "Specification changes of utility procedures" of doc/COMPATIBILITY
+(define (no-test-string-split-uim-1.4)
+  ;; ordinary split
+  (assert-uim-equal '("h" "geh" "ge")
+                    '(string-split "hogehoge" "o"))
+  ;; case sensitive
+  (assert-uim-equal '("hogehoge")
+                    '(string-split "hogehoge" "O"))
+  ;; split by sequence
+  (assert-uim-equal '("h" "eh" "e")
+                    '(string-split "hogehoge" "og"))
+  ;; split by first character
+  (assert-uim-equal '("oge" "oge")
+                    '(string-split "hogehoge" "h"))
+  ;; split by first sequence
+  (assert-uim-equal '("ge" "ge")
+                    '(string-split "hogehoge" "ho"))
+  ;; split by last character
+  (assert-uim-equal '("hog" "hog")
+                    '(string-split "hogehoge" "e"))
+  ;; split by last sequence
+  (assert-uim-equal '("ho" "ho")
+                    '(string-split "hogehoge" "ge"))
+  ;; split by whole string
+  (assert-uim-equal ()
+                    '(string-split "hogehoge" "hogehoge"))
+  ;; repeated splitter
+  (assert-uim-equal ()
+                    '(string-split "hhh" "h"))
+  ;; split by space
+  (assert-uim-equal '("h" "o" "g" "e" "hoge")
+                    '(string-split " h o g e hoge" " "))
+  ;; split by symbolic character
+  (assert-uim-equal '("h" "o" "g" "e" "hoge")
+                    '(string-split "|h|o|g|e|hoge" "|"))
+  ;; split by non existent character
+  (assert-uim-equal '("hogehoge")
+                    '(string-split "hogehoge" "|"))
+  #f)
+
+;; See "Specification changes of utility procedures" of doc/COMPATIBILITY
+(define (test-string-split-uim-1.5)
+  ;; ordinary split
+  (assert-uim-equal '("h" "geh" "ge")
+                    '(string-split "hogehoge" "o"))
+  ;; case sensitive
+  (assert-uim-equal '("hogehoge")
+                    '(string-split "hogehoge" "O"))
+  ;; split by sequence
+  (assert-uim-equal '("h" "eh" "e")
+                    '(string-split "hogehoge" "og"))
+  ;; split by first character
+  (assert-uim-equal '("" "oge" "oge")
+                    '(string-split "hogehoge" "h"))
+  ;; split by first sequence
+  (assert-uim-equal '("" "ge" "ge")
+                    '(string-split "hogehoge" "ho"))
+  ;; split by last character
+  (assert-uim-equal '("hog" "hog" "")
+                    '(string-split "hogehoge" "e"))
+  ;; split by last sequence
+  (assert-uim-equal '("ho" "ho" "")
+                    '(string-split "hogehoge" "ge"))
+  ;; split by whole string
+  (assert-uim-equal '("" "")
+                    '(string-split "hogehoge" "hogehoge"))
+  ;; repeated splitter
+  (assert-uim-equal '("" "" "" "")
+                    '(string-split "hhh" "h"))
+  ;; split by space
+  (assert-uim-equal '("" "h" "o" "g" "e" "hoge")
+                    '(string-split " h o g e hoge" " "))
+  ;; split by symbolic character
+  (assert-uim-equal '("" "h" "o" "g" "e" "hoge")
+                    '(string-split "|h|o|g|e|hoge" "|"))
+  ;; split by non existent character
+  (assert-uim-equal '("hogehoge")
+                    '(string-split "hogehoge" "|"))
+  #f)
+
+;; split EUC-JP string into reversed character list
+(define (test-string-to-list)
+  (assert-uim-equal '()
+                    '(string-to-list ""))
+  (assert-uim-equal '("s")
+                    '(string-to-list "s"))
+  (assert-uim-equal '("t" "s")
+                    '(string-to-list "st"))
+  (assert-uim-equal '("g" "n" "i" "r" "t" "s")
+                    '(string-to-list "string"))
+  ;; TODO: activate following EUC-JP string test
+;;   (assert-uim-equal '("あ")
+;;                     '(string-to-list "あ"))
+;;   (assert-uim-equal '("あ" "a")
+;;                     '(string-to-list "aあ"))
+;;   (assert-uim-equal '("a" "あ")
+;;                     '(string-to-list "あa"))
+;;   (assert-uim-equal '("語" "本" "日")
+;;                     '(string-to-list "日本語"))
+;;   (assert-uim-equal '("c" "語" "本" "b" "日" "a")
+;;                     '(string-to-list "a日b本語c"))
+  #f)
+
+(define (test-string-contains)
+  (assert-uim-equal 0 '(string-contains ""         "" 0))
+  (assert-uim-false   '(string-contains ""         "f" 0))
+  (assert-uim-equal 0 '(string-contains "foo"      "" 0))
+  (assert-uim-equal 0 '(string-contains "foo"      "f" 0))
+  (assert-uim-equal 1 '(string-contains "foo"      "o" 0))
+  (assert-uim-equal 1 '(string-contains "foo"      "oo" 0))
+  (assert-uim-false   '(string-contains "foo"      "oof" 0))
+  (assert-uim-equal 1 '(string-contains "foo"      "o" 1))
+  (assert-uim-equal 2 '(string-contains "foo"      "o" 2))
+  #f)
+
+(define (test-string-prefix?)
+  (assert-uim-true  '(string-prefix? ""         "foo_bar"))
+  (assert-uim-true  '(string-prefix? "f"        "foo_bar"))
+  (assert-uim-true  '(string-prefix? "fo"       "foo_bar"))
+  (assert-uim-true  '(string-prefix? "foo"      "foo_bar"))
+  (assert-uim-true  '(string-prefix? "foo_"     "foo_bar"))
+  (assert-uim-true  '(string-prefix? "foo_b"    "foo_bar"))
+  (assert-uim-true  '(string-prefix? "foo_ba"   "foo_bar"))
+  (assert-uim-true  '(string-prefix? "foo_bar"  "foo_bar"))
+  (assert-uim-false '(string-prefix? "foo_bar_" "foo_bar"))
+  (assert-uim-error '(string-prefix? #f         "foo_bar"))
+  (assert-uim-error '(string-prefix? "foo_bar"  #f))
+  (assert-uim-false '(string-prefix? "Foo"      "foo_bar"))
+  (assert-uim-false '(string-prefix? "oo_"      "foo_bar"))
+  (assert-uim-false '(string-prefix? "bar"      "foo_bar"))
+
+  (assert-uim-true  '(string-prefix? ""    ""))
+  (assert-uim-false '(string-prefix? "foo" ""))
+  (assert-uim-error '(string-prefix? #f    ""))
+  (assert-uim-error '(string-prefix? ""    #f))
+  #f)
+
+(define (test-string-prefix-ci?)
+  (assert-uim-true  '(string-prefix-ci? ""         "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "f"        "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "fo"       "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "foo"      "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "foo_"     "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "foo_b"    "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "foo_ba"   "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "foo_bar"  "foo_bar"))
+  (assert-uim-false '(string-prefix-ci? "foo_bar_" "foo_bar"))
+  (assert-uim-error '(string-prefix-ci? #f         "foo_bar"))
+  (assert-uim-error '(string-prefix-ci? "foo_bar"  #f))
+  (assert-uim-true  '(string-prefix-ci? "Foo"      "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "fOo"      "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "fOO"      "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "FOO"      "foo_bar"))
+  (assert-uim-true  '(string-prefix-ci? "FOO_bar"  "foo_bar"))
+  (assert-uim-false '(string-prefix-ci? "oo_"      "foo_bar"))
+  (assert-uim-false '(string-prefix-ci? "bar"      "foo_bar"))
+
+  (assert-uim-true  '(string-prefix-ci? ""    ""))
+  (assert-uim-false '(string-prefix-ci? "foo" ""))
+  (assert-uim-error '(string-prefix-ci? #f    ""))
+  (assert-uim-error '(string-prefix-ci? ""    #f))
+  #f)
+
+(define (test-string=?)
+  (assert-uim-true  '(string=? "foo1" "foo1"))
+  (assert-uim-true  '(string=? "Foo1" "Foo1"))
+  (assert-uim-true  '(string=? "FOO1" "FOO1"))
+  (assert-uim-true  '(string=? "1foo" "1foo"))
+  (assert-uim-true  '(string=? "1Foo" "1Foo"))
+  (assert-uim-true  '(string=? "1FOO" "1FOO"))
+  (assert-uim-true  '(string=? "" ""))
+  (assert-uim-false '(string=? "foo1" ""))
+  (assert-uim-false '(string=? "" "foo1"))
+  (assert-uim-false '(string=? "foo1" "Foo1"))
+  (assert-uim-false '(string=? "Foo1" "foo1"))
+  #f)
+
+(define (test-charcode->string)
+  (assert-uim-equal ""   '(charcode->string 'return))
+  (assert-uim-equal ""   '(charcode->string 0))
+  (assert-uim-equal "\n" '(charcode->string 10))
+  (assert-uim-equal "\r" '(charcode->string 13))
+  (assert-uim-equal " "  '(charcode->string 32))
+  (assert-uim-equal "!"  '(charcode->string 33))
+  (assert-uim-equal "/"  '(charcode->string 47))
+  (assert-uim-equal "0"  '(charcode->string 48))
+  (assert-uim-equal "9"  '(charcode->string 57))
+  (assert-uim-equal ":"  '(charcode->string 58))
+  (assert-uim-equal "@"  '(charcode->string 64))
+  (assert-uim-equal "A"  '(charcode->string 65))
+  (assert-uim-equal "Z"  '(charcode->string 90))
+  (assert-uim-equal "["  '(charcode->string 91))
+  (assert-uim-equal "\\" '(charcode->string 92))
+  (assert-uim-equal "`"  '(charcode->string 96))
+  (assert-uim-equal "a"  '(charcode->string 97))
+  (assert-uim-equal "z"  '(charcode->string 122))
+  (assert-uim-equal "{"  '(charcode->string 123))
+  (assert-uim-equal "~"  '(charcode->string 126))
+  #f)
+
+(define (test-string->charcode)
+  (assert-uim-equal 0   '(string->charcode ""))
+  (assert-uim-equal 10  '(string->charcode "\n"))
+  (assert-uim-equal 13  '(string->charcode "\r"))
+  (assert-uim-equal 32  '(string->charcode " "))
+  (assert-uim-equal 33  '(string->charcode "!"))
+  (assert-uim-equal 47  '(string->charcode "/"))
+  (assert-uim-equal 48  '(string->charcode "0"))
+  (assert-uim-equal 57  '(string->charcode "9"))
+  (assert-uim-equal 58  '(string->charcode ":"))
+  (assert-uim-equal 64  '(string->charcode "@"))
+  (assert-uim-equal 65  '(string->charcode "A"))
+  (assert-uim-equal 90  '(string->charcode "Z"))
+  (assert-uim-equal 91  '(string->charcode "["))
+  (assert-uim-equal 92  '(string->charcode "\\"))
+  (assert-uim-equal 96  '(string->charcode "`"))
+  (assert-uim-equal 97  '(string->charcode "a"))
+  (assert-uim-equal 122 '(string->charcode "z"))
+  (assert-uim-equal 123 '(string->charcode "{"))
+  (assert-uim-equal 126 '(string->charcode "~"))
+  #f)
+
+(define (test-digit->string)
+  ;; for storage-fa...@32-bit
+  ;;(assert-uim-equal "-2147483648" '(digit->string -2147483648))
+  ;; for storage-comp...@32-bit
+  (assert-uim-equal "-134217728" '(digit->string -134217728))
+  (assert-uim-equal "-10"  '(digit->string -10))
+  (assert-uim-equal "-2"   '(digit->string -2))
+  (assert-uim-equal "-1"   '(digit->string -1))
+  (assert-uim-equal "0"    '(digit->string 0))
+  (assert-uim-equal "1"    '(digit->string 1))
+  (assert-uim-equal "2"    '(digit->string 2))
+  (assert-uim-equal "3"    '(digit->string 3))
+  (assert-uim-equal "4"    '(digit->string 4))
+  (assert-uim-equal "5"    '(digit->string 5))
+  (assert-uim-equal "6"    '(digit->string 6))
+  (assert-uim-equal "7"    '(digit->string 7))
+  (assert-uim-equal "8"    '(digit->string 8))
+  (assert-uim-equal "9"    '(digit->string 9))
+  (assert-uim-equal "10"   '(digit->string 10))
+  (assert-uim-equal "11"   '(digit->string 11))
+  (assert-uim-equal "12"   '(digit->string 12))
+  (assert-uim-equal "13"   '(digit->string 13))
+  (assert-uim-equal "14"   '(digit->string 14))
+  (assert-uim-equal "15"   '(digit->string 15))
+  (assert-uim-equal "16"   '(digit->string 16))
+  (assert-uim-equal "17"   '(digit->string 17))
+  (assert-uim-equal "18"   '(digit->string 18))
+  (assert-uim-equal "19"   '(digit->string 19))
+  (assert-uim-equal "100"  '(digit->string 100))
+  (assert-uim-equal "1000" '(digit->string 1000))
+  ;; for storage-fa...@32-bit
+  ;;(assert-uim-equal "2147483647" '(digit->string 2147483647))
+  ;; for storage-comp...@32-bit
+  (assert-uim-equal "134217727" '(digit->string 134217727))
+  #f)
+
+;; compare string sequence
+(define (test-str-seq-equal?)
+  (assert-uim-true  '(str-seq-equal? () ()))
+  (assert-uim-true  '(str-seq-equal? '("") '("")))
+  (assert-uim-false '(str-seq-equal? () '("")))
+  (assert-uim-false '(str-seq-equal? '("") ()))
+  (assert-uim-true  '(str-seq-equal? '("a") '("a")))
+  (assert-uim-false '(str-seq-equal? '("a") '("A")))
+  (assert-uim-false '(str-seq-equal? '("a") '("b")))
+  (assert-uim-true  '(str-seq-equal? '("a" "b" "c")
+                                     '("a" "b" "c")))
+  (assert-uim-false '(str-seq-equal? '("a" "b" "c")
+                                     '("a" "b" "c" "d")))
+  (assert-uim-false '(str-seq-equal? '("a" "b" "c")
+                                     '("z" "a" "b" "c")))
+  (assert-uim-false '(str-seq-equal? '("a" "b" "c" "d")
+                                     '("a" "b" "c")))
+  #f)
+
+;; Partial -> first string of remaining sequence
+;;  eg. ("a" "b") ("a" "b" "c") -> "c"
+;; Not partial -> #f
+(define (test-str-seq-partial?)
+  (assert-uim-false '(str-seq-partial? () ()))
+  (assert-uim-false '(str-seq-partial? '("") '("")))
+  (assert-uim-equal ""
+                    '(str-seq-partial? () '("")))
+  (assert-uim-false '(str-seq-partial? '("") ()))
+  (assert-uim-false '(str-seq-partial? '("a") '("a")))
+  (assert-uim-false '(str-seq-partial? '("a") '("A")))
+  (assert-uim-false '(str-seq-partial? '("a") '("b")))
+  (assert-uim-equal "b"
+                    '(str-seq-partial? '("a")
+                                       '("a" "b")))
+  (assert-uim-false '(str-seq-partial? '("a" "b" "c")
+                                       '("a" "b" "c")))
+  (assert-uim-equal "d"
+                    '(str-seq-partial? '("a" "b" "c")
+                                       '("a" "b" "c" "d")))
+  (assert-uim-equal "d"
+                    '(str-seq-partial? '("a" "b" "c")
+                                       '("a" "b" "c" "d" "e")))
+  (assert-uim-false '(str-seq-partial? '("a" "b" "c" "d")
+                                       '("a" "b" "c")))
+  #f)
+
+
+
 (provide "test/util/test-string")

Reply via email to