/* Creates and prints the graph seen in diagrams/simple-graph.png. */ void createSimpleGraph() { uint64 one = 1; uint64 two = 2; uint64 three = 3; uint64 four = 4; uint64 five = 5; // From our sample graph we know that 1 has the most children (3) so // maxEdges MUST be at least that number. uint64 maxEdges = 3; // We also know that there are 5 nodes. uint64 initialCapacity = 5; RoomyGraph *g = RoomyGraph_make("simple-graph", maxEdges, initialCapacity); // Add all the nodes RoomyGraph_addNode(g, one); RoomyGraph_addNode(g, two); RoomyGraph_addNode(g, three); RoomyGraph_addNode(g, four); RoomyGraph_addNode(g, five); // Now, add all the edges RoomyGraph_addEdge(g, one, two); RoomyGraph_addEdge(g, one, three); RoomyGraph_addEdge(g, one, five); RoomyGraph_addEdge(g, three, one); RoomyGraph_addEdge(g, five, five); RoomyGraph_sync(g); uint64 nodeCount = RoomyGraph_nodeCount(g); printf("There are %lli nodes.\n", nodeCount); RoomyGraph_print(g); RoomyGraph_destroy(g); }
RoomyGraph* createStarGraph() { RoomyGraph *g = createBasicGraph("star-graph"); RoomyGraph_addEdge(g, n1, n2); RoomyGraph_addEdge(g, n1, n3); RoomyGraph_addEdge(g, n1, n4); RoomyGraph_sync(g); return g; }
RoomyGraph* createCircularGraph() { RoomyGraph *g = createBasicGraph("circular-graph"); RoomyGraph_addEdge(g, n1, n2); RoomyGraph_addEdge(g, n2, n3); RoomyGraph_addEdge(g, n3, n4); RoomyGraph_addEdge(g, n4, n1); RoomyGraph_sync(g); return g; }
void RoomyGraph_addEdges(RoomyGraph *g, uint64 from, uint64 *children, uint64 childCount) { uint64 i = 0; for(i = 0; i < childCount; i++) { uint64 child = children[i]; RoomyGraph_addEdge(g, from, child); } }
int addEdgeTest() { RoomyGraph *g = RoomyGraph_make("addEdgeTest", 2, 2); uint64 from = 2; uint64 to = 4; RoomyGraph_addNode(g, from); RoomyGraph_addNode(g, to); RoomyGraph_addEdge(g, from, to); RoomyGraph_sync(g); // RoomyGraph_print(g); assert(TRUE == RoomyGraph_containsEdge(g, from, to)); assert(FALSE == RoomyGraph_containsEdge(g, to, from)); RoomyGraph_destroy(g); printf("addEdgeTest completed successfully.\n"); return PASSED; }