856 lines
42 KiB
Plaintext
856 lines
42 KiB
Plaintext
;; Function To Be Tested: ROTATEF
|
|
;;
|
|
;; Source: Steele's book
|
|
;; Section 7.2: Generalized Varibles Page: 93
|
|
;;
|
|
;; Created By: Jim Blum
|
|
;;
|
|
;;
|
|
;; Creation Date: Nov 4, 1986
|
|
;;
|
|
;; Last Update: Nov 25, 1986, Changes were made to ROTATEF-PUTHSH and
|
|
;; ROTATEF-CHAR by John Park
|
|
;;
|
|
;;
|
|
;; Filed As: {ERIS}<LISPCORE>CML>TEST>7-2-ROTATEF.TEST
|
|
;;
|
|
;;
|
|
;; Syntax: (rotatef {place}*)
|
|
;;
|
|
;;
|
|
;; Function Description:
|
|
;;
|
|
;; Each place form may be any form acceptable as a generalized variable
|
|
;; to setf. In the form (rotatef place1 place2 ... placen), the values
|
|
;; in place1 through placen are accessed and saved. Values 2 through n
|
|
;; and value 1 are then store into place1 through placen. It is as if all
|
|
;; the places form an end-around shift register that is rotated one place
|
|
;; to the left, with value of place1 being shifted around the end to
|
|
;; placen. Note that (rotatef place1 place2) exchanges the contents of
|
|
;; place1 and place2.
|
|
;;
|
|
;;
|
|
;; Argument(s): PLACE - when evaluated accesses a data object in
|
|
;; some location and "inverts" it to produce
|
|
;; corresponding form to update the location
|
|
;;
|
|
;;
|
|
;; Returns: NIL
|
|
;;
|
|
;;
|
|
|
|
(DO-TEST ROTATEF-OF-A-SYMBOL
|
|
(AND (SETQ FOO 1)
|
|
(SETQ BAR 2)
|
|
(SETQ BAZ 3)
|
|
(SETQ BLETCH 4)
|
|
(NOT (ROTATEF BAR FOO BAZ BLETCH))
|
|
(EQ FOO 3) (EQ BAR 1) (EQ BAZ 4)
|
|
(EQ BLETCH 2)))
|
|
(DO-TEST ROTATEF-CAR
|
|
(AND (SETQ FOO '(A . A))
|
|
(SETQ BAR '(B . B))
|
|
(SETQ BAZ '(C . C))
|
|
(SETQ BLETCH '(D . D))
|
|
(NOT (ROTATEF (CAR FOO) (CAR BAR) (CAR BAZ) (CAR BLETCH)))
|
|
(EQUAL FOO '(B . A))
|
|
(EQUAL BAR '(C . B))
|
|
(EQUAL BAZ '(D . C))
|
|
(EQUAL BLETCH '(A . D))))
|
|
(DO-TEST ROTATEF-CDR
|
|
(AND (SETQ FOO '(A . A))
|
|
(SETQ BAR '(B . B))
|
|
(SETQ BAZ '(C . C))
|
|
(SETQ BLETCH '(D . D))
|
|
(NOT (ROTATEF (CDR FOO) (CDR BAR) (CDR BAZ) (CDR BLETCH)))
|
|
(EQUAL FOO '(A . B))
|
|
(EQUAL BAR '(B . C))
|
|
(EQUAL BAZ '(C . D))
|
|
(EQUAL BLETCH '(D . A))))
|
|
(DO-TEST ROTATEF-CAAR
|
|
(AND (SETQ FOO '((A . B) C . D))
|
|
(SETQ BAR '((E . F) G . H))
|
|
(SETQ BAZ '((I . J) K . L))
|
|
(SETQ BLETCH '((M . N) O . P))
|
|
(NOT (ROTATEF (CAAR FOO) (CAAR BAR) (CAAR BAZ) (CAAR BLETCH)))
|
|
(EQUAL FOO '((E . B) C . D))
|
|
(EQUAL BAR '((I . F) G . H))
|
|
(EQUAL BAZ '((M . J) K . L))
|
|
(EQUAL BLETCH '((A . N) O . P))))
|
|
(DO-TEST ROTATEF-CADR
|
|
(AND (SETQ FOO '((A . B) C . D))
|
|
(SETQ BAR '((E . F) G . H))
|
|
(SETQ BAZ '((I . J) K . L))
|
|
(SETQ BLETCH '((M . N) O . P))
|
|
(NOT (ROTATEF (CADR FOO) (CADR BAR) (CADR BAZ) (CADR BLETCH)))
|
|
(EQUAL FOO '((A . B) G . D))
|
|
(EQUAL BAR '((E . F) K . H))
|
|
(EQUAL BAZ '((I . J) O . L))
|
|
(EQUAL BLETCH '((M . N) C . P))))
|
|
(DO-TEST ROTATEF-CDAR
|
|
(AND (SETQ FOO '((A . B) C . D))
|
|
(SETQ BAR '((E . F) G . H))
|
|
(SETQ BAZ '((I . J) K . L))
|
|
(SETQ BLETCH '((M . N) O . P))
|
|
(NOT (ROTATEF (CDAR FOO) (CDAR BAR) (CDAR BAZ) (CDAR BLETCH)))
|
|
(EQUAL FOO '((A . F) C . D))
|
|
(EQUAL BAR '((E . J) G . H))
|
|
(EQUAL BAZ '((I . N) K . L))
|
|
(EQUAL BLETCH '((M . B) O . P))))
|
|
(DO-TEST ROTATEF-CDDR
|
|
(AND (SETQ FOO '((A . B) C . D))
|
|
(SETQ BAR '((E . F) G . H))
|
|
(SETQ BAZ '((I . J) K . L))
|
|
(SETQ BLETCH '((M . N) O . P))
|
|
(NOT (ROTATEF (CDDR FOO) (CDDR BAR) (CDDR BAZ) (CDDR BLETCH)))
|
|
(EQUAL FOO '((A . B) C . H))
|
|
(EQUAL BAR '((E . F) G . L))
|
|
(EQUAL BAZ '((I . J) K . P))
|
|
(EQUAL BLETCH '((M . N) O . D))))
|
|
(DO-TEST ROTATEF-CAAAR
|
|
(AND (SETQ FOO '(((A . B) C . D) (E . F) G . H))
|
|
(SETQ BAR '(((I . J) K . L) (M . N) O . P))
|
|
(SETQ BAZ '(((Q . R) S . T) (U . V) W . X))
|
|
(SETQ BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . 8))
|
|
(NOT (ROTATEF (CAAAR FOO) (CAAAR BAR) (CAAAR BAZ) (CAAAR BLETCH)))
|
|
(EQUAL FOO '(((I . B) C . D) (E . F) G . H))
|
|
(EQUAL BAR '(((Q . J) K . L) (M . N) O . P))
|
|
(EQUAL BAZ '(((1 . R) S . T) (U . V) W . X))
|
|
(EQUAL BLETCH '(((A . 2) 3 . 4) (5 . 6) 7 . 8))))
|
|
(DO-TEST ROTATEF-CAADR
|
|
(AND (SETQ FOO '(((A . B) C . D) (E . F) G . H))
|
|
(SETQ BAR '(((I . J) K . L) (M . N) O . P))
|
|
(SETQ BAZ '(((Q . R) S . T) (U . V) W . X))
|
|
(SETQ BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . 8))
|
|
(NOT (ROTATEF (CAADR FOO) (CAADR BAR) (CAADR BAZ) (CAADR BLETCH)))
|
|
(EQUAL FOO '(((A . B) C . D) (M . F) G . H))
|
|
(EQUAL BAR '(((I . J) K . L) (U . N) O . P))
|
|
(EQUAL BAZ '(((Q . R) S . T) (5 . V) W . X))
|
|
(EQUAL BLETCH '(((1 . 2) 3 . 4) (E . 6) 7 . 8))))
|
|
(DO-TEST ROTATEF-CADAR
|
|
(AND (SETQ FOO '(((A . B) C . D) (E . F) G . H))
|
|
(SETQ BAR '(((I . J) K . L) (M . N) O . P))
|
|
(SETQ BAZ '(((Q . R) S . T) (U . V) W . X))
|
|
(SETQ BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . 8))
|
|
(NOT (ROTATEF (CADAR FOO) (CADAR BAR) (CADAR BAZ) (CADAR BLETCH)))
|
|
(EQUAL FOO '(((A . B) K . D) (E . F) G . H))
|
|
(EQUAL BAR '(((I . J) S . L) (M . N) O . P))
|
|
(EQUAL BAZ '(((Q . R) 3 . T) (U . V) W . X))
|
|
(EQUAL BLETCH '(((1 . 2) C . 4) (5 . 6) 7 . 8))))
|
|
(DO-TEST ROTATEF-CADDR
|
|
(AND (SETQ FOO '(((A . B) C . D) (E . F) G . H))
|
|
(SETQ BAR '(((I . J) K . L) (M . N) O . P))
|
|
(SETQ BAZ '(((Q . R) S . T) (U . V) W . X))
|
|
(SETQ BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . 8))
|
|
(NOT (ROTATEF (CADDR FOO) (CADDR BAR) (CADDR BAZ) (CADDR BLETCH)))
|
|
(EQUAL FOO '(((A . B) C . D) (E . F) O . H))
|
|
(EQUAL BAR '(((I . J) K . L) (M . N) W . P))
|
|
(EQUAL BAZ '(((Q . R) S . T) (U . V) 7 . X))
|
|
(EQUAL BLETCH '(((1 . 2) 3 . 4) (5 . 6) G . 8))))
|
|
(DO-TEST ROTATEF-CDAAR
|
|
(AND (SETQ FOO '(((A . B) C . D) (E . F) G . H))
|
|
(SETQ BAR '(((I . J) K . L) (M . N) O . P))
|
|
(SETQ BAZ '(((Q . R) S . T) (U . V) W . X))
|
|
(SETQ BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . 8))
|
|
(NOT (ROTATEF (CDAAR FOO) (CDAAR BAR) (CDAAR BAZ) (CDAAR BLETCH)))
|
|
(EQUAL FOO '(((A . J) C . D) (E . F) G . H))
|
|
(EQUAL BAR '(((I . R) K . L) (M . N) O . P))
|
|
(EQUAL BAZ '(((Q . 2) S . T) (U . V) W . X))
|
|
(EQUAL BLETCH '(((1 . B) 3 . 4) (5 . 6) 7 . 8))))
|
|
(DO-TEST ROTATEF-CDADR
|
|
(AND (SETQ FOO '(((A . B) C . D) (E . F) G . H))
|
|
(SETQ BAR '(((I . J) K . L) (M . N) O . P))
|
|
(SETQ BAZ '(((Q . R) S . T) (U . V) W . X))
|
|
(SETQ BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . 8))
|
|
(NOT (ROTATEF (CDADR FOO) (CDADR BAR) (CDADR BAZ) (CDADR BLETCH)))
|
|
(EQUAL FOO '(((A . B) C . D) (E . N) G . H))
|
|
(EQUAL BAR '(((I . J) K . L) (M . V) O . P))
|
|
(EQUAL BAZ '(((Q . R) S . T) (U . 6) W . X))
|
|
(EQUAL BLETCH '(((1 . 2) 3 . 4) (5 . F) 7 . 8))))
|
|
(DO-TEST ROTATEF-CDDAR
|
|
(AND (SETQ FOO '(((A . B) C . D) (E . F) G . H))
|
|
(SETQ BAR '(((I . J) K . L) (M . N) O . P))
|
|
(SETQ BAZ '(((Q . R) S . T) (U . V) W . X))
|
|
(SETQ BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . 8))
|
|
(NOT (ROTATEF (CDDAR FOO) (CDDAR BAR) (CDDAR BAZ) (CDDAR BLETCH)))
|
|
(EQUAL FOO '(((A . B) C . L) (E . F) G . H))
|
|
(EQUAL BAR '(((I . J) K . T) (M . N) O . P))
|
|
(EQUAL BAZ '(((Q . R) S . 4) (U . V) W . X))
|
|
(EQUAL BLETCH '(((1 . 2) 3 . D) (5 . 6) 7 . 8))))
|
|
(DO-TEST ROTATEF-CDDDR
|
|
(AND (SETQ FOO '(((A . B) C . D) (E . F) G . H))
|
|
(SETQ BAR '(((I . J) K . L) (M . N) O . P))
|
|
(SETQ BAZ '(((Q . R) S . T) (U . V) W . X))
|
|
(SETQ BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . 8))
|
|
(NOT (ROTATEF (CDDDR FOO) (CDDDR BAR) (CDDDR BAZ) (CDDDR BLETCH)))
|
|
(EQUAL FOO '(((A . B) C . D) (E . F) G . P))
|
|
(EQUAL BAR '(((I . J) K . L) (M . N) O . X))
|
|
(EQUAL BAZ '(((Q . R) S . T) (U . V) W . 8))
|
|
(EQUAL BLETCH '(((1 . 2) 3 . 4) (5 . 6) 7 . H))))
|
|
(DO-TEST ROTATEF-CAAAAR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CAAAAR FOO) (CAAAAR BAR) (CAAAAR BAZ)
|
|
(CAAAAR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((AA . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AAA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((A . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CAAADR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CAAADR FOO) (CAAADR BAR) (CAAADR BAZ)
|
|
(CAAADR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) G . H) ((II . J) K . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((III . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((IIII . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((I . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CAADAR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CAADAR FOO) (CAADAR BAR) (CAADAR BAZ)
|
|
(CAADAR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (EE . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EEE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (E . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CAADDR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CAADDR FOO) (CAADDR BAR) (CAADDR BAZ)
|
|
(CAADDR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (MM . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GG . HH) ((II . JJ) KK . LL)
|
|
(MMM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (M . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CADAAR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CADAAR FOO) (CADAAR BAR) (CADAAR BAZ)
|
|
(CADAAR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) CC . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CCC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) C . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CADADR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CADADR FOO) (CADADR BAR) (CADADR BAZ)
|
|
(CADADR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) G . H) ((I . J) KK . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KKK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) K . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CADDAR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CADDAR FOO) (CADDAR BAR) (CADDAR BAZ)
|
|
(CADDAR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) GG . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GGG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) G . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CADDDR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CADDDR FOO) (CADDDR BAR) (CADDDR BAZ)
|
|
(CADDDR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
OO . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GG . HH) ((II . JJ) KK . LL)
|
|
(MM . NN) OOO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) O . PPPP))))
|
|
(DO-TEST ROTATEF-CDAAAR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CDAAAR FOO) (CDAAAR BAR) (CDAAAR BAZ)
|
|
(CDAAAR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . BB) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BBB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . B) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CDADDR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CDADDR FOO) (CDADDR BAR) (CDADDR BAZ)
|
|
(CDADDR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . NN)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GG . HH) ((II . JJ) KK . LL)
|
|
(MM . NNN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . N) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CDDAAR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CDDAAR FOO) (CDDAAR BAR) (CDDAAR BAZ)
|
|
(CDDAAR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . DD) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DDD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . D) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CDDADR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CDDADR FOO) (CDDADR BAR) (CDDADR BAZ)
|
|
(CDDADR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) G . H) ((I . J) K . LL) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LLL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . L) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CDDDAR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CDDDAR FOO) (CDDDAR BAR) (CDDDAR BAZ)
|
|
(CDDDAR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) G . HH) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GG . HHH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . H)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . PPPP))))
|
|
(DO-TEST ROTATEF-CDDDDR
|
|
(AND (SETQ FOO '((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . P))
|
|
(SETQ BAR '((((AA . BB) CC . DD) (EE . FF) GG . HH)
|
|
((II . JJ) KK . LL) (MM . NN) OO . PP))
|
|
(SETQ BAZ '((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPP))
|
|
(SETQ BLETCH '((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF)
|
|
GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN)
|
|
OOOO . PPPP))
|
|
(NOT (ROTATEF (CDDDDR FOO) (CDDDDR BAR) (CDDDDR BAZ)
|
|
(CDDDDR BLETCH)))
|
|
(EQUAL FOO
|
|
'((((A . B) C . D) (E . F) G . H) ((I . J) K . L) (M . N)
|
|
O . PP))
|
|
(EQUAL BAR
|
|
'((((AA . BB) CC . DD) (EE . FF) GG . HH) ((II . JJ) KK . LL)
|
|
(MM . NN) OO . PPP))
|
|
(EQUAL BAZ
|
|
'((((AAA . BBB) CCC . DDD) (EEE . FFF) GGG . HHH)
|
|
((III . JJJ) KKK . LLL) (MMM . NNN) OOO . PPPP))
|
|
(EQUAL BLETCH
|
|
'((((AAAA . BBBB) CCCC . DDDD) (EEEE . FFFF) GGGG . HHHH)
|
|
((IIII . JJJJ) KKKK . LLLL) (MMMM . NNNN) OOOO . P))))
|
|
(DO-TEST ROTATEF-FIRST
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (FIRST FOO) (FIRST BAR) (FIRST BAZ) (FIRST BLETCH)))
|
|
(EQUAL FOO '(AA B C D E F G H I J))
|
|
(EQUAL BAR '(AAA BB CC DD EE FF GG HH II JJ))
|
|
(EQUAL BAZ '(AAAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(EQUAL BLETCH '(A BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))))
|
|
(DO-TEST ROTATEF-SECOND
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (SECOND FOO) (SECOND BAR) (SECOND BAZ)
|
|
(SECOND BLETCH)))
|
|
(EQUAL FOO '(A BB C D E F G H I J))
|
|
(EQUAL BAR '(AA BBB CC DD EE FF GG HH II JJ))
|
|
(EQUAL BAZ '(AAA BBBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(EQUAL BLETCH '(AAAA B CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))))
|
|
(DO-TEST ROTATEF-THIRD
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (THIRD FOO) (THIRD BAR) (THIRD BAZ) (THIRD BLETCH)))
|
|
(EQUAL FOO '(A B CC D E F G H I J))
|
|
(EQUAL BAR '(AA BB CCC DD EE FF GG HH II JJ))
|
|
(EQUAL BAZ '(AAA BBB CCCC DDD EEE FFF GGG HHH III JJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB C DDDD EEEE FFFF GGGG HHHH IIII JJJJ))))
|
|
(DO-TEST ROTATEF-FOURTH
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (FOURTH FOO) (FOURTH BAR) (FOURTH BAZ)
|
|
(FOURTH BLETCH)))
|
|
(EQUAL FOO '(A B C DD E F G H I J))
|
|
(EQUAL BAR '(AA BB CC DDD EE FF GG HH II JJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDDD EEE FFF GGG HHH III JJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC D EEEE FFFF GGGG HHHH IIII JJJJ))))
|
|
(DO-TEST ROTATEF-FIFTH
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (FIFTH FOO) (FIFTH BAR) (FIFTH BAZ) (FIFTH BLETCH)))
|
|
(EQUAL FOO '(A B C D EE F G H I J))
|
|
(EQUAL BAR '(AA BB CC DD EEE FF GG HH II JJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDD EEEE FFF GGG HHH III JJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC DDDD E FFFF GGGG HHHH IIII JJJJ))))
|
|
(DO-TEST ROTATEF-SIXTH
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (SIXTH FOO) (SIXTH BAR) (SIXTH BAZ) (SIXTH BLETCH)))
|
|
(EQUAL FOO '(A B C D E FF G H I J))
|
|
(EQUAL BAR '(AA BB CC DD EE FFF GG HH II JJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDD EEE FFFF GGG HHH III JJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC DDDD EEEE F GGGG HHHH IIII JJJJ))))
|
|
(DO-TEST ROTATEF-SEVENTH
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (SEVENTH FOO) (SEVENTH BAR) (SEVENTH BAZ)
|
|
(SEVENTH BLETCH)))
|
|
(EQUAL FOO '(A B C D E F GG H I J))
|
|
(EQUAL BAR '(AA BB CC DD EE FF GGG HH II JJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDD EEE FFF GGGG HHH III JJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF G HHHH IIII JJJJ))))
|
|
(DO-TEST ROTATEF-EIGHTH
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (EIGHTH FOO) (EIGHTH BAR) (EIGHTH BAZ)
|
|
(EIGHTH BLETCH)))
|
|
(EQUAL FOO '(A B C D E F G HH I J))
|
|
(EQUAL BAR '(AA BB CC DD EE FF GG HHH II JJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDD EEE FFF GGG HHHH III JJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG H IIII JJJJ))))
|
|
(DO-TEST ROTATEF-NINTH
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (NINTH FOO) (NINTH BAR) (NINTH BAZ) (NINTH BLETCH)))
|
|
(EQUAL FOO '(A B C D E F G H II J))
|
|
(EQUAL BAR '(AA BB CC DD EE FF GG HH III JJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH IIII JJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH I JJJJ))))
|
|
(DO-TEST ROTATEF-TENTH
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (TENTH FOO) (TENTH BAR) (TENTH BAZ) (TENTH BLETCH)))
|
|
(EQUAL FOO '(A B C D E F G H I JJ))
|
|
(EQUAL BAR '(AA BB CC DD EE FF GG HH II JJJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII J))))
|
|
(DO-TEST ROTATEF-REST
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (REST FOO) (REST BAR) (REST BAZ) (REST BLETCH)))
|
|
(EQUAL FOO '(A BB CC DD EE FF GG HH II JJ))
|
|
(EQUAL BAR '(AA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(EQUAL BAZ '(AAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(EQUAL BLETCH '(AAAA B C D E F G H I J))))
|
|
(DO-TEST ROTATEF-NTH
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (NTH 6 FOO) (NTH 6 BAR) (NTH 6 BAZ) (NTH 6 BLETCH)))
|
|
(EQUAL FOO '(A B C D E F GG H I J))
|
|
(EQUAL BAR '(AA BB CC DD EE FF GGG HH II JJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDD EEE FFF GGGG HHH III JJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF G HHHH IIII JJJJ))))
|
|
(DO-TEST ROTATEF-NTHCDR
|
|
(AND (SETQ FOO '(A B C D E F G H I J))
|
|
(SETQ BAR '(AA BB CC DD EE FF GG HH II JJ))
|
|
(SETQ BAZ '(AAA BBB CCC DDD EEE FFF GGG HHH III JJJ))
|
|
(SETQ BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ))
|
|
(NOT (ROTATEF (NTHCDR 6 FOO) (NTHCDR 6 BAR) (NTHCDR 6 BAZ)
|
|
(NTHCDR 6 BLETCH)))
|
|
(EQUAL FOO '(A B C D E F GG HH II JJ))
|
|
(EQUAL BAR '(AA BB CC DD EE FF GGG HHH III JJJ))
|
|
(EQUAL BAZ '(AAA BBB CCC DDD EEE FFF GGGG HHHH IIII JJJJ))
|
|
(EQUAL BLETCH '(AAAA BBBB CCCC DDDD EEEE FFFF G H I J))))
|
|
(DO-TEST ROTATEF-AREF
|
|
(AND (SETQ FOO (MAKE-ARRAY 10 :INITIAL-CONTENTS '(A B C D E F G H I J)))
|
|
(SETQ BAR (MAKE-ARRAY 10 :INITIAL-CONTENTS
|
|
'(AA BB CC DD EE FF GG HH II JJ)))
|
|
(SETQ BAZ (MAKE-ARRAY 10 :INITIAL-CONTENTS
|
|
'(AAA BBB CCC DDD EEE FFF GGG HHHH IIII
|
|
JJJJ)))
|
|
(SETQ BLETCH (MAKE-ARRAY 10 :INITIAL-CONTENTS
|
|
'(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH
|
|
IIII JJJJ)))
|
|
(NOT (ROTATEF (AREF FOO 6) (AREF BAR 6) (AREF BAZ 6)
|
|
(AREF BLETCH 6)))
|
|
(EQ (AREF FOO 6) 'GG)
|
|
(EQ (AREF BAR 6) 'GGG)
|
|
(EQ (AREF BAZ 6) 'GGGG)
|
|
(EQ (AREF BLETCH 6) 'G)))
|
|
(DO-TEST ROTATEF-SVREF
|
|
(AND (SETQ FOO (MAKE-ARRAY 10 :INITIAL-CONTENTS '(A B C D E F G H I J)))
|
|
(SETQ BAR (MAKE-ARRAY 10 :INITIAL-CONTENTS
|
|
'(AA BB CC DD EE FF GG HH II JJ)))
|
|
(SETQ BAZ (MAKE-ARRAY 10 :INITIAL-CONTENTS
|
|
'(AAA BBB CCC DDD EEE FFF GGG HHHH IIII
|
|
JJJJ)))
|
|
(SETQ BLETCH (MAKE-ARRAY 10 :INITIAL-CONTENTS
|
|
'(AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH
|
|
IIII JJJJ)))
|
|
(NOT (ROTATEF (SVREF FOO 6) (SVREF BAR 6) (SVREF BAZ 6)
|
|
(SVREF BLETCH 6)))
|
|
(EQ (SVREF FOO 6) 'GG)
|
|
(EQ (SVREF BAR 6) 'GGG)
|
|
(EQ (SVREF BAZ 6) 'GGGG)
|
|
(EQ (SVREF BLETCH 6) 'G)))
|
|
(DO-TEST ROTATEF-GET
|
|
(AND (SETF (GET 'FOO 'A) 'B)
|
|
(SETF (GET 'BAR 'C) 'D)
|
|
(SETF (GET 'BAZ 'E) 'F)
|
|
(SETF (GET 'BLETCH 'G) 'H)
|
|
(NOT (ROTATEF (GET 'FOO 'A) (GET 'BAR 'C) (GET 'BAZ 'E)
|
|
(GET 'BLETCH 'G)))
|
|
(EQ (GET 'FOO 'A) 'D)
|
|
(EQ (GET 'BAR 'C) 'F)
|
|
(EQ (GET 'BAZ 'E) 'H)
|
|
(EQ (GET 'BLETCH 'G) 'B)))
|
|
(DO-TEST ROTATEF-GETF
|
|
(AND (SETQ FOO '(B C D E F))
|
|
(SETQ BAR '(H I J K L))
|
|
(SETQ BAZ '(M N O P Q))
|
|
(SETQ BLETCH '(R S T U V))
|
|
(NOT (ROTATEF (GETF FOO 'D) (GETF BAR 'J) (GETF BAZ 'O)
|
|
(GETF BLETCH 'T)))
|
|
(EQUAL FOO '(B C D K F))
|
|
(EQUAL BAR '(H I J P L))
|
|
(EQUAL BAZ '(M N O U Q))
|
|
(EQUAL BLETCH '(R S T E V))))
|
|
(DO-TEST ROTATEF-GETHASH
|
|
(AND (SETQ FOO (MAKE-HASH-TABLE))
|
|
(SETF (GETHASH 'A FOO) 'B)
|
|
(SETF (GETHASH 'C FOO) 'D)
|
|
(SETF (GETHASH 'E FOO) 'F)
|
|
(SETF (GETHASH 'G FOO) 'H)
|
|
(NOT (ROTATEF (GETHASH 'A FOO) (GETHASH 'C FOO) (GETHASH 'E FOO)
|
|
(GETHASH 'G FOO)))
|
|
(EQ (GETHASH 'A FOO) 'D)
|
|
(EQ (GETHASH 'C FOO) 'F)
|
|
(EQ (GETHASH 'E FOO) 'H)
|
|
(EQ (GETHASH 'G FOO) 'B)))
|
|
(DO-TEST ROTATEF-SYMBOL-FUNCTION
|
|
(AND (SETF (SYMBOL-FUNCTION 'FOO) '(LAMBDA (A) NIL))
|
|
(SETF (SYMBOL-FUNCTION 'BAR) '(LAMBDA (B) NIL))
|
|
(SETF (SYMBOL-FUNCTION 'BAZ) '(LAMBDA (C) NIL))
|
|
(SETF (SYMBOL-FUNCTION 'BLETCH) '(LAMBDA (D) NIL))
|
|
(NOT (ROTATEF (SYMBOL-FUNCTION 'FOO) (SYMBOL-FUNCTION 'BAR)
|
|
(SYMBOL-FUNCTION 'BAZ) (SYMBOL-FUNCTION 'BLETCH)))
|
|
(EQUAL (SYMBOL-FUNCTION 'FOO) '(LAMBDA (B) NIL))
|
|
(EQUAL (SYMBOL-FUNCTION 'BAR) '(LAMBDA (C) NIL))
|
|
(EQUAL (SYMBOL-FUNCTION 'BAZ) '(LAMBDA (D) NIL))
|
|
(EQUAL (SYMBOL-FUNCTION 'BLETCH) '(LAMBDA (A) NIL))))
|
|
(DO-TEST ROTATEF-SYMBOL-VALUE
|
|
(AND (SETF (SYMBOL-VALUE 'FOO) 1)
|
|
(SETF (SYMBOL-VALUE 'BAR) 2)
|
|
(SETF (SYMBOL-VALUE 'BAZ) 3)
|
|
(SETF (SYMBOL-VALUE 'BLETCH) 4)
|
|
(NOT (ROTATEF (SYMBOL-VALUE 'FOO) (SYMBOL-VALUE 'BAR)
|
|
(SYMBOL-VALUE 'BAZ) (SYMBOL-VALUE 'BLETCH)))
|
|
(EQ (SYMBOL-VALUE 'FOO) 2)
|
|
(EQ (SYMBOL-VALUE 'BAR) 3)
|
|
(EQ (SYMBOL-VALUE 'BAZ) 4)
|
|
(EQ (SYMBOL-VALUE 'BLETCH) 1)))
|
|
(DO-TEST ROTATEF-SYMBOL-PLIST
|
|
(AND (SETF (SYMBOL-PLIST 'FOO) '(A B C D))
|
|
(SETF (SYMBOL-PLIST 'BAR) '(E F G H))
|
|
(SETF (SYMBOL-PLIST 'BAZ) '(I J K L))
|
|
(SETF (SYMBOL-PLIST 'BLETCH) '(M N O P))
|
|
(NOT (ROTATEF (SYMBOL-PLIST 'FOO) (SYMBOL-PLIST 'BAR)
|
|
(SYMBOL-PLIST 'BAZ) (SYMBOL-PLIST 'BLETCH)))
|
|
(EQUAL (SYMBOL-PLIST 'FOO) '(E F G H))
|
|
(EQUAL (SYMBOL-PLIST 'BAR) '(I J K L))
|
|
(EQUAL (SYMBOL-PLIST 'BAZ) '(M N O P))
|
|
(EQUAL (SYMBOL-PLIST 'BLETCH) '(A B C D))))
|
|
(DO-TEST ROTATEF-MACRO-FUNCTION
|
|
(AND (SETQ FOO (GENTEMP "FOO"))
|
|
(SETQ BAR (GENTEMP "BAR"))
|
|
(SETQ BAZ (GENTEMP "BAZ"))
|
|
(SETQ BLETCH (GENTEMP "BLETCH"))
|
|
(SETF (MACRO-FUNCTION FOO) '(LAMBDA (A)
|
|
(BQUOTE (CONS (|,| A) (|,| A)))))
|
|
(SETF (MACRO-FUNCTION BAR) '(LAMBDA (B)
|
|
(BQUOTE (CONS (|,| B) (|,| B)))))
|
|
(SETF (MACRO-FUNCTION BAZ) '(LAMBDA (C)
|
|
(BQUOTE (CONS (|,| C) (|,| C)))))
|
|
(SETF (MACRO-FUNCTION BLETCH) '(LAMBDA
|
|
(D)
|
|
(BQUOTE (CONS (|,| D) (|,| D)))))
|
|
(NOT (ROTATEF (MACRO-FUNCTION FOO) (MACRO-FUNCTION BAR)
|
|
(MACRO-FUNCTION BAZ) (MACRO-FUNCTION BLETCH)))
|
|
(EQUAL (MACRO-FUNCTION FOO)
|
|
'(LAMBDA (B) (BQUOTE (CONS (|,| B) (|,| B)))))
|
|
(EQUAL (MACRO-FUNCTION BAR)
|
|
'(LAMBDA (C) (BQUOTE (CONS (|,| C) (|,| C)))))
|
|
(EQUAL (MACRO-FUNCTION BAZ)
|
|
'(LAMBDA (D) (BQUOTE (CONS (|,| D) (|,| D)))))
|
|
(EQUAL (MACRO-FUNCTION BLETCH)
|
|
'(LAMBDA (A) (BQUOTE (CONS (|,| A) (|,| A)))))))
|
|
(DO-TEST ROTATEF-CHAR
|
|
(AND (SETQ FOO "A-STRING")
|
|
(SETQ BAR "B-STRING")
|
|
(SETQ BAZ "C-STRING")
|
|
(SETQ BLETCH "D-STRING")
|
|
(NOT (ROTATEF (CHAR FOO 0) (CHAR BAR 0) (CHAR BAZ 0)
|
|
(CHAR BLETCH 0)))
|
|
(EQL (CHAR FOO 0) #\B)
|
|
(EQL (CHAR BAR 0) #\C)
|
|
(EQL (CHAR BAZ 0) #\D)
|
|
(EQL (CHAR BLETCH 0) #\A)))
|
|
(DO-TEST ROTATEF-SCHAR
|
|
(AND (SETQ FOO "A-STRING")
|
|
(SETQ BAR "B-STRING")
|
|
(SETQ BAZ "C-STRING")
|
|
(SETQ BLETCH "D-STRING")
|
|
(NOT (ROTATEF (SCHAR FOO 0) (SCHAR BAR 0) (SCHAR BAZ 0)
|
|
(SCHAR BLETCH 0)))
|
|
(EQL (SCHAR FOO 0) #\B)
|
|
(EQL (SCHAR BAR 0) #\C)
|
|
(EQL (SCHAR BAZ 0) #\D)
|
|
(EQL (SCHAR BLETCH 0) #\A)))
|
|
(DO-TEST ROTATEF-BIT
|
|
(AND (SETQ FOO #*01010101)
|
|
(SETQ BAR #*10101010)
|
|
(SETQ BAZ #*01010101)
|
|
(SETQ BLETCH #*10101010)
|
|
(NOT (ROTATEF (BIT FOO 1) (BIT BAR 1) (BIT BAZ 1) (BIT BLETCH 1)))
|
|
(EQL (BIT FOO 1) 0)
|
|
(EQL (BIT BAR 1) 1)
|
|
(EQL (BIT BAZ 1) 0)
|
|
(EQL (BIT BLETCH 1) 1)))
|
|
(DO-TEST ROTATEF-SBIT
|
|
(AND (SETQ FOO #*01010101)
|
|
(SETQ BAR #*10101010)
|
|
(SETQ BAZ #*01010101)
|
|
(SETQ BLETCH #*10101010)
|
|
(NOT (ROTATEF (SBIT FOO 1) (SBIT BAR 1) (SBIT BAZ 1) (SBIT BLETCH 1)))
|
|
(EQL (SBIT FOO 1) 0)
|
|
(EQL (SBIT BAR 1) 1)
|
|
(EQL (SBIT BAZ 1) 0)
|
|
(EQL (SBIT BLETCH 1) 1)))
|
|
(DO-TEST ROTATEF-ELT
|
|
; make sure setf-inverse optimizations aware of side-effects
|
|
(let* ((a '(1 2 3))
|
|
(b '(4 5 6))
|
|
(c a))
|
|
(rotatef (elt a 0) (elt (setq a b) 1))
|
|
(and (equal c '(5 2 3))
|
|
(equal b '(4 1 6)))))
|
|
|
|
STOP
|
|
|
|
|
|
|
|
|
|
|
|
|