Ejemplo n.º 1
0
int main(int argc, char **argv){
	Graph g;
	int i;
	int j;
	
	g = graph_create(TEST_SIZE);
	assert(graph_vertex_count(g) == TEST_SIZE);
	
	for (i = 0; i < TEST_SIZE; i++){
		for (j = 0; j < TEST_SIZE; j++){
			assert(graph_has_edge(g, i, j) == 0);
		}
	}
	
	for (i = 0; i < TEST_SIZE; i++){
		assert(graph_out_degree(g, i) == 0);
		graph_foreach(g, i, match_sink, 0);
	}
	
	assert(graph_edge_count(g) == 0);
	
	for (i = 0; i < TEST_SIZE; i++){
		for (j = 0; j < TEST_SIZE; j++){
			if (i < j){
				graph_add_edge(g, i, j);
			}
		}
	}
	
	for (i = 0; i < TEST_SIZE; i++){
		for (j = 0; j < TEST_SIZE; j++){
			assert(graph_has_edge(g, i, j) == (i < j));
		}
	}
	
	assert(graph_edge_count(g) == (TEST_SIZE*(TEST_SIZE-1)/2));
	
	graph2dot(g);
	
	graph_destroy(g);
	
	return 0;
}
Ejemplo n.º 2
0
void testEDGELABELS()
{
    graph_t *g = mkGraphABCDE();
    graph_add_edge(g, "A", "B", "AB");
    graph_add_edge(g, "B", "C", "BC");
    graph_add_edge(g, "A", "D", "AD");

    void *label;

    CU_ASSERT_FALSE(graph_has_edge(g, "A", "A", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT(graph_has_edge(g, "A", "B", &label));
    CU_ASSERT(streq(label, "AB"));
    CU_ASSERT_FALSE(graph_has_edge(g, "A", "C", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT(graph_has_edge(g, "A", "D", &label));
    CU_ASSERT(streq(label, "AD"));
    CU_ASSERT_FALSE(graph_has_edge(g, "A", "E", &label));
    CU_ASSERT(label == NULL);

    CU_ASSERT_FALSE(graph_has_edge(g, "B", "A", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "B", "B", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT(graph_has_edge(g, "B", "C", &label));
    CU_ASSERT(streq(label, "BC"));
    CU_ASSERT_FALSE(graph_has_edge(g, "B", "D", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "B", "E", &label));
    CU_ASSERT(label == NULL);

    CU_ASSERT_FALSE(graph_has_edge(g, "C", "A", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "C", "B", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "C", "C", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "C", "D", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "C", "E", &label));
    CU_ASSERT(label == NULL);

    CU_ASSERT_FALSE(graph_has_edge(g, "D", "A", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "D", "B", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "D", "C", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "D", "D", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "D", "E", &label));
    CU_ASSERT(label == NULL);

    CU_ASSERT_FALSE(graph_has_edge(g, "E", "A", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "E", "B", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "E", "C", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "E", "D", &label));
    CU_ASSERT(label == NULL);
    CU_ASSERT_FALSE(graph_has_edge(g, "E", "E", &label));
    CU_ASSERT(label == NULL);

    freeGraphABCDE(g);
}