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")