Author: koutou
Date: Sat Mar 21 22:55:48 2009
New Revision: 5912

Added:
   trunk/test/util/test-rk.scm
      - copied, changed from r5911, /trunk/test/test-uim-util.scm
Removed:
   trunk/test/test-uim-util.scm

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


Copied: trunk/test/util/test-rk.scm (from r5911, /trunk/test/test-uim-util.scm)
==============================================================================
--- /trunk/test/test-uim-util.scm       (original)
+++ trunk/test/util/test-rk.scm Sat Mar 21 22:55:48 2009
@@ -1,5 +1,3 @@
-#!/usr/bin/env gosh
-
 ;;; Copyright (c) 2003-2009 uim Project http://code.google.com/p/uim/
 ;;;
 ;;; All rights reserved.
@@ -27,153 +25,158 @@
;;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ;;; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ;;; SUCH DAMAGE.
-;;;;
-
-;; These tests are passed at revision 5329 (new repository)
-
-(use test.unit)
+;;;

-(require "test/uim-test-utils")
+(define-module test.util.test-rk
+  (use test.unit.test-case)
+  (use test.uim-test))
+(select-module test.util.test-rk)
+
+(define (setup)
+  (uim-test-setup)
+  (uim-eval
+   '(define test-rk-rule '(((("a"). ()) ("あ" "ア" "ア"))
+                           ((("i"). ()) ("い" "イ" "イ"))
+                           ((("u"). ()) ("う" "ウ" "ウ"))
+                           ((("e"). ()) ("え" "エ" "エ"))
+                           ((("o"). ()) ("お" "オ" "オ"))
+
+                           ((("k" "a"). ()) ("か" "カ" "カ"))
+                           ((("k" "i"). ()) ("き" "キ" "キ"))
+                           ((("k" "u"). ()) ("く" "ク" "ク"))
+                           ((("k" "e"). ()) ("け" "ケ" "ケ"))
+                           ((("k" "o"). ()) ("こ" "コ" "コ"))
+                           ((("k" "y" "a"). ()) ("きゃ" "キャ" "キャ"))
+                           ((("k" "y" "i"). ()) ("きぃ" "キィ" "キィ"))
+                           ((("k" "y" "u"). ()) ("きゅ" "キュ" "キュ"))
+                           ((("k" "y" "e"). ()) ("きぇ" "キェ" "キェ"))
+                           ((("k" "y" "o"). ()) ("きょ" "キョ" "キョ"))
+
+                           ((("s" "s"). ("s")) ("っ" "ッ" "ッ"))
+                           ((("s" "a"). ()) ("さ" "サ" "サ"))
+                           ((("s" "i"). ()) ("し" "シ" "シ"))
+                           ((("s" "u"). ()) ("す" "ス" "ス"))
+                           ((("s" "e"). ()) ("せ" "セ" "セ"))
+                           ((("s" "o"). ()) ("そ" "ソ" "ソ"))
+
+                           ((("p" "p"). ("p")) ("っ" "ッ" "ッ"))))))
+
+(define (teardown)
+  (uim-test-teardown))
+
+(define (test-rk-lib-find-seq)
+  ;; non existence seq does not match
+  (assert-false (uim-bool '(rk-lib-find-seq () test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-seq '("") test-rk-rule)))
+
+  ;; test first rule
+  (assert-equal '((("a"). ())("あ" "ア" "ア"))
+                (uim '(rk-lib-find-seq '("a") test-rk-rule)))
+
+  (assert-equal '((("i"). ())("い" "イ" "イ"))
+                (uim '(rk-lib-find-seq '("i") test-rk-rule)))
+  (assert-equal '((("o"). ())("お" "オ" "オ"))
+                (uim '(rk-lib-find-seq '("o") test-rk-rule)))
+  ;; non existence seq does not match
+  (assert-false (uim-bool '(rk-lib-find-seq '("z") test-rk-rule)))
+
+  (assert-equal '((("k" "y" "a"). ())("きゃ" "キャ" "キャ"))
+                (uim '(rk-lib-find-seq '("k" "y" "a") test-rk-rule)))
+  (assert-equal '((("k" "y" "i"). ())("きぃ" "キィ" "キィ"))
+                (uim '(rk-lib-find-seq '("k" "y" "i") test-rk-rule)))
+  (assert-equal '((("k" "y" "o"). ())("きょ" "キョ" "キョ"))
+                (uim '(rk-lib-find-seq '("k" "y" "o") test-rk-rule)))
+  ;; partial seq does not match
+  (assert-false (uim-bool '(rk-lib-find-seq '("k" "y") test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-seq '("k" "y" "y") test-rk-rule)))
+
+  (assert-equal '((("s" "s"). ("s"))("っ" "ッ" "ッ"))
+                (uim '(rk-lib-find-seq '("s" "s") test-rk-rule)))
+  ;; partial seq does not match
+  (assert-false (uim-bool '(rk-lib-find-seq '("s") test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-seq '("s" "s" "s") test-rk-rule)))
+
+  ;; test last rule
+  (assert-equal '((("p" "p"). ("p"))("っ" "ッ" "ッ"))
+                (uim '(rk-lib-find-seq '("p" "p") test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-seq '("p") test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-seq '("p" "p" "p") test-rk-rule)))
+  #f)
+
+(define (test-rk-lib-find-partial-seq)
+  ;; null sequence matches first rule
+  (assert-equal '((("a"). ())("あ" "ア" "ア"))
+                (uim '(rk-lib-find-partial-seq () test-rk-rule)))
+  ;; non existence seq does not match
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("") test-rk-rule)))
+
+  ;; test first rule: exact key does not match
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("a") test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("i") test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("o") test-rk-rule)))
+  ;; non existence seq does not match
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("z") test-rk-rule)))
+
+  ;; exact key does not match
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("k" "y" "a")
+                                                    test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("k" "y" "i")
+                                                    test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("k" "y" "o")
+                                                    test-rk-rule)))
+  ;; partial seq matches first entry
+  (assert-equal '((("k" "a"). ())("か" "カ" "カ"))
+                (uim '(rk-lib-find-partial-seq '("k") test-rk-rule)))
+  (assert-equal '((("k" "y" "a"). ())("きゃ" "キャ" "キャ"))
+                (uim '(rk-lib-find-partial-seq '("k" "y") test-rk-rule)))
+  ;; non existence seq does not match
+ (assert-false (uim-bool '(rk-lib-find-partial-seq '("k" "y" "y") test-rk-rule)))
+
+  ;; exact key does not match
+ (assert-false (uim-bool '(rk-lib-find-partial-seq '("s" "s") test-rk-rule)))
+  ;; partial match
+  (assert-equal '((("s" "s"). ("s"))("っ" "ッ" "ッ"))
+                (uim '(rk-lib-find-partial-seq '("s") test-rk-rule)))
+  ;; non existence seq does not match
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("s" "s" "s")
+                                                    test-rk-rule)))
+
+  ;; test last rule
+ (assert-false (uim-bool '(rk-lib-find-partial-seq '("p" "p") test-rk-rule)))
+  (assert-equal '((("p" "p"). ("p"))("っ" "ッ" "ッ"))
+                (uim '(rk-lib-find-partial-seq '("p") test-rk-rule)))
+  (assert-false (uim-bool '(rk-lib-find-partial-seq '("p" "p" "p")
+                                                    test-rk-rule)))
+  #f)
+
+(define (test-rk-lib-expect-seq)
+  (assert-equal '("p" "s" "s" "s" "s" "s" "s"
+                  "k" "k" "k" "k" "k" "k" "k" "k" "k" "k"
+                  "o" "e" "u" "i" "a")
+                (uim '(rk-lib-expect-seq () test-rk-rule)))
+  (assert-equal '("y" "y" "y" "y" "y" "o" "e" "u" "i" "a")
+                (uim '(rk-lib-expect-seq '("k") test-rk-rule)))
+  (assert-equal '("o" "e" "u" "i" "a")
+                (uim '(rk-lib-expect-seq '("k" "y") test-rk-rule)))
+  (assert-equal '("o" "e" "u" "i" "a")
+                (uim '(rk-lib-expect-seq '("k" "y") test-rk-rule)))
+  ;; rk-lib-expect-seq returns null list on exact match
+  (assert-equal ()
+                (uim '(rk-lib-expect-seq '("k" "y" "a") test-rk-rule)))
+  ;; rk-lib-expect-seq returns null list on fail
+  (assert-equal ()
+                (uim '(rk-lib-expect-seq '("k" "y" "a" "a") test-rk-rule)))
+  (assert-equal '("o" "e" "u" "i" "a")
+                (uim '(rk-lib-expect-seq '("k" "y") test-rk-rule)))
+
+  (assert-equal '("o" "e" "u" "i" "a" "s")
+                (uim '(rk-lib-expect-seq '("s") test-rk-rule)))
+  (assert-equal ()
+                (uim '(rk-lib-expect-seq '("s" "s") test-rk-rule)))
+  (assert-equal '("p")
+                (uim '(rk-lib-expect-seq '("p") test-rk-rule)))
+  (assert-equal ()
+                (uim '(rk-lib-expect-seq '("p" "p") test-rk-rule)))
+  #f)

