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