#lang scheme
(require (planet cce/scheme:4:1/planet)
(planet schematics/schemeunit))
(require/expose "../benchmarks/garden-fence.ss"
(encrypt-vec encrypt-ra decrypt-vec decrypt-ra))
(define (make-garden-suite name encrypt decrypt)
(test-suite
name
(check-equal? (encrypt "" 5) "")
(check-equal? (encrypt "diesisteinklartext" 2)
"deitikatxissenlret")
(check-equal? (encrypt "diesisteinklartext" 6)
"dkinleiasertittxse")
(check-equal? (encrypt "diesisteinklartext" 18)
"diesisteinklartext")
(check-equal? (decrypt "" 5) "")
(check-equal? (decrypt "deitikatxissenlret" 2)
"diesisteinklartext")
(check-equal? (decrypt "dkinleiasertittxse" 6)
"diesisteinklartext")
(check-equal? (decrypt "diesisteinklartext" 18)
"diesisteinklartext")))
(define/provide-test-suite garden-fence-tests
(check-equal? (encrypt-vec "" 5) "")
(check-equal? (encrypt-vec "diesisteinklartext" 2)
"deitikatxissenlret")
(check-equal? (encrypt-vec "diesisteinklartext" 6)
"dkinleiasertittxse")
(check-equal? (encrypt-vec "diesisteinklartext" 18)
"diesisteinklartext")
(check-equal? (decrypt-vec "" 5) "")
(check-equal? (decrypt-vec "deitikatxissenlret" 2)
"diesisteinklartext")
(check-equal? (decrypt-vec "dkinleiasertittxse" 6)
"diesisteinklartext")
(check-equal? (decrypt-vec "diesisteinklartext" 18)
"diesisteinklartext")
(check-equal? (encrypt-ra "" 5) "")
(check-equal? (encrypt-ra "diesisteinklartext" 2)
"deitikatxissenlret")
(check-equal? (encrypt-ra "diesisteinklartext" 6)
"dkinleiasertittxse")
(check-equal? (encrypt-ra "diesisteinklartext" 18)
"diesisteinklartext")
(check-equal? (decrypt-ra "" 5) "")
(check-equal? (decrypt-ra "deitikatxissenlret" 2)
"diesisteinklartext")
(check-equal? (decrypt-ra "dkinleiasertittxse" 6)
"diesisteinklartext")
(check-equal? (decrypt-ra "diesisteinklartext" 18)
"diesisteinklartext")
)