From cce0a1c62c730201030e3fedd557ec620a0d9adc Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 9 Jan 2013 18:32:12 -0700 Subject: [PATCH] scribble/decode: fix contract on `decode-compound-paragraph' Add a test suite that at least tries each export of `scribble/decode'. Merge to v5.3.2 original commit: 5ab048bb5cd05fa109b990bb73bc7033b09230ee --- collects/scribble/decode.rkt | 2 +- collects/tests/scribble/decode.rkt | 52 ++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 collects/tests/scribble/decode.rkt diff --git a/collects/scribble/decode.rkt b/collects/scribble/decode.rkt index 19307203..d354e658 100644 --- a/collects/scribble/decode.rkt +++ b/collects/scribble/decode.rkt @@ -73,7 +73,7 @@ [decode-paragraph (-> (listof pre-content?) paragraph?)] [decode-compound-paragraph (-> (listof pre-flow?) - paragraph?)] + block?)] [decode-content (-> (listof pre-content?) content?)] [rename decode-content decode-elements diff --git a/collects/tests/scribble/decode.rkt b/collects/tests/scribble/decode.rkt new file mode 100644 index 00000000..4594fd40 --- /dev/null +++ b/collects/tests/scribble/decode.rkt @@ -0,0 +1,52 @@ +#lang racket/base +(require scribble/decode + scribble/core + rackunit + racket/contract/base) + +(check-true (pre-content? "x")) +(check-true (pre-content? null)) +(check-true (pre-content? '("x"))) +(check-true (pre-content? (list (element plain "x") "x"))) +(check-true (pre-content? (splice (list (element plain "x") "x")))) +(check-true (not (pre-content? 11))) +(check-true (not (pre-content? '(11)))) + +(check-true (pre-flow? "x")) +(check-true (pre-flow? '("x"))) +(check-true (pre-flow? (list (element plain "x") "x"))) +(check-true (pre-flow? (list (paragraph plain (element plain "x")) (element plain "x") "x"))) +(check-true (pre-flow? (splice (list (paragraph plain (element plain "x")) (element plain "x") "x")))) +(check-true (not (pre-flow? 11))) +(check-true (not (pre-flow? '(11)))) + +(check-true (pre-part? "x")) +(check-true (pre-part? '("x"))) +(check-true (pre-part? (list (element plain "x") "x"))) +(check-true (pre-part? (list (paragraph plain (element plain "x")) (element plain "x") "x"))) +(check-true (pre-part? (list (paragraph plain (element plain "x")) (element plain "x") "x" + (decode-part '("x") null #f 0) + (part-start 0 #f null plain "start") + (part-index-decl '("a" "b") '("a")) + (part-collect-decl (element plain "x")) + (part-tag-decl '(something "x")) + (void) + (title-decl #f null #f plain "title")))) +(check-true (not (pre-part? 11))) +(check-true (not (pre-part? '(11)))) + +(check-true (part? (decode '("x")))) +(check-true (part? (decode-part '("x") null #f 0))) +(check-true (andmap block? (decode-flow '("x")))) +(check-true (block? (decode-compound-paragraph '("x")))) +(check-true (paragraph? (decode-paragraph '("x")))) +(check-true (content? (decode-content '("x")))) +(check-true (content? (decode-elements '("x")))) +(check-true (content? (decode-string "x"))) + +(check-true (whitespace? " \n\t\r")) +(check-true (not (whitespace? " \n\t\rx "))) + +(check-equal? "a b c" (clean-up-index-string " a b c ")) + +(check-true (contract? (spliceof integer?)))