1
0
mirror of synced 2026-05-02 14:31:05 +00:00
Files
Interlisp.medley/internal/test/LANGUAGE/AUTO/INTERLISP-ISOPRS.TEST

191 lines
3.2 KiB
Plaintext

;;
;; Source:
;;
;; Created By: Bob CHERRY
;;
;; Creation Date: APR-2-87
;;
;; Last Update:
;;
;; Filed As: {ERIS}<LISPCORE>TEST>I.S.Oprs>ISOPRS.TEST
;;
;;
;; Syntax: Just run with DO-TEST
;;
;;
;; Function Description: Chapter 9 (IRM) Iterative Statements
;;
;;
;;
;; Argument(s): FORM - what is evaluated.
;;
;; Returns: depends on what is used to terminate execution.
;; Should return T
;;
(do-test "test FOR - IN - EQUAL funct"
(LET ((FOO1 '(A B C D E))
(FOO2 '((A) (B) (C)))
)
(IL:EQUAL (IL:for X IL:from 1 IL:to 3
IL:as Y IL:in FOO1
IL:COLLECT (IL:LIST Y)
)
FOO2
)
)
)
;;
;; Next Test
;;
(do-test "test FOR - WHILE - NOT - GREATERP funct"
(LET ((FOO1 '(A B C D E))
(FOO2 '((A) (B) (C)))
)
(IL:EQUAL (IL:for X IL:from 1 IL:to 5
IL:as Y IL:in FOO1
IL:COLLECT (IL:LIST Y)
IL:WHILE (IL:NOT (IL:GREATERP X 3))
)
FOO2
)
)
)
;;
;; Next Test
;;
(do-test "test FOR - WHILE - LESSP funct"
(LET ((FOO1 '(A B C D E))
(FOO2 '((A) (B) (C)))
)
(IL:EQUAL (IL:for X IL:from 1 IL:to 5
IL:as Y IL:in FOO1
IL:COLLECT (IL:LIST Y)
IL:WHILE (IL:LESSP X 4)
)
FOO2
)
)
)
;;
;; Next Test
;;
(do-test "test SMALLEST & LARGEST funct"
(LET ( (FOO1 '(7 15 1 3 9))
)
(AND (EQ 1
(IL:for X IL:from 1 IL:to 5
IL:as Y IL:in FOO1
IL:SMALLEST Y)
)
(EQ 15
(IL:for X IL:from 1 IL:to 5
IL:as Y IL:in FOO1
IL:LARGEST Y)
)
)
)
)
;;
;; Next Test
;;
(do-test "test UNTIL funct"
(LET ( (FOO1 '(1 4 9 16 25)
)
)
(EQUAL FOO1
(IL:for il:old X IL:from 1 IL:until (EQUAL x 6)
IL:COLLECT (IL:TIMES X X)
)
)
)
)
;;
;; Next Test
;;
(do-test "test FOR - BY funct"
(LET ((FOO1 '(A B C D E))
(FOO2 '(A B C))
)
(IL:EQUAL (IL:for X IL:from 1 IL:to 6 IL:by 2
IL:as Y IL:in FOO1
IL:COLLECT Y)
FOO2
)
)
)
;;
;; Next Test
;;
(do-test "test COLLECT - WHEN funct"
(LET ((FOO1 '(1 B 3 D 5))
(FOO2 '(1 3 5))
)
(IL:EQUAL (IL:for X IL:from 1 IL:to 5
IL:as Y IL:in FOO1
IL:COLLECT Y IL:when (IL:NUMBERP Y)
)
FOO2
)
)
)
;;
;; Next Test
;;
(do-test "test UNLESS funct"
(LET ((FOO1 '(1 B 3 D 5))
(FOO2 '(B D))
)
(IL:EQUAL (IL:for X IL:from 1 IL:to 5
IL:as Y IL:in FOO1
IL:COLLECT Y IL:unless (IL:NUMBERP Y)
)
FOO2
)
)
)
;;
;; Next Test
;;
(do-test "test REPEATWHILE - REPEATUNTIL funct"
(LET ((FOO1 '(1 B 3 D 5))
(FOO2 '(B D))
)
(AND (IL:EQUAL (IL:for X IL:from 1 IL:REPEATWHILE IL:NOT
(IL:EQUAL Y (CDR FOO2))
IL:as Y IL:in FOO1
IL:COLLECT Y IL:unless (IL:NUMBERP Y)
)
FOO2
)
(IL:EQUAL (IL:for X IL:from 1 IL:REPEATUNTIL
(IL:EQUAL Y (CDR FOO2))
IL:as Y IL:in FOO1
IL:COLLECT Y IL:unless (IL:NUMBERP Y)
)
FOO2
)
)
)
)
;;
;; Next Test
;;
(do-test "test I.S.OPR funct"
(LET ((FOO1 '(1 B 3 D 5))
(FOO2 '(B D))
)
(IL:I.S.OPR 'RATS
'(SETQ IL:$$VAL (IL:NCONC1 IL:$$VAL IL:BODY))
)
(AND (IL:EQUAL (IL:for X IL:from 1 IL:REPEATWHILE IL:NOT
(IL:EQUAL Y (CDR FOO2)
)
IL:as Y IL:in FOO1
IL:RATS Y IL:unless (IL:NUMBERP Y)
)
FOO2
)
)
)
)
STOP