/*
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);
	}
}
Example #5
0
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;
}