data: Added type bitmasking to Node and Edge and check type on Edge creation

This commit is contained in:
Eberhard Graether
2014-07-31 15:07:18 +02:00
parent af9b75348c
commit b110d528dc
6 changed files with 153 additions and 33 deletions
+17
View File
@@ -148,6 +148,13 @@ public:
TS_ASSERT_EQUALS(n.getType(), n2.getType());
}
void test_node_type_bit_masking()
{
Node n(Node::NODE_NAMESPACE, "A");
TS_ASSERT(n.isType(Node::NODE_FUNCTION | Node::NODE_NAMESPACE | Node::NODE_CLASS));
TS_ASSERT(!n.isType(Node::NODE_FUNCTION | Node::NODE_METHOD | Node::NODE_CLASS));
}
void test_get_type_of_edges()
{
Node a(Node::NODE_UNDEFINED, "A");
@@ -169,6 +176,16 @@ public:
TS_ASSERT_EQUALS(e.getType(), e2.getType());
}
void test_edge_type_bit_masking()
{
Node a(Node::NODE_UNDEFINED, "A");
Node b(Node::NODE_UNDEFINED, "B");
Edge e(Edge::EDGE_TYPE_OF, &a, &b);
TS_ASSERT(e.isType(Edge::EDGE_MEMBER | Edge::EDGE_CALL | Edge::EDGE_TYPE_OF));
TS_ASSERT(!e.isType(Edge::EDGE_USAGE | Edge::EDGE_MEMBER | Edge::EDGE_CALL));
}
void test_node_finds_child_node()
{
Node a(Node::NODE_UNDEFINED, "A");