Author: yamakenz
Date: Wed Jul 11 02:38:10 2007
New Revision: 4699
Modified:
trunk/doc/COMPATIBILITY
trunk/scm/anthy-utf8.scm
trunk/scm/anthy.scm
trunk/scm/canna.scm
trunk/scm/mana.scm
trunk/scm/util.scm
trunk/test/test-util.scm
Log:
* scm/util.scm
- (sublist, sublist-rel):
* The meaning of second arg has been changed to correct one
* Optimize
* test/test-util.scm
- Revise tests for sublist and sublist-rel
* scm/anthy.scm
- (anthy-get-raw-candidate): Follow the specification changes
* scm/anthy-utf8.scm
- (anthy-utf8-get-raw-candidate): Ditto
* scm/mana.scm
- (mana-get-raw-candidate): Ditto
* scm/canna.scm
- (canna-get-raw-candidate): Ditto
* doc/COMPATIBILITY
- Update "Specification changes of utility procedures"
Modified: trunk/doc/COMPATIBILITY
==============================================================================
--- trunk/doc/COMPATIBILITY (original)
+++ trunk/doc/COMPATIBILITY Wed Jul 11 02:38:10 2007
@@ -61,7 +61,7 @@
Affects: uim developers, IM developers
Updates: Scheme API
Version: 1.5.0
-Revision: ac4693, ac4694
+Revision: ac4693, ac4694, ac4698, ac4699
Date: 2007-07-11
Modifier: YamaKen
Related:
@@ -69,6 +69,8 @@
Changes:
(changed) string-split
(changed) string-join
+ (changed) sublist
+ (changed) sublist-rel
Description:
Now string-split produces empty strings as follows. See
test-uim-utils.scm for further information.
@@ -76,6 +78,13 @@
uim 1.5: (string-split "hhh" "h") ==> ("" "" "" "")
The 2 arguments of string-join has been swapped to be compatible
with SRFI-13 string-join.
+ The meaning of 'end' arg of sublist and 'len' arg of sublist-rel has
+ been changed to correct one. See test-util.scm for further
+ information.
+ uim 1.4: (sublist '(1) 0 0) ==> (1)
+ (sublist-rel '(1) 0 0) ==> (1)
+ uim 1.5: (sublist '(1) 0 0) ==> ()
+ (sublist-rel '(1) 0 0) ==> ()
------------------------------------------------------------------------------
Summary: SRFI-1 procedures replacement
Affects: uim developers, IM developers
Modified: trunk/scm/anthy-utf8.scm
==============================================================================
--- trunk/scm/anthy-utf8.scm (original)
+++ trunk/scm/anthy-utf8.scm Wed Jul 11 02:38:10 2007
@@ -1374,7 +1374,7 @@
(len (length unconv)))
(if start
(anthy-make-raw-string
- (reverse (sublist raw-str start (+ start (- len 1))))
+ (reverse (sublist-rel raw-str start len))
(if (or
(= cand-idx anthy-candidate-type-halfwidth-alnum)
(= cand-idx
Modified: trunk/scm/anthy.scm
==============================================================================
--- trunk/scm/anthy.scm (original)
+++ trunk/scm/anthy.scm Wed Jul 11 02:38:10 2007
@@ -1369,7 +1369,7 @@
(len (length unconv)))
(if start
(anthy-make-raw-string
- (reverse (sublist raw-str start (+ start (- len 1))))
+ (reverse (sublist-rel raw-str start len))
(if (or
(= cand-idx anthy-candidate-type-halfwidth-alnum)
(= cand-idx
Modified: trunk/scm/canna.scm
==============================================================================
--- trunk/scm/canna.scm (original)
+++ trunk/scm/canna.scm Wed Jul 11 02:38:10 2007
@@ -1017,7 +1017,7 @@
(len (length unconv)))
(if start
(canna-make-raw-string
- (reverse (sublist raw-str start (+ start (- len 1))))
+ (reverse (sublist-rel raw-str start len))
(if (or
(= cand-idx canna-candidate-type-halfwidth-alnum)
(= cand-idx
Modified: trunk/scm/mana.scm
==============================================================================
--- trunk/scm/mana.scm (original)
+++ trunk/scm/mana.scm Wed Jul 11 02:38:10 2007
@@ -158,8 +158,8 @@
(preconv (ja-join-vu (string-to-list yomi)))
(unconv (ja-join-vu (sublist
(string-to-list yomi)
- (- (- yomi-len 1) (+ pos (- len 1)))
- (- (- yomi-len 1) pos))))
+ (- yomi-len (+ pos len))
+ (- yomi-len pos))))
(raw-str (reverse (mana-get-raw-str-seq mc))))
(cond
((= cand-idx mana-candidate-type-hiragana)
@@ -175,7 +175,7 @@
(len (length unconv)))
(if start
(mana-make-raw-string
- (reverse (sublist raw-str start (+ start (- len 1))))
+ (reverse (sublist-rel raw-str start len))
(if (or
(= cand-idx mana-candidate-type-halfwidth-alnum)
(= cand-idx
Modified: trunk/scm/util.scm
==============================================================================
--- trunk/scm/util.scm (original)
+++ trunk/scm/util.scm Wed Jul 11 02:38:10 2007
@@ -83,16 +83,19 @@
(and (car xs)
(apply proc-and (cdr xs))))))
-;; TODO: write test
+;; meaning of 'end' has been changed from uim 1.5.0. See
+;; doc/COMPATIBILITY and test-util.scm.
(define sublist
(lambda (lst start end)
- (list-tail (list-head lst (+ end 1))
- start)))
+ (take (drop lst start)
+ (- end start))))
-;; TODO: write test
+;; meaning of 'len' has been changed from uim 1.5.0. See
+;; doc/COMPATIBILITY and test-util.scm.
(define sublist-rel
(lambda (lst start len)
- (sublist lst start (+ start len))))
+ (take (drop lst start)
+ len)))
(define alist-replace
(lambda (kons alist)
@@ -158,19 +161,16 @@
(dest (dest-getter self)))
(apply method (cons dest (cdr args)))))))
-;; TODO: write test
(define safe-car
(lambda (pair)
(and (pair? pair)
(car pair))))
-;; TODO: write test
(define safe-cdr
(lambda (pair)
(and (pair? pair)
(cdr pair))))
-;; TODO: write test
(define assq-cdr
(lambda (key alist)
(safe-cdr (assq key alist))))
@@ -187,7 +187,6 @@
(define do-nothing (lambda args #f))
-;; TODO: write test
(define make-scm-pathname
(lambda (file)
(or (and (= (string->charcode file)
Modified: trunk/test/test-util.scm
==============================================================================
--- trunk/test/test-util.scm (original)
+++ trunk/test/test-util.scm Wed Jul 11 02:38:10 2007
@@ -420,75 +420,306 @@
(assert-false (uim-bool '(apply proc-and '(#t #f #t))))
(assert-false (uim-bool '(apply proc-and '(#t #t #f))))
(assert-true (uim-bool '(apply proc-and '(#t #t #t)))))
- ("test sublist"
+ ;; See "Specification changes of utility procedures" of doc/COMPATIBILITY
+;; ("test sublist (uim 1.4)"
+;; ;; 0
+;; (assert-equal '(1)
+;; (uim '(sublist lst 0 0)))
+;; (assert-equal '(1 "2")
+;; (uim '(sublist lst 0 1)))
+;; (assert-equal '(1 "2" three)
+;; (uim '(sublist lst 0 2)))
+;; (assert-equal '(1 "2" three (4))
+;; (uim '(sublist lst 0 3)))
+;; (assert-equal '(1 "2" three (4) 5)
+;; (uim '(sublist lst 0 4)))
+;; (assert-equal '(1 "2" three (4) 5 six "7" (8 8))
+;; (uim '(sublist lst 0 7)))
+;; (assert-equal '(1 "2" three (4) 5 six "7" (8 8) -9)
+;; (uim '(sublist lst 0 8)))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 0 9))))
+;; ;; 1
+;; (assert-equal '()
+;; (uim '(sublist lst 1 0)))
+;; (assert-equal '("2")
+;; (uim '(sublist lst 1 1)))
+;; (assert-equal '("2" three)
+;; (uim '(sublist lst 1 2)))
+;; (assert-equal '("2" three (4))
+;; (uim '(sublist lst 1 3)))
+;; (assert-equal '("2" three (4) 5)
+;; (uim '(sublist lst 1 4)))
+;; (assert-equal '("2" three (4) 5 six "7" (8 8))
+;; (uim '(sublist lst 1 7)))
+;; (assert-equal '("2" three (4) 5 six "7" (8 8) -9)
+;; (uim '(sublist lst 1 8)))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 1 9))))
+;; ;; 2
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 2 0))))
+;; (assert-equal '()
+;; (uim '(sublist lst 2 1)))
+;; (assert-equal '(three)
+;; (uim '(sublist lst 2 2)))
+;; (assert-equal '(three (4))
+;; (uim '(sublist lst 2 3)))
+;; (assert-equal '(three (4) 5)
+;; (uim '(sublist lst 2 4)))
+;; (assert-equal '(three (4) 5 six "7" (8 8))
+;; (uim '(sublist lst 2 7)))
+;; (assert-equal '(three (4) 5 six "7" (8 8) -9)
+;; (uim '(sublist lst 2 8)))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 2 9))))
+;; ;; 3
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 3 0))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 3 1))))
+;; (assert-equal '()
+;; (uim '(sublist lst 3 2)))
+;; (assert-equal '((4))
+;; (uim '(sublist lst 3 3)))
+;; (assert-equal '((4) 5)
+;; (uim '(sublist lst 3 4)))
+;; (assert-equal '((4) 5 six "7" (8 8))
+;; (uim '(sublist lst 3 7)))
+;; (assert-equal '((4) 5 six "7" (8 8) -9)
+;; (uim '(sublist lst 3 8)))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 3 9))))
+;; ;; 8
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 8 0))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 8 1))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 8 2))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 8 3))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 8 4))))
+;; (assert-equal '()
+;; (uim '(sublist lst 8 7)))
+;; (assert-equal '(-9)
+;; (uim '(sublist lst 8 8)))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 8 9))))
+;; ;; 9
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 9 0))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 9 1))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 9 2))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 9 3))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 9 4))))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 9 7))))
+;; (assert-equal '()
+;; (uim '(sublist lst 9 8)))
+;; (assert-error (lambda ()
+;; (uim '(sublist lst 9 9)))))
+;; ("test sublist-rel (uim 1.4)"
+;; ;; 0
+;; (assert-equal '(1)
+;; (uim '(sublist-rel lst 0 0)))
+;; (assert-equal '(1 "2")
+;; (uim '(sublist-rel lst 0 1)))
+;; (assert-equal '(1 "2" three)
+;; (uim '(sublist-rel lst 0 2)))
+;; (assert-equal '(1 "2" three (4))
+;; (uim '(sublist-rel lst 0 3)))
+;; (assert-equal '(1 "2" three (4) 5)
+;; (uim '(sublist-rel lst 0 4)))
+;; (assert-equal '(1 "2" three (4) 5 six "7" (8 8))
+;; (uim '(sublist-rel lst 0 7)))
+;; (assert-equal '(1 "2" three (4) 5 six "7" (8 8) -9)
+;; (uim '(sublist-rel lst 0 8)))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 0 9))))
+;; ;; 1
+;; (assert-equal '("2")
+;; (uim '(sublist-rel lst 1 0)))
+;; (assert-equal '("2" three)
+;; (uim '(sublist-rel lst 1 1)))
+;; (assert-equal '("2" three (4))
+;; (uim '(sublist-rel lst 1 2)))
+;; (assert-equal '("2" three (4) 5)
+;; (uim '(sublist-rel lst 1 3)))
+;; (assert-equal '("2" three (4) 5 six)
+;; (uim '(sublist-rel lst 1 4)))
+;; (assert-equal '("2" three (4) 5 six "7" (8 8) -9)
+;; (uim '(sublist-rel lst 1 7)))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 1 8))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 1 9))))
+;; ;; 2
+;; (assert-equal '(three)
+;; (uim '(sublist-rel lst 2 0)))
+;; (assert-equal '(three (4))
+;; (uim '(sublist-rel lst 2 1)))
+;; (assert-equal '(three (4) 5)
+;; (uim '(sublist-rel lst 2 2)))
+;; (assert-equal '(three (4) 5 six)
+;; (uim '(sublist-rel lst 2 3)))
+;; (assert-equal '(three (4) 5 six "7")
+;; (uim '(sublist-rel lst 2 4)))
+;; (assert-equal '(three (4) 5 six "7" (8 8) -9)
+;; (uim '(sublist-rel lst 2 6)))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 2 7))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 2 8))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 2 9))))
+;; ;; 3
+;; (assert-equal '((4))
+;; (uim '(sublist-rel lst 3 0)))
+;; (assert-equal '((4) 5)
+;; (uim '(sublist-rel lst 3 1)))
+;; (assert-equal '((4) 5 six)
+;; (uim '(sublist-rel lst 3 2)))
+;; (assert-equal '((4) 5 six "7")
+;; (uim '(sublist-rel lst 3 3)))
+;; (assert-equal '((4) 5 six "7" (8 8))
+;; (uim '(sublist-rel lst 3 4)))
+;; (assert-equal '((4) 5 six "7" (8 8) -9)
+;; (uim '(sublist-rel lst 3 5)))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 3 6))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 3 7))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 3 8))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 3 9))))
+;; ;; 8
+;; (assert-equal '(-9)
+;; (uim '(sublist-rel lst 8 0)))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 1))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 2))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 3))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 4))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 5))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 6))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 7))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 8))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 8 9))))
+;; ;; 9
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 0))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 1))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 2))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 3))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 4))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 5))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 6))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 7))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 8))))
+;; (assert-error (lambda ()
+;; (uim '(sublist-rel lst 9 9)))))
+
+ ;; See "Specification changes of utility procedures" of doc/COMPATIBILITY
+ ("test sublist (uim 1.5)"
;; 0
- (assert-equal '(1)
+ (assert-equal '()
(uim '(sublist lst 0 0)))
- (assert-equal '(1 "2")
+ (assert-equal '(1)
(uim '(sublist lst 0 1)))
- (assert-equal '(1 "2" three)
+ (assert-equal '(1 "2")
(uim '(sublist lst 0 2)))
- (assert-equal '(1 "2" three (4))
+ (assert-equal '(1 "2" three)
(uim '(sublist lst 0 3)))
- (assert-equal '(1 "2" three (4) 5)
+ (assert-equal '(1 "2" three (4))
(uim '(sublist lst 0 4)))
- (assert-equal '(1 "2" three (4) 5 six "7" (8 8))
+ (assert-equal '(1 "2" three (4) 5 six "7")
(uim '(sublist lst 0 7)))
- (assert-equal '(1 "2" three (4) 5 six "7" (8 8) -9)
+ (assert-equal '(1 "2" three (4) 5 six "7" (8 8))
(uim '(sublist lst 0 8)))
+ (assert-equal '(1 "2" three (4) 5 six "7" (8 8) -9)
+ (uim '(sublist lst 0 9)))
(assert-error (lambda ()
- (uim '(sublist lst 0 9))))
+ (uim '(sublist lst 0 10))))
;; 1
+ (assert-error (lambda ()
+ (uim '(sublist lst 1 0))))
(assert-equal '()
- (uim '(sublist lst 1 0)))
- (assert-equal '("2")
(uim '(sublist lst 1 1)))
- (assert-equal '("2" three)
+ (assert-equal '("2")
(uim '(sublist lst 1 2)))
- (assert-equal '("2" three (4))
+ (assert-equal '("2" three)
(uim '(sublist lst 1 3)))
- (assert-equal '("2" three (4) 5)
+ (assert-equal '("2" three (4))
(uim '(sublist lst 1 4)))
- (assert-equal '("2" three (4) 5 six "7" (8 8))
+ (assert-equal '("2" three (4) 5 six "7")
(uim '(sublist lst 1 7)))
- (assert-equal '("2" three (4) 5 six "7" (8 8) -9)
+ (assert-equal '("2" three (4) 5 six "7" (8 8))
(uim '(sublist lst 1 8)))
+ (assert-equal '("2" three (4) 5 six "7" (8 8) -9)
+ (uim '(sublist lst 1 9)))
(assert-error (lambda ()
- (uim '(sublist lst 1 9))))
+ (uim '(sublist lst 1 10))))
;; 2
(assert-error (lambda ()
(uim '(sublist lst 2 0))))
+ (assert-error (lambda ()
+ (uim '(sublist lst 2 1))))
(assert-equal '()
- (uim '(sublist lst 2 1)))
- (assert-equal '(three)
(uim '(sublist lst 2 2)))
- (assert-equal '(three (4))
+ (assert-equal '(three)
(uim '(sublist lst 2 3)))
- (assert-equal '(three (4) 5)
+ (assert-equal '(three (4))
(uim '(sublist lst 2 4)))
- (assert-equal '(three (4) 5 six "7" (8 8))
+ (assert-equal '(three (4) 5 six "7")
(uim '(sublist lst 2 7)))
- (assert-equal '(three (4) 5 six "7" (8 8) -9)
+ (assert-equal '(three (4) 5 six "7" (8 8))
(uim '(sublist lst 2 8)))
+ (assert-equal '(three (4) 5 six "7" (8 8) -9)
+ (uim '(sublist lst 2 9)))
(assert-error (lambda ()
- (uim '(sublist lst 2 9))))
+ (uim '(sublist lst 2 10))))
;; 3
(assert-error (lambda ()
(uim '(sublist lst 3 0))))
(assert-error (lambda ()
(uim '(sublist lst 3 1))))
+ (assert-error (lambda ()
+ (uim '(sublist lst 3 2))))
(assert-equal '()
- (uim '(sublist lst 3 2)))
- (assert-equal '((4))
(uim '(sublist lst 3 3)))
- (assert-equal '((4) 5)
+ (assert-equal '((4))
(uim '(sublist lst 3 4)))
+ (assert-equal '((4) 5)
+ (uim '(sublist lst 3 5)))
(assert-equal '((4) 5 six "7" (8 8))
- (uim '(sublist lst 3 7)))
- (assert-equal '((4) 5 six "7" (8 8) -9)
(uim '(sublist lst 3 8)))
+ (assert-equal '((4) 5 six "7" (8 8) -9)
+ (uim '(sublist lst 3 9)))
(assert-error (lambda ()
- (uim '(sublist lst 3 9))))
+ (uim '(sublist lst 3 10))))
;; 8
(assert-error (lambda ()
(uim '(sublist lst 8 0))))
@@ -500,12 +731,14 @@
(uim '(sublist lst 8 3))))
(assert-error (lambda ()
(uim '(sublist lst 8 4))))
+ (assert-error (lambda ()
+ (uim '(sublist lst 8 7))))
(assert-equal '()
- (uim '(sublist lst 8 7)))
- (assert-equal '(-9)
(uim '(sublist lst 8 8)))
+ (assert-equal '(-9)
+ (uim '(sublist lst 8 9)))
(assert-error (lambda ()
- (uim '(sublist lst 8 9))))
+ (uim '(sublist lst 8 10))))
;; 9
(assert-error (lambda ()
(uim '(sublist lst 9 0))))
@@ -519,79 +752,95 @@
(uim '(sublist lst 9 4))))
(assert-error (lambda ()
(uim '(sublist lst 9 7))))
+ (assert-error (lambda ()
+ (uim '(sublist lst 9 8))))
(assert-equal '()
- (uim '(sublist lst 9 8)))
+ (uim '(sublist lst 9 9)))
(assert-error (lambda ()
- (uim '(sublist lst 9 9)))))
- ("test sublist-rel"
+ (uim '(sublist lst 9 10)))))
+ ("test sublist-rel (uim 1.5)"
;; 0
- (assert-equal '(1)
+ (assert-error (lambda ()
+ (uim '(sublist-rel lst 0 -1))))
+ (assert-equal '()
(uim '(sublist-rel lst 0 0)))
- (assert-equal '(1 "2")
+ (assert-equal '(1)
(uim '(sublist-rel lst 0 1)))
- (assert-equal '(1 "2" three)
+ (assert-equal '(1 "2")
(uim '(sublist-rel lst 0 2)))
- (assert-equal '(1 "2" three (4))
+ (assert-equal '(1 "2" three)
(uim '(sublist-rel lst 0 3)))
- (assert-equal '(1 "2" three (4) 5)
+ (assert-equal '(1 "2" three (4))
(uim '(sublist-rel lst 0 4)))
+ (assert-equal '(1 "2" three (4) 5)
+ (uim '(sublist-rel lst 0 5)))
(assert-equal '(1 "2" three (4) 5 six "7" (8 8))
- (uim '(sublist-rel lst 0 7)))
- (assert-equal '(1 "2" three (4) 5 six "7" (8 8) -9)
(uim '(sublist-rel lst 0 8)))
+ (assert-equal '(1 "2" three (4) 5 six "7" (8 8) -9)
+ (uim '(sublist-rel lst 0 9)))
(assert-error (lambda ()
- (uim '(sublist-rel lst 0 9))))
+ (uim '(sublist-rel lst 0 10))))
;; 1
- (assert-equal '("2")
+ (assert-error (lambda ()
+ (uim '(sublist-rel lst 1 -1))))
+ (assert-equal '()
(uim '(sublist-rel lst 1 0)))
- (assert-equal '("2" three)
+ (assert-equal '("2")
(uim '(sublist-rel lst 1 1)))
- (assert-equal '("2" three (4))
+ (assert-equal '("2" three)
(uim '(sublist-rel lst 1 2)))
- (assert-equal '("2" three (4) 5)
+ (assert-equal '("2" three (4))
(uim '(sublist-rel lst 1 3)))
- (assert-equal '("2" three (4) 5 six)
+ (assert-equal '("2" three (4) 5)
(uim '(sublist-rel lst 1 4)))
+ (assert-equal '("2" three (4) 5 six)
+ (uim '(sublist-rel lst 1 5)))
(assert-equal '("2" three (4) 5 six "7" (8 8) -9)
- (uim '(sublist-rel lst 1 7)))
- (assert-error (lambda ()
- (uim '(sublist-rel lst 1 8))))
+ (uim '(sublist-rel lst 1 8)))
(assert-error (lambda ()
(uim '(sublist-rel lst 1 9))))
+ (assert-error (lambda ()
+ (uim '(sublist-rel lst 1 10))))
;; 2
- (assert-equal '(three)
+ (assert-error (lambda ()
+ (uim '(sublist-rel lst 2 -1))))
+ (assert-equal '()
(uim '(sublist-rel lst 2 0)))
- (assert-equal '(three (4))
+ (assert-equal '(three)
(uim '(sublist-rel lst 2 1)))
- (assert-equal '(three (4) 5)
+ (assert-equal '(three (4))
(uim '(sublist-rel lst 2 2)))
- (assert-equal '(three (4) 5 six)
+ (assert-equal '(three (4) 5)
(uim '(sublist-rel lst 2 3)))
- (assert-equal '(three (4) 5 six "7")
+ (assert-equal '(three (4) 5 six)
(uim '(sublist-rel lst 2 4)))
+ (assert-equal '(three (4) 5 six "7")
+ (uim '(sublist-rel lst 2 5)))
(assert-equal '(three (4) 5 six "7" (8 8) -9)
- (uim '(sublist-rel lst 2 6)))
- (assert-error (lambda ()
- (uim '(sublist-rel lst 2 7))))
+ (uim '(sublist-rel lst 2 7)))
(assert-error (lambda ()
(uim '(sublist-rel lst 2 8))))
(assert-error (lambda ()
(uim '(sublist-rel lst 2 9))))
+ (assert-error (lambda ()
+ (uim '(sublist-rel lst 2 10))))
;; 3
- (assert-equal '((4))
+ (assert-error (lambda ()
+ (uim '(sublist-rel lst 3 -1))))
+ (assert-equal '()
(uim '(sublist-rel lst 3 0)))
- (assert-equal '((4) 5)
+ (assert-equal '((4))
(uim '(sublist-rel lst 3 1)))
- (assert-equal '((4) 5 six)
+ (assert-equal '((4) 5)
(uim '(sublist-rel lst 3 2)))
- (assert-equal '((4) 5 six "7")
+ (assert-equal '((4) 5 six)
(uim '(sublist-rel lst 3 3)))
- (assert-equal '((4) 5 six "7" (8 8))
+ (assert-equal '((4) 5 six "7")
(uim '(sublist-rel lst 3 4)))
- (assert-equal '((4) 5 six "7" (8 8) -9)
+ (assert-equal '((4) 5 six "7" (8 8))
(uim '(sublist-rel lst 3 5)))
- (assert-error (lambda ()
- (uim '(sublist-rel lst 3 6))))
+ (assert-equal '((4) 5 six "7" (8 8) -9)
+ (uim '(sublist-rel lst 3 6)))
(assert-error (lambda ()
(uim '(sublist-rel lst 3 7))))
(assert-error (lambda ()
@@ -599,10 +848,12 @@
(assert-error (lambda ()
(uim '(sublist-rel lst 3 9))))
;; 8
- (assert-equal '(-9)
- (uim '(sublist-rel lst 8 0)))
(assert-error (lambda ()
- (uim '(sublist-rel lst 8 1))))
+ (uim '(sublist-rel lst 8 -1))))
+ (assert-equal '()
+ (uim '(sublist-rel lst 8 0)))
+ (assert-equal '(-9)
+ (uim '(sublist-rel lst 8 1)))
(assert-error (lambda ()
(uim '(sublist-rel lst 8 2))))
(assert-error (lambda ()
@@ -621,7 +872,9 @@
(uim '(sublist-rel lst 8 9))))
;; 9
(assert-error (lambda ()
- (uim '(sublist-rel lst 9 0))))
+ (uim '(sublist-rel lst 9 -1))))
+ (assert-equal '()
+ (uim '(sublist-rel lst 9 0)))
(assert-error (lambda ()
(uim '(sublist-rel lst 9 1))))
(assert-error (lambda ()
@@ -639,8 +892,7 @@
(assert-error (lambda ()
(uim '(sublist-rel lst 9 8))))
(assert-error (lambda ()
- (uim '(sublist-rel lst 9 9))))
- )
+ (uim '(sublist-rel lst 9 9)))))
("test list-head"
(assert-equal ()
(uim '(list-head lst 0)))