;;-*- mode: nendo; syntax: scheme -*- ;;; ;;; azik-verification.nnd - ローマ字ライブラリ部をDDSKKのskk-azik.elとベリファイをとる ;;; ;;; Copyright (c) 2010 Kiyoka Nishiyama ;;; ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions ;;; are met: ;;; ;;; 1. Redistributions of source code must retain the above copyright ;;; notice, this list of conditions and the following disclaimer. ;;; ;;; 2. Redistributions in binary form must reproduce the above copyright ;;; notice, this list of conditions and the following disclaimer in the ;;; documentation and/or other materials provided with the distribution. ;;; ;;; 3. Neither the name of the authors nor the names of its contributors ;;; may be used to endorse or promote products derived from this ;;; software without specific prior written permission. ;;; ;;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ;;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ;;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ;;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ;;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ;;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED ;;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ;;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ;;; LIABILITY, WHETHER IN CONTRACT, STRICT 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. ;;; ;;; $Id: ;;; (use nendo.test) (use sekka.roman-lib) (test-start "roman-lib") (load "./test/skk-azik-table.nnd") ;;=================================================================== (define skk-azik-roman->kana-alist (map (lambda (entry) (let* ((roman (first entry)) (target (third entry)) (target (if (pair? target) (cdr target) target))) (cons roman target))) skk-azik-additional-rom-kana-rule-list)) (define skk-azik-kana->roman-alist (map (lambda (x) (cons (cdr x) (car x))) skk-azik-roman->kana-alist)) ;;------------------------------------------------------------------- (test-section "verify roman => hiragana") (for-each (lambda (entry) (let ((kana (car entry)) (roman (cdr entry))) (test* (sprintf "romna => hiragana (\"%s\" \"%s\")" kana roman) #t (if (memv roman (hash-table-get sekka-kana->roman-hash-long-azik kana '())) #t #f)))) skk-azik-kana->roman-alist) ;;------------------------------------------------------------------- (test-section "verify roman => hiragana") (for-each (lambda (entry) (let1 roman (first entry) (test* (sprintf "romna => hiragana [%s]" roman) (assq-ref roman skk-azik-roman->kana-alist) (car (gen-roman->hiragana roman :azik))))) skk-azik-roman->kana-alist) ;;=================================================================== (test-end)