1
2 #include <igraph.h>
3 #include <stdio.h>
4
5 #include "test_utilities.inc"
6
7
main()8 int main() {
9 igraph_t graph;
10 igraph_integer_t prufer1[] = {2, 3, 2, 3};
11 igraph_integer_t prufer2[] = {0, 2, 4, 1, 1, 0};
12 igraph_vector_int_t prufer;
13 igraph_bool_t tree;
14
15 igraph_vector_int_view(&prufer, prufer1, sizeof(prufer1) / sizeof(igraph_integer_t));
16 igraph_from_prufer(&graph, &prufer);
17 igraph_is_tree(&graph, &tree, NULL, IGRAPH_ALL);
18 IGRAPH_ASSERT(tree);
19 print_graph(&graph);
20 igraph_destroy(&graph);
21
22 igraph_vector_int_view(&prufer, prufer2, sizeof(prufer2) / sizeof(igraph_integer_t));
23 igraph_from_prufer(&graph, &prufer);
24 igraph_is_tree(&graph, &tree, NULL, IGRAPH_ALL);
25 IGRAPH_ASSERT(tree);
26 print_graph(&graph);
27 igraph_destroy(&graph);
28
29 /* For a zero-length array, we cannot use the same pattern as above because
30 standard C does not allow raw zero-length arrays. */
31 igraph_vector_int_init(&prufer, 0);
32 igraph_from_prufer(&graph, &prufer);
33 igraph_is_tree(&graph, &tree, NULL, IGRAPH_ALL);
34 IGRAPH_ASSERT(tree);
35 print_graph(&graph);
36 igraph_destroy(&graph);
37 igraph_vector_int_destroy(&prufer);
38
39 VERIFY_FINALLY_STACK();
40
41 return 0;
42 }
43