summaryrefslogtreecommitdiff
path: root/test/unit/expr/node_black.h
diff options
context:
space:
mode:
authorChristopher L. Conway <christopherleeconway@gmail.com>2010-07-28 22:57:36 +0000
committerChristopher L. Conway <christopherleeconway@gmail.com>2010-07-28 22:57:36 +0000
commit88766918615793536224bf50d0bb70ec9f9efd93 (patch)
tree5a038bb2c17199f43d7a422063751bc3839b7388 /test/unit/expr/node_black.h
parentd2787f41e72184fbdf2619d3c0466bed9b6211be (diff)
Forcing a type check on Node construction in debug mode (Fixes: #188)
NOTE: mkNode/mkExpr/parsing functions can now throw type checking exceptions
Diffstat (limited to 'test/unit/expr/node_black.h')
-rw-r--r--test/unit/expr/node_black.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/test/unit/expr/node_black.h b/test/unit/expr/node_black.h
index c79832583..f1bb7c251 100644
--- a/test/unit/expr/node_black.h
+++ b/test/unit/expr/node_black.h
@@ -40,6 +40,7 @@ private:
NodeManager* d_nodeManager;
NodeManagerScope* d_scope;
TypeNode *d_booleanType;
+ TypeNode *d_realType;
public:
@@ -48,6 +49,7 @@ public:
d_nodeManager = new NodeManager(d_ctxt);
d_scope = new NodeManagerScope(d_nodeManager);
d_booleanType = new TypeNode(d_nodeManager->booleanType());
+ d_realType = new TypeNode(d_nodeManager->realType());
}
void tearDown() {
@@ -265,8 +267,9 @@ public:
void testEqNode() {
/* Node eqNode(const Node& right) const; */
- Node left = d_nodeManager->mkConst(true);
- Node right = d_nodeManager->mkNode(NOT, d_nodeManager->mkConst(false));
+ TypeNode t = d_nodeManager->mkSort();
+ Node left = d_nodeManager->mkVar(t);
+ Node right = d_nodeManager->mkVar(t);
Node eq = left.eqNode(right);
TS_ASSERT(EQUAL == eq.getKind());
@@ -326,7 +329,7 @@ public:
Node a = d_nodeManager->mkVar(*d_booleanType);
Node b = d_nodeManager->mkVar(*d_booleanType);
- Node cnd = d_nodeManager->mkNode(PLUS, a, b);
+ Node cnd = d_nodeManager->mkNode(OR, a, b);
Node thenBranch = d_nodeManager->mkConst(true);
Node elseBranch = d_nodeManager->mkNode(NOT, d_nodeManager->mkConst(false));
Node ite = cnd.iteNode(thenBranch, elseBranch);
@@ -395,10 +398,13 @@ public:
n = d_nodeManager->mkNode(IFF, a, b);
TS_ASSERT(IFF == n.getKind());
- n = d_nodeManager->mkNode(PLUS, a, b);
+ Node x = d_nodeManager->mkVar(*d_realType);
+ Node y = d_nodeManager->mkVar(*d_realType);
+
+ n = d_nodeManager->mkNode(PLUS, x, y);
TS_ASSERT(PLUS == n.getKind());
- n = d_nodeManager->mkNode(UMINUS, a);
+ n = d_nodeManager->mkNode(UMINUS, x);
TS_ASSERT(UMINUS == n.getKind());
}
@@ -408,7 +414,7 @@ public:
TypeNode predType = d_nodeManager->mkFunctionType(sort, booleanType);
Node f = d_nodeManager->mkVar(predType);
- Node a = d_nodeManager->mkVar(booleanType);
+ Node a = d_nodeManager->mkVar(sort);
Node fa = d_nodeManager->mkNode(kind::APPLY_UF, f, a);
TS_ASSERT( fa.hasOperator() );
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback