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; }
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); }