Add syntax keyword lens tests, closes #11
This commit is contained in:
Jack Firth 2015-07-05 23:33:13 -07:00
commit d0e11af392

View File

@ -4,6 +4,9 @@
fancy-app
syntax/parse)
(module+ test
(require rackunit))
(provide syntax-keyword-seq-lens)
@ -52,3 +55,22 @@
(define getter (syntax-keyword-seq-get keyword _))
(define setter (syntax-keyword-seq-set keyword _ _))
(make-lens getter setter))
(module+ test
(define-check (check-stx-equal? actual-stx expected-stx)
(check-equal? (syntax->datum actual-stx)
(syntax->datum expected-stx)))
(define foo-kw-seq-lens (syntax-keyword-seq-lens '#:foo))
(check-stx-equal? (lens-view foo-kw-seq-lens #'(a #:foo c d #:bar f))
#'(c d))
(check-stx-equal? (lens-set foo-kw-seq-lens #'(a #:foo c d #:bar f) #'(1 2 3 4 5 6))
#'(a #:foo 1 2 3 4 5 6 #:bar f))
(check-stx-equal? (lens-view foo-kw-seq-lens #'(a b f g))
#'())
(check-stx-equal? (lens-view foo-kw-seq-lens #'(a #:foo #:bar f))
#'())
(check-stx-equal? (lens-set foo-kw-seq-lens #'(a #:foo #:bar f) #'(1 2 3 4 5 6))
#'(a #:foo 1 2 3 4 5 6 #:bar f))
(check-stx-equal? (lens-set foo-kw-seq-lens #'(a b f g) #'(these are ignored))
#'(a b f g)))