diff --git a/lens/private/compound/compose.rkt b/lens/private/compound/compose.rkt index 934a1fc..6324e5d 100644 --- a/lens/private/compound/compose.rkt +++ b/lens/private/compound/compose.rkt @@ -11,6 +11,7 @@ require racket/contract module+ test require rackunit racket/set + "../test-util/test-lens.rkt" provide contract-out @@ -40,6 +41,6 @@ module+ test (define second-lens (make-lens second set-second)) (define test-alist '((a 1) (b 2) (c 3))) (define first-of-second-lens (lens-compose first-lens second-lens)) - (check-equal? (lens-view first-of-second-lens test-alist) 'b) - (check-equal? (lens-set first-of-second-lens test-alist 'B) '((a 1) (B 2) (c 3))) + (check-lens-view first-of-second-lens test-alist 'b) + (check-lens-set first-of-second-lens test-alist 'B '((a 1) (B 2) (c 3))) (check-eq? (lens-compose) identity-lens) diff --git a/lens/private/compound/identity.rkt b/lens/private/compound/identity.rkt index 2940ce4..5151c70 100644 --- a/lens/private/compound/identity.rkt +++ b/lens/private/compound/identity.rkt @@ -8,6 +8,7 @@ require racket/function module+ test require rackunit "../base/main.rkt" + "../test-util/test-lens.rkt" provide contract-out @@ -18,5 +19,5 @@ provide (make-isomorphism-lens identity identity)) (module+ test - (check-equal? (lens-view identity-lens 'foo) 'foo) - (check-equal? (lens-set identity-lens 'foo 'bar) 'bar)) + (check-lens-view identity-lens 'foo 'foo) + (check-lens-set identity-lens 'foo 'bar 'bar)) diff --git a/lens/private/compound/join-hash.rkt b/lens/private/compound/join-hash.rkt index c4d1050..095ed55 100644 --- a/lens/private/compound/join-hash.rkt +++ b/lens/private/compound/join-hash.rkt @@ -12,7 +12,8 @@ (module+ test (require rackunit - "../list/list-ref-take-drop.rkt")) + "../list/list-ref-take-drop.rkt" + "../test-util/test-lens.rkt")) (provide (contract-out @@ -34,8 +35,8 @@ (module+ test (define a-b-lens (lens-join/hash 'b third-lens 'a first-lens)) - (check-equal? (lens-view a-b-lens '(1 2 3)) - (hash 'a 1 'b 3)) - (check-equal? (lens-set a-b-lens '(1 2 3) (hash 'a 100 'b 200)) - '(100 2 200))) + (check-lens-view a-b-lens '(1 2 3) + (hash 'a 1 'b 3)) + (check-lens-set a-b-lens '(1 2 3) (hash 'a 100 'b 200) + '(100 2 200))) diff --git a/lens/private/compound/join-list.rkt b/lens/private/compound/join-list.rkt index 14a0ba7..816acce 100644 --- a/lens/private/compound/join-list.rkt +++ b/lens/private/compound/join-list.rkt @@ -9,6 +9,7 @@ require racket/list module+ test require rackunit "../list/list-ref-take-drop.rkt" + "../test-util/test-lens.rkt" provide contract-out @@ -28,7 +29,7 @@ provide (lens-join/list first-lens third-lens fifth-lens)) - (check-equal? (lens-view first-third-fifth-lens '(a b c d e f)) - '(a c e)) - (check-equal? (lens-set first-third-fifth-lens '(a b c d e f) '(1 2 3)) - '(1 b 2 d 3 f))) + (check-lens-view first-third-fifth-lens '(a b c d e f) + '(a c e)) + (check-lens-set first-third-fifth-lens '(a b c d e f) '(1 2 3) + '(1 b 2 d 3 f))) diff --git a/lens/private/compound/join-string.rkt b/lens/private/compound/join-string.rkt index ad0ee2b..a57ed67 100644 --- a/lens/private/compound/join-string.rkt +++ b/lens/private/compound/join-string.rkt @@ -11,6 +11,7 @@ require racket/contract module+ test require rackunit "../list/list-ref-take-drop.rkt" + "../test-util/test-lens.rkt" provide contract-out @@ -28,8 +29,8 @@ provide (lens-join/string first-lens third-lens fifth-lens)) - (check-equal? (lens-view string-first-third-fifth-lens '(#\a #\b #\c #\d #\e #\f)) - "ace") + (check-lens-view string-first-third-fifth-lens '(#\a #\b #\c #\d #\e #\f) + "ace") (check-pred immutable? (lens-view string-first-third-fifth-lens '(#\a #\b #\c #\d #\e #\f))) - (check-equal? (lens-set string-first-third-fifth-lens '(#\a #\b #\c #\d #\e #\f) "ACE") - '(#\A #\b #\C #\d #\E #\f))) + (check-lens-set string-first-third-fifth-lens '(#\a #\b #\c #\d #\e #\f) "ACE" + '(#\A #\b #\C #\d #\E #\f))) diff --git a/lens/private/compound/join-vector.rkt b/lens/private/compound/join-vector.rkt index aebd569..ccb0742 100644 --- a/lens/private/compound/join-vector.rkt +++ b/lens/private/compound/join-vector.rkt @@ -11,6 +11,7 @@ require racket/contract module+ test require rackunit "../list/list-ref-take-drop.rkt" + "../test-util/test-lens.rkt" provide contract-out @@ -28,9 +29,9 @@ provide (lens-join/vector first-lens third-lens fifth-lens)) - (check-equal? (lens-view vector-first-third-fifth-lens '(a b c d e f)) + (check-lens-view vector-first-third-fifth-lens '(a b c d e f) #(a c e)) (check-pred immutable? (lens-view vector-first-third-fifth-lens '(a b c d e f))) - (check-equal? (lens-set vector-first-third-fifth-lens '(a b c d e f) #(1 2 3)) - '(1 b 2 d 3 f))) + (check-lens-set vector-first-third-fifth-lens '(a b c d e f) #(1 2 3) + '(1 b 2 d 3 f))) diff --git a/lens/private/compound/thrush.rkt b/lens/private/compound/thrush.rkt index 3a2d176..c59d0dc 100644 --- a/lens/private/compound/thrush.rkt +++ b/lens/private/compound/thrush.rkt @@ -8,7 +8,8 @@ (module+ test (require rackunit - "../list/list-ref-take-drop.rkt")) + "../list/list-ref-take-drop.rkt" + "../test-util/test-lens.rkt")) (provide (contract-out [lens-thrush (->* () () #:rest (listof lens?) lens?)])) @@ -26,5 +27,5 @@ (define second-lens (make-lens second set-second)) (define test-alist '((a 1) (b 2) (c 3))) (define first-of-second-lens (lens-thrush second-lens first-lens)) - (check-equal? (lens-view first-of-second-lens test-alist) 'b) - (check-equal? (lens-set first-of-second-lens test-alist 'B) '((a 1) (B 2) (c 3)))) + (check-lens-view first-of-second-lens test-alist 'b) + (check-lens-set first-of-second-lens test-alist 'B '((a 1) (B 2) (c 3)))) diff --git a/lens/private/hash/pick.rkt b/lens/private/hash/pick.rkt index 8ebe774..260c96a 100644 --- a/lens/private/hash/pick.rkt +++ b/lens/private/hash/pick.rkt @@ -9,7 +9,7 @@ "ref.rkt") (module+ test - (require rackunit)) + (require rackunit "../test-util/test-lens.rkt")) (provide (contract-out @@ -24,7 +24,7 @@ (append-map hash-ref-lens-and-key ks))) (module+ test - (check-equal? (lens-view (hash-pick-lens 'a 'c) (hash 'a 1 'b 2 'c 3)) - (hash 'a 1 'c 3)) - (check-equal? (lens-set (hash-pick-lens 'a 'c) (hash 'a 1 'b 2 'c 3) (hash 'a 4 'c 5)) - (hash 'a 4 'b 2 'c 5))) + (check-lens-view (hash-pick-lens 'a 'c) (hash 'a 1 'b 2 'c 3) + (hash 'a 1 'c 3)) + (check-lens-set (hash-pick-lens 'a 'c) (hash 'a 1 'b 2 'c 3) (hash 'a 4 'c 5) + (hash 'a 4 'b 2 'c 5))) diff --git a/lens/private/list/assoc.rkt b/lens/private/list/assoc.rkt index 5114ff6..4020e8c 100644 --- a/lens/private/list/assoc.rkt +++ b/lens/private/list/assoc.rkt @@ -15,7 +15,7 @@ "../base/main.rkt") (module+ test - (require rackunit) + (require rackunit "../test-util/test-lens.rkt") (define assoc-list '((a . 1) (b . 2) (c . 3)))) @@ -45,9 +45,9 @@ (module+ test (define assoc-b-lens (assoc-lens 'b)) - (check-equal? (lens-view assoc-b-lens assoc-list) 2) - (check-equal? (lens-set assoc-b-lens assoc-list 200) - '((a . 1) (b . 200) (c . 3)))) + (check-lens-view assoc-b-lens assoc-list 2) + (check-lens-set assoc-b-lens assoc-list 200 + '((a . 1) (b . 200) (c . 3)))) (define (assv-lens assv-key) @@ -56,9 +56,9 @@ (module+ test (define assv-2-lens (assv-lens 2)) (define assv-list '((1 . a) (2 . b) (3 . c))) - (check-eq? (lens-view assv-2-lens assv-list) 'b) - (check-equal? (lens-set assv-2-lens assv-list 'FOO) - '((1 . a) (2 . FOO) (3 . c)))) + (check-lens-view assv-2-lens assv-list 'b) + (check-lens-set assv-2-lens assv-list 'FOO + '((1 . a) (2 . FOO) (3 . c)))) (define (assq-lens assq-key) @@ -67,7 +67,7 @@ (module+ test (define assq-a-lens (assq-lens 'a)) (define assq-list '((a . 1) (b . 2) (c . 3))) - (check-eqv? (lens-view assq-a-lens assq-list) 1) - (check-equal? (lens-set assq-a-lens assq-list 100) - '((a . 100) (b . 2) (c . 3)))) + (check-lens-view assq-a-lens assq-list 1) + (check-lens-set assq-a-lens assq-list 100 + '((a . 100) (b . 2) (c . 3)))) diff --git a/lens/private/list/car-cdr.rkt b/lens/private/list/car-cdr.rkt index f0d89c5..5d6c92d 100644 --- a/lens/private/list/car-cdr.rkt +++ b/lens/private/list/car-cdr.rkt @@ -22,10 +22,10 @@ (define cdr-lens (make-lens cdr set-cdr)) (module+ test - (check-view car-lens '(1 . 2) 1) - (check-set car-lens '(1 . 2) 'a '(a . 2)) + (check-lens-view car-lens '(1 . 2) 1) + (check-lens-set car-lens '(1 . 2) 'a '(a . 2)) (test-lens-laws car-lens '(1 . 2) 'a 'b) - (check-view cdr-lens '(1 . 2) 2) - (check-set cdr-lens '(1 . 2) 'a '(1 . a)) + (check-lens-view cdr-lens '(1 . 2) 2) + (check-lens-set cdr-lens '(1 . 2) 'a '(1 . a)) (test-lens-laws cdr-lens '(1 . 2) 'a 'b)) diff --git a/lens/private/list/list-ref-take-drop.rkt b/lens/private/list/list-ref-take-drop.rkt index d0c5517..6e25dee 100644 --- a/lens/private/list/list-ref-take-drop.rkt +++ b/lens/private/list/list-ref-take-drop.rkt @@ -31,7 +31,7 @@ "car-cdr.rkt") (module+ test - (require rackunit)) + (require rackunit "../test-util/test-lens.rkt")) (define (set-take n lst new-head) @@ -53,8 +53,8 @@ (module+ test (define take2-lens (take-lens 2)) - (check-equal? (lens-view take2-lens '(1 2 3 4 5)) '(1 2)) - (check-equal? (lens-set take2-lens '(1 2 3 4 5) '(a b)) '(a b 3 4 5))) + (check-lens-view take2-lens '(1 2 3 4 5) '(1 2)) + (check-lens-set take2-lens '(1 2 3 4 5) '(a b) '(a b 3 4 5))) (define (drop-lens n) @@ -62,8 +62,8 @@ (module+ test (define drop2-lens (drop-lens 2)) - (check-equal? (lens-view drop2-lens '(1 2 3 4 5)) '(3 4 5)) - (check-equal? (lens-set drop2-lens '(1 2 3 4 5) '(a b c)) '(1 2 a b c))) + (check-lens-view drop2-lens '(1 2 3 4 5) '(3 4 5)) + (check-lens-set drop2-lens '(1 2 3 4 5) '(a b c) '(1 2 a b c))) (define (list-ref-lens i) @@ -82,13 +82,13 @@ (module+ test - (check-eqv? (lens-view first-lens '(1 2 3 4 5)) 1) - (check-eqv? (lens-view second-lens '(1 2 3 4 5)) 2) - (check-eqv? (lens-view third-lens '(1 2 3 4 5)) 3) - (check-eqv? (lens-view fourth-lens '(1 2 3 4 5)) 4) - (check-eqv? (lens-view fifth-lens '(1 2 3 4 5)) 5) - (check-equal? (lens-set first-lens '(1 2 3 4 5) 'a) '(a 2 3 4 5)) - (check-equal? (lens-set second-lens '(1 2 3 4 5) 'a) '(1 a 3 4 5)) - (check-equal? (lens-set third-lens '(1 2 3 4 5) 'a) '(1 2 a 4 5)) - (check-equal? (lens-set fourth-lens '(1 2 3 4 5) 'a) '(1 2 3 a 5)) - (check-equal? (lens-set fifth-lens '(1 2 3 4 5) 'a) '(1 2 3 4 a))) + (check-lens-view first-lens '(1 2 3 4 5) 1) + (check-lens-view second-lens '(1 2 3 4 5) 2) + (check-lens-view third-lens '(1 2 3 4 5) 3) + (check-lens-view fourth-lens '(1 2 3 4 5) 4) + (check-lens-view fifth-lens '(1 2 3 4 5) 5) + (check-lens-set first-lens '(1 2 3 4 5) 'a '(a 2 3 4 5)) + (check-lens-set second-lens '(1 2 3 4 5) 'a '(1 a 3 4 5)) + (check-lens-set third-lens '(1 2 3 4 5) 'a '(1 2 a 4 5)) + (check-lens-set fourth-lens '(1 2 3 4 5) 'a '(1 2 3 a 5)) + (check-lens-set fifth-lens '(1 2 3 4 5) 'a '(1 2 3 4 a))) diff --git a/lens/private/list/multi.rkt b/lens/private/list/multi.rkt index 980714a..4f67d8e 100644 --- a/lens/private/list/multi.rkt +++ b/lens/private/list/multi.rkt @@ -7,7 +7,7 @@ "list-ref-take-drop.rkt") (module+ test - (require rackunit)) + (require rackunit "../test-util/test-lens.rkt")) (provide (contract-out @@ -28,7 +28,7 @@ (module+ test (define 1-5-6-lens (list-refs-lens 1 5 6)) - (check-equal? (lens-view 1-5-6-lens '(a b c d e f g)) - '(b f g)) - (check-equal? (lens-set 1-5-6-lens '(a b c d e f g) '(1 2 3)) - '(a 1 c d e 2 3))) + (check-lens-view 1-5-6-lens '(a b c d e f g) + '(b f g)) + (check-lens-set 1-5-6-lens '(a b c d e f g) '(1 2 3) + '(a 1 c d e 2 3))) diff --git a/lens/private/stream.rkt b/lens/private/stream.rkt index e805b0b..e282ff9 100644 --- a/lens/private/stream.rkt +++ b/lens/private/stream.rkt @@ -20,7 +20,10 @@ module+ test module+ test (define-check (check-stream-equal? stream1 stream2) - (equal? (stream->list stream1) (stream->list stream2))) + (let ([list1 (stream->list stream1)] [list2 (stream->list stream2)]) + (with-check-info + (['actual-list list1] ['expected-list list2]) + (check-equal? list1 list2)))) (define (stream-ref-lens i) @@ -55,8 +58,8 @@ module+ test (stream-cons v rst))) module+ test - (check-equal? (lens-view stream-first-lens (stream 'a 'b 'c)) 'a) - (check-equal? (lens-view (stream-ref-lens 2) (stream 'a 'b 'c)) 'c) + (check-lens-view stream-first-lens (stream 'a 'b 'c) 'a) + (check-lens-view (stream-ref-lens 2) (stream 'a 'b 'c) 'c) (check-stream-equal? (lens-set stream-first-lens (stream 'a 'b 'c) 1) (stream 1 'b 'c)) (check-stream-equal? (lens-set (stream-ref-lens 2) (stream 'a 'b 'c) 1) @@ -66,10 +69,9 @@ module+ test (apply lens-thrush (map stream-ref-lens is))) module+ test - (check-equal? (lens-view (stream-ref-nested-lens 1 2 0) - (stream 'a (stream 1 2 (stream 'foo 'bar 'baz) 3 4) 'b 'c 'd)) - 'foo) - (check-stream-equal? (lens-set (stream-ref-nested-lens 1 2 0) - (stream 'a (stream 1 2 (stream 'foo 'bar 'baz) 3 4) 'b 'c 'd) - 'FOO) - (stream 'a (stream 1 2 (stream 'FOO 'bar 'baz) 3 4) 'b 'c 'd)) + (check-lens-view (stream-ref-nested-lens 1 2 0) + (stream 'a (stream 1 2 (stream 'foo 'bar 'baz) 3 4) 'b 'c 'd) + 'foo) + (check-lens-set-view (stream-ref-nested-lens 1 2 0) + (stream 'a (stream 1 2 (stream 'foo 'bar 'baz) 3 4) 'b 'c 'd) + 'FOO) diff --git a/lens/private/string.rkt b/lens/private/string.rkt index c0be661..1a203a8 100644 --- a/lens/private/string.rkt +++ b/lens/private/string.rkt @@ -16,7 +16,7 @@ "compound/main.rkt") (module+ test - (require rackunit)) + (require rackunit "test-util/test-lens.rkt")) (define (string-ref-lens i) @@ -33,8 +33,8 @@ (string-ref s j))))) (module+ test - (check-equal? (lens-view (string-ref-lens 2) "abc") #\c) - (check-equal? (lens-set (string-ref-lens 0) "abc" #\A) "Abc")) + (check-lens-view (string-ref-lens 2) "abc" #\c) + (check-lens-set (string-ref-lens 0) "abc" #\A "Abc")) (define (string-pick-lens . is) @@ -42,7 +42,7 @@ (module+ test (define 1-5-6-lens (string-pick-lens 1 5 6)) - (check-equal? (lens-view 1-5-6-lens "abcdefg") - "bfg") - (check-equal? (lens-set 1-5-6-lens "abcdefg" "BFG") - "aBcdeFG")) + (check-lens-view 1-5-6-lens "abcdefg" + "bfg") + (check-lens-set 1-5-6-lens "abcdefg" "BFG" + "aBcdeFG")) diff --git a/lens/private/struct/struct.rkt b/lens/private/struct/struct.rkt index 794c174..d3fcd61 100644 --- a/lens/private/struct/struct.rkt +++ b/lens/private/struct/struct.rkt @@ -57,6 +57,6 @@ (module+ test (struct/lens foo (a b c d) #:transparent) - (check-view foo-b-lens (foo 1 2 3 4) 2) - (check-set foo-c-lens (foo 1 2 3 4) 'a (foo 1 2 'a 4)) + (check-lens-view foo-b-lens (foo 1 2 3 4) 2) + (check-lens-set foo-c-lens (foo 1 2 3 4) 'a (foo 1 2 'a 4)) (test-lens-laws foo-a-lens (foo 1 2 3 4) 'a 'b)) diff --git a/lens/private/test-util/test-lens.rkt b/lens/private/test-util/test-lens.rkt index 42608b0..1dc3d5e 100644 --- a/lens/private/test-util/test-lens.rkt +++ b/lens/private/test-util/test-lens.rkt @@ -8,40 +8,40 @@ (provide (contract-out - [check-view (-> lens? any/c any/c void?)] - [check-set (-> lens? any/c any/c any/c void?)] - [check-view-set (-> lens? any/c void?)] - [check-set-view (-> lens? any/c any/c void?)] - [check-set-set (-> lens? any/c any/c any/c void?)] - [test-lens-laws (-> lens? any/c any/c any/c void?)])) + [check-lens-view (-> lens? any/c any/c void?)] + [check-lens-set (-> lens? any/c any/c any/c void?)] + [check-lens-view-set (-> lens? any/c void?)] + [check-lens-set-view (-> lens? any/c any/c void?)] + [check-lens-set-set (-> lens? any/c any/c any/c void?)] + [test-lens-laws (-> lens? any/c any/c any/c void?)])) -(define-check (check-view lens target expected-view) +(define-check (check-lens-view lens target expected-view) (check-equal? (lens-view lens target) expected-view)) -(define-check (check-set lens target new-view expected-new-target) +(define-check (check-lens-set lens target new-view expected-new-target) (check-equal? (lens-set lens target new-view) expected-new-target)) -(define-check (check-view-set lens target) - (check-equal? (lens-set lens target (lens-view lens target)) - target - "setting target's view to its own view not equal? to itself")) +(define-check (check-lens-view-set lens target) + (check-lens-set lens target (lens-view lens target) + target + "setting target's view to its own view not equal? to itself")) -(define-check (check-set-view lens target new-view) - (check-equal? (lens-view lens (lens-set lens target new-view)) - new-view - "view of target after setting it's view not equal? to the set view")) +(define-check (check-lens-set-view lens target new-view) + (check-lens-view lens (lens-set lens target new-view) + new-view + "view of target after setting it's view not equal? to the set view")) -(define-check (check-set-set lens target new-view1 new-view2) +(define-check (check-lens-set-set lens target new-view1 new-view2) (let* ([target* (lens-set lens target new-view1)] [target** (lens-set lens target* new-view2)]) - (check-equal? (lens-view lens target**) - new-view2 - "view of target after setting it's view twice not equal? to second view"))) + (check-lens-view lens target** + new-view2 + "view of target after setting its view twice not equal? to second view"))) (define (test-lens-laws lens test-target test-view1 test-view2) - (check-view-set lens test-target) - (check-set-view lens test-target test-view1) - (check-set-view lens test-target test-view2) - (check-set-set lens test-target test-view1 test-view2)) + (check-lens-view-set lens test-target) + (check-lens-set-view lens test-target test-view1) + (check-lens-set-view lens test-target test-view2) + (check-lens-set-set lens test-target test-view1 test-view2)) diff --git a/lens/private/vector/pick.rkt b/lens/private/vector/pick.rkt index 85252dd..442dd68 100644 --- a/lens/private/vector/pick.rkt +++ b/lens/private/vector/pick.rkt @@ -8,7 +8,7 @@ "ref.rkt") (module+ test - (require rackunit)) + (require rackunit "../test-util/test-lens.rkt")) (provide (contract-out @@ -21,7 +21,7 @@ (module+ test (define 1-5-6-lens (vector-pick-lens 1 5 6)) - (check-equal? (lens-view 1-5-6-lens #(a b c d e f g)) - #(b f g)) - (check-equal? (lens-set 1-5-6-lens #(a b c d e f g) #(1 2 3)) - #(a 1 c d e 2 3))) + (check-lens-view 1-5-6-lens #(a b c d e f g) + #(b f g)) + (check-lens-set 1-5-6-lens #(a b c d e f g) #(1 2 3) + #(a 1 c d e 2 3))) diff --git a/lens/private/vector/ref.rkt b/lens/private/vector/ref.rkt index d2dbf7e..1f41abe 100644 --- a/lens/private/vector/ref.rkt +++ b/lens/private/vector/ref.rkt @@ -6,7 +6,7 @@ "../util/immutable.rkt") (module+ test - (require rackunit)) + (require rackunit "../test-util/test-lens.rkt")) (provide (contract-out @@ -28,5 +28,5 @@ (vector-ref v j))))) (module+ test - (check-equal? (lens-view (vector-ref-lens 0) #(a b c)) 'a) - (check-equal? (lens-set (vector-ref-lens 2) #(a b c) "C") #(a b "C"))) + (check-lens-view (vector-ref-lens 0) #(a b c) 'a) + (check-lens-set (vector-ref-lens 2) #(a b c) "C" #(a b "C"))) diff --git a/unstable/lens/match.rkt b/unstable/lens/match.rkt index c68fa78..f8628df 100644 --- a/unstable/lens/match.rkt +++ b/unstable/lens/match.rkt @@ -25,10 +25,10 @@ (module+ test (define car-lens (match-lens a (cons a b) (cons a b))) (define cdr-lens (match-lens b (cons a b) (cons a b))) - (check-view car-lens (cons 1 2) 1) - (check-view cdr-lens (cons 1 2) 2) - (check-set car-lens (cons 1 2) 'a (cons 'a 2)) - (check-set cdr-lens (cons 1 2) 'a (cons 1 'a)) + (check-lens-view car-lens (cons 1 2) 1) + (check-lens-view cdr-lens (cons 1 2) 2) + (check-lens-set car-lens (cons 1 2) 'a (cons 'a 2)) + (check-lens-set cdr-lens (cons 1 2) 'a (cons 1 'a)) (test-lens-laws car-lens (cons 1 2) 'a 'b) (test-lens-laws cdr-lens (cons 1 2) 'a 'b) )