1
0
mirror of synced 2026-02-01 06:32:47 +00:00
Files
Interlisp.medley/internal/test/LANGUAGE/AUTO/STRING.TEST

147 lines
3.4 KiB
Plaintext

;; Functions To Be Tested: All of chapter 4 of the IRM
;;
;; Source: IRM, p 4.1
;;
;; Chapter 4: Strings
;;
;; Created By: Henry Cate III
;;
;; Creation Date: March 23, 1987
;;
;; Last Update:
;;
;; Filed As: {eris}<lispcore>test>DataTypes>Strings.test
;;
;;
(do-test "test strequal"
(and
(eq T (il:strequal "ABC" "ABC"))
(eq nil (il:strequal "ABC" "def"))
))
(do-test "test string-equal"
(and
(eq T (il:string-equal "ABC" "ABC"))
(eq nil (il:string-equal "ABC" "def"))
(eq T (il:string-equal "ABC" 'abc))
(eq T (il:string-equal "ABC" "AbC"))
))
(do-test "test allocstring"
(let* ((tempx "old string"))
(and
(equal "AAAAA" (il:allocstring 5 'a))
(equal "CCCCCCCCCC" (il:allocstring 10 'C))
(equal "****" (il:allocstring 4 '*))
(equal "...." (il:allocstring 4 '.))
(equal "HHH" (il:allocstring 3 'h tempx))
(equal "HHH" tempx)
)))
(do-test "test mkstring"
(and
(equal "ABC" (il:mkstring "ABC"))
(equal "(A B C)" (il:mkstring '(a b c)))
(equal "NIL" (il:mkstring nil))
))
(do-test "test nchars"
(and
(equal 3 (il:nchars 'ABC))
(equal 5 (il:nchars "ABC" T))
))
(do-test "test substring"
(and
(equal "DEF" (il:substring "ABCDEFG" 4 6))
(equal "C" (il:substring "ABCDEFG" 3 3))
(equal "CDEFG" (il:substring "ABCDEFG" 3 nil))
(equal "DEF" (il:substring "ABCDEFG" 4 -2))
(equal NIL (il:substring "ABCDEFG" 6 4))
(equal NIL (il:substring "ABCDEFG" 4 9))
(equal "B C" (il:substring '(a b c) 4 6))
))
(do-test "test gnc"
(let* ((tempx "abcdefg"))
(and
(equal "a" (il:mkstring (il:gnc tempx)))
(equal "bcdefg" tempx)
(equal "b" (il:mkstring (il:gnc tempx)))
(equal "cdefg" tempx)
)))
(do-test "test glc"
(let* ((tempx "abcdefg"))
(and
(equal "g" (il:mkstring (il:glc tempx)))
(equal "abcdef" tempx)
(equal "f" (il:mkstring (il:glc tempx)))
(equal "abcde" tempx)
)))
(do-test "test concat"
(and
(equal "abcDEF" (il:concat "abc" "DEF"))
(equal "abcDEFGHI" (il:concat "abc" 'DEF "GHI"))
(equal "(A B C)ABC" (il:concat '(a b c) "ABC"))
))
(do-test "test concatlist"
(and
(equal "AB(C D)EF" (il:concatlist '(A B (C D) "EF")))
))
(do-test "test rplstring"
(and
(equal "ABCEND" (il:rplstring "ABCDEF" -3 "END"))
(equal "ABC(A B C)K" (il:rplstring "ABCDEFGHIJK" 4 '(A B C)))
))
(do-test "test rplcharcode"
(and
(equal "ABFDEF" (il:rplcharcode "ABCDEF" 3 (il:charcode F)))
(equal "ABCDXF" (il:rplcharcode "ABCDEF" -2 (il:charcode X)))
))
(do-test "test strpos"
(and
(eq 4 (il:strpos "ABC" "XYZABCDEF"))
(eq NIL (il:strpos "ABC" "XYZABCDEF" 5))
(eq 10 (il:strpos "ABC" "XYZABCDEFABC" 5))
(eq 4 (il:strpos "A&C&" "XYZABCDEF" NIL '&))
(eq NIL (il:strpos "DEF&" "XYZABCDEF" NIL '&))
(eq NIL (il:strpos "ABC" "XYZABCDEF" NIL NIL T))
(eq 4 (il:strpos "ABC" "XYZABCDEF" 4 NIL T))
(eq 7 (il:strpos "ABC" "XYZABCDEFABC" NIL NIL NIL T))
(eq 2 (il:strpos "A" "A" NIL NIL NIL T))
))
(do-test "test strposl"
(and
(eq 4 (il:strposl '(A B C) "XYZBCD"))
(eq 5 (il:strposl '(A B C) "XYZBCD" 5))
(eq 4 (il:strposl '(A B C) "ABCDEF" nil T))
(eq 3 (il:strposl '(A B C D) "XYZBCD" nil T T))
))
STOP