-;; this test assumes that string encoding of Gauche is configured as
-;; UTF-8
-(define-uim-test-case "testcase uim-util rk"
-  (setup
-   (lambda ()
-     (uim '(define test-rk-rule '(((("a"). ())("あ" "ア" "ア"))
-                                 ((("i"). ())("い" "イ" "イ"))
-                                 ((("u"). ())("う" "ウ" "ウ"))
-                                 ((("e"). ())("え" "エ" "エ"))
-                                 ((("o"). ())("お" "オ" "オ"))
-                               
-                                 ((("k" "a"). ())("か" "カ" "カ"))
-                                 ((("k" "i"). ())("き" "キ" "キ"))
-                                 ((("k" "u"). ())("く" "ク" "ク"))
-                                 ((("k" "e"). ())("け" "ケ" "ケ"))
-                                 ((("k" "o"). ())("こ" "コ" "コ"))
-                                 ((("k" "y" "a"). ())("きゃ" "キャ" "キャ"))
-                                 ((("k" "y" "i"). ())("きぃ" "キィ" "キィ"))
-                                 ((("k" "y" "u"). ())("きゅ" "キュ" "キュ"))
-                                 ((("k" "y" "e"). ())("きぇ" "キェ" "キェ"))
-                                 ((("k" "y" "o"). ())("きょ" "キョ" "キョ"))
-                               
-                                 ((("s" "s"). ("s"))("っ" "ッ" "ッ"))
-                                 ((("s" "a"). ())("さ" "サ" "サ"))
-                                 ((("s" "i"). ())("し" "シ" "シ"))
-                                 ((("s" "u"). ())("す" "ス" "ス"))
-                                 ((("s" "e"). ())("せ" "セ" "セ"))
-                                 ((("s" "o"). ())("そ" "ソ" "ソ"))
-                               
-                                 ((("p" "p"). ("p"))("っ" "ッ" "ッ")))))))
-
-  ("test rk-lib-find-seq"
-   ;; non existence seq does not match
-   (assert-false (uim-bool '(rk-lib-find-seq () test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-seq '("") test-rk-rule)))
-
-   ;; test first rule
-   (assert-equal '((("a"). ())("あ" "ア" "ア"))
-                (uim '(rk-lib-find-seq '("a") test-rk-rule)))
-
-   (assert-equal '((("i"). ())("い" "イ" "イ"))
-                (uim '(rk-lib-find-seq '("i") test-rk-rule)))
-   (assert-equal '((("o"). ())("お" "オ" "オ"))
-                (uim '(rk-lib-find-seq '("o") test-rk-rule)))
-   ;; non existence seq does not match
-   (assert-false (uim-bool '(rk-lib-find-seq '("z") test-rk-rule)))
-
-   (assert-equal '((("k" "y" "a"). ())("きゃ" "キャ" "キャ"))
-                (uim '(rk-lib-find-seq '("k" "y" "a") test-rk-rule)))
-   (assert-equal '((("k" "y" "i"). ())("きぃ" "キィ" "キィ"))
-                (uim '(rk-lib-find-seq '("k" "y" "i") test-rk-rule)))
-   (assert-equal '((("k" "y" "o"). ())("きょ" "キョ" "キョ"))
-                (uim '(rk-lib-find-seq '("k" "y" "o") test-rk-rule)))
-   ;; partial seq does not match
-   (assert-false (uim-bool '(rk-lib-find-seq '("k" "y") test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-seq '("k" "y" "y") test-rk-rule)))
-
-   (assert-equal '((("s" "s"). ("s"))("っ" "ッ" "ッ"))
-                (uim '(rk-lib-find-seq '("s" "s") test-rk-rule)))
-   ;; partial seq does not match
-   (assert-false (uim-bool '(rk-lib-find-seq '("s") test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-seq '("s" "s" "s") test-rk-rule)))
-
-   ;; test last rule
-   (assert-equal '((("p" "p"). ("p"))("っ" "ッ" "ッ"))
-                (uim '(rk-lib-find-seq '("p" "p") test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-seq '("p") test-rk-rule)))
- (assert-false (uim-bool '(rk-lib-find-seq '("p" "p" "p") test-rk-rule))))
-
-  ("test rk-lib-find-partial-seq"
-   ;; null sequence matches first rule
-   (assert-equal '((("a"). ())("あ" "ア" "ア"))
-                (uim '(rk-lib-find-partial-seq () test-rk-rule)))
-   ;; non existence seq does not match
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("") test-rk-rule)))
-
-   ;; test first rule: exact key does not match
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("a") test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("i") test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("o") test-rk-rule)))
-   ;; non existence seq does not match
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("z") test-rk-rule)))
-
-   ;; exact key does not match
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("k" "y" "a")
-                                                    test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("k" "y" "i")
-                                                    test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("k" "y" "o")
-                                                    test-rk-rule)))
-   ;; partial seq matches first entry
-   (assert-equal '((("k" "a"). ())("か" "カ" "カ"))
-                (uim '(rk-lib-find-partial-seq '("k") test-rk-rule)))
-   (assert-equal '((("k" "y" "a"). ())("きゃ" "キャ" "キャ"))
-                (uim '(rk-lib-find-partial-seq '("k" "y") test-rk-rule)))
-   ;; non existence seq does not match
- (assert-false (uim-bool '(rk-lib-find-partial-seq '("k" "y" "y") test-rk-rule)))
-
-   ;; exact key does not match
- (assert-false (uim-bool '(rk-lib-find-partial-seq '("s" "s") test-rk-rule)))
-   ;; partial match
-   (assert-equal '((("s" "s"). ("s"))("っ" "ッ" "ッ"))
-                (uim '(rk-lib-find-partial-seq '("s") test-rk-rule)))
-   ;; non existence seq does not match
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("s" "s" "s")
-                                                    test-rk-rule)))
-
-   ;; test last rule
- (assert-false (uim-bool '(rk-lib-find-partial-seq '("p" "p") test-rk-rule)))
-   (assert-equal '((("p" "p"). ("p"))("っ" "ッ" "ッ"))
-                (uim '(rk-lib-find-partial-seq '("p") test-rk-rule)))
-   (assert-false (uim-bool '(rk-lib-find-partial-seq '("p" "p" "p")
-                                                    test-rk-rule))))
-
-  ("test rk-lib-expect-seq"
-   (assert-equal '("p" "s" "s" "s" "s" "s" "s"
-                  "k" "k" "k" "k" "k" "k" "k" "k" "k" "k"
-                  "o" "e" "u" "i" "a")
-                (uim '(rk-lib-expect-seq () test-rk-rule)))
-   (assert-equal '("y" "y" "y" "y" "y" "o" "e" "u" "i" "a")
-                (uim '(rk-lib-expect-seq '("k") test-rk-rule)))
-   (assert-equal '("o" "e" "u" "i" "a")
-                (uim '(rk-lib-expect-seq '("k" "y") test-rk-rule)))
-   (assert-equal '("o" "e" "u" "i" "a")
-                (uim '(rk-lib-expect-seq '("k" "y") test-rk-rule)))
-   ;; rk-lib-expect-seq returns null list on exact match
-   (assert-equal ()
-                (uim '(rk-lib-expect-seq '("k" "y" "a") test-rk-rule)))
-   ;; rk-lib-expect-seq returns null list on fail
-   (assert-equal ()
-                (uim '(rk-lib-expect-seq '("k" "y" "a" "a") test-rk-rule)))
-   (assert-equal '("o" "e" "u" "i" "a")
-                (uim '(rk-lib-expect-seq '("k" "y") test-rk-rule)))
-
-   (assert-equal '("o" "e" "u" "i" "a" "s")
-                (uim '(rk-lib-expect-seq '("s") test-rk-rule)))
-   (assert-equal ()
-                (uim '(rk-lib-expect-seq '("s" "s") test-rk-rule)))
-   (assert-equal '("p")
-                (uim '(rk-lib-expect-seq '("p") test-rk-rule)))
-   (assert-equal ()
-                (uim '(rk-lib-expect-seq '("p" "p") test-rk-rule)))))
+(provide "test/util/test-rk")

Reply via email to