diff options
author | rustanleino <unknown> | 2010-03-11 00:27:39 +0000 |
---|---|---|
committer | rustanleino <unknown> | 2010-03-11 00:27:39 +0000 |
commit | 2bfb81bd10f969ad2834be5b6604606ad9c14dab (patch) | |
tree | 315328ea47d9bff63c38c7c8c85971b80a519a26 /Test/dafny0/TypeTests.dfy | |
parent | 4f420b504f7655642470b4e9fc1868b5f9239c32 (diff) |
Dafny: Added stratosphere tests for datatypes--that is, it is now checked that every datatype has some value.
Diffstat (limited to 'Test/dafny0/TypeTests.dfy')
-rw-r--r-- | Test/dafny0/TypeTests.dfy | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Test/dafny0/TypeTests.dfy b/Test/dafny0/TypeTests.dfy index 4cb02858..1616234e 100644 --- a/Test/dafny0/TypeTests.dfy +++ b/Test/dafny0/TypeTests.dfy @@ -16,3 +16,32 @@ class C { datatype D {
A;
}
+
+datatype Nothing { // error: no grounding constructor
+}
+
+datatype NeverendingList { // error: no grounding constructor
+ Cons(int, NeverendingList);
+}
+
+datatype MutuallyRecursiveDataType<T> {
+ FromANumber(int); // this is the base case
+ Else(TheCounterpart<T>, C);
+}
+
+datatype TheCounterpart<T> {
+ TreeLike(TheCounterpart<T>, TheCounterpart<T>);
+ More(MutuallyRecursiveDataType<T>);
+}
+
+// these 'ReverseOrder_' order tests may be called white-box unit tests
+datatype ReverseOrder_MutuallyRecursiveDataType<T> {
+ FromANumber(int); // this is the base case
+ Else(ReverseOrder_TheCounterpart<T>, C);
+}
+
+datatype ReverseOrder_TheCounterpart<T> {
+ TreeLike(ReverseOrder_TheCounterpart<T>, ReverseOrder_TheCounterpart<T>);
+ More(ReverseOrder_MutuallyRecursiveDataType<T>);
+}
+
|