summaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/eina_graph_suite.c56
1 files changed, 52 insertions, 4 deletions
diff --git a/src/tests/eina_graph_suite.c b/src/tests/eina_graph_suite.c
index 79c02aa..c49653d 100644
--- a/src/tests/eina_graph_suite.c
+++ b/src/tests/eina_graph_suite.c
@@ -5,12 +5,60 @@
#include <check.h>
#include "Eina_Graph.h"
+static void
+_feed_simple_graph(Eina_Graph *g)
+{
+ ck_assert(eina_graph_edge_add(g, 0, 5) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 4, 3) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 0, 1) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 9, 12) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 6, 4) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 5, 4) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 0, 2) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 11, 12) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 9, 10) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 0, 6) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 7, 8) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 9, 11) == EINA_TRUE);
+ ck_assert(eina_graph_edge_add(g, 5, 3) == EINA_TRUE);
+}
-START_TEST (test_eina_graph_lib)
+START_TEST (test_eina_graph_simple)
{
ck_assert(eina_graph_init() == 1);
ck_assert(eina_graph_init() == 2);
+ Eina_Graph *g = eina_graph_new(13, 2);
+ ck_assert(g != NULL);
+
+ _feed_simple_graph(g);
+
+ ck_assert(eina_graph_edge_add(g, -1, 3) == EINA_FALSE);
+ ck_assert(eina_graph_edge_add(g, 3, -1) == EINA_FALSE);
+ ck_assert(eina_graph_edge_add(g, 13, 3) == EINA_FALSE);
+ ck_assert(eina_graph_edge_add(g, 3, 13) == EINA_FALSE);
+
+ ck_assert(eina_graph_vertices_count(g) == 13);
+ ck_assert(eina_graph_edges_count(g) == 13);
+ ck_assert(eina_graph_degree(g, 4) == 3);
+ ck_assert(eina_graph_degree(g, 0) == 4);
+ ck_assert(eina_graph_degree_max(g) == 4);
+ ck_assert(eina_graph_degree_avg(g) == 2.0);
+ ck_assert(eina_graph_self_loops(g) == 0);
+
+ ck_assert(eina_graph_edge_add(g, 0, 0) == EINA_TRUE);
+
+ ck_assert(eina_graph_vertices_count(g) == 13);
+ ck_assert(eina_graph_edges_count(g) == 14);
+ ck_assert(eina_graph_degree(g, 4) == 3);
+ ck_assert(eina_graph_degree(g, 0) == 5);
+ ck_assert(eina_graph_degree_max(g) == 5);
+ ck_assert(eina_graph_degree_avg(g) > 2.153);
+ ck_assert(eina_graph_degree_avg(g) < 2.154);
+ ck_assert(eina_graph_self_loops(g) == 1);
+
+ eina_graph_free(g);
+
ck_assert(eina_graph_shutdown() == 1);
ck_assert(eina_graph_shutdown() == 0);
}
@@ -21,9 +69,9 @@ eina_graph_suite (void)
{
Suite *s = suite_create ("Eina Graph");
- TCase *tc_core = tcase_create ("Core");
- tcase_add_test (tc_core, test_eina_graph_lib);
- suite_add_tcase (s, tc_core);
+ TCase *tc_simple = tcase_create ("Simple Graph");
+ tcase_add_test (tc_simple, test_eina_graph_simple);
+ suite_add_tcase (s, tc_simple);
return s;
}