From 4fd8753c6601939eb40f5487a291dff39bf9bff0 Mon Sep 17 00:00:00 2001 From: Stevie Strickland Date: Fri, 16 Jan 2009 17:50:05 +0000 Subject: [PATCH] Start of a testing framework for unit contracts. svn: r13173 --- collects/tests/units/test-unit-contracts.ss | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 collects/tests/units/test-unit-contracts.ss diff --git a/collects/tests/units/test-unit-contracts.ss b/collects/tests/units/test-unit-contracts.ss new file mode 100644 index 0000000000..1320dab453 --- /dev/null +++ b/collects/tests/units/test-unit-contracts.ss @@ -0,0 +1,31 @@ +(require "test-harness.ss" + scheme/unit) + +(define-signature sig1 + ((contracted [x number?]))) +(define-signature sig2 + ((contracted [f (-> number? number?)))) +(define-signature sig3 extends sig2 + ((contracted [g (-> number? boolean?)))) +(define-signature sig4 + ((contracted [a number?] [b (-> boolean? number?)]))) +(define-signature sig5 + ((contracted [c string?]) + (contracted [d symbol?]))) + +(define-unit unit1 + (import sig1) + (export sig2) + (define (f n) x)) + +(define-unit unit2 + (import sig3 sig4) + (export) + + (b (g a))) + +(define-unit unit3 + (import) + (export sig5) + + (define-values (c d) (values "foo" 'a)))