summaryrefslogtreecommitdiff
path: root/sched/graph_test.ml
diff options
context:
space:
mode:
Diffstat (limited to 'sched/graph_test.ml')
-rw-r--r--sched/graph_test.ml28
1 files changed, 28 insertions, 0 deletions
diff --git a/sched/graph_test.ml b/sched/graph_test.ml
new file mode 100644
index 0000000..ac31677
--- /dev/null
+++ b/sched/graph_test.ml
@@ -0,0 +1,28 @@
+open Graph
+
+let rec check l = match l with
+ | [] | [_] -> true
+ | s1::s2::l -> (String.length s1 <= String.length s2) && (check (s2::l))
+
+let test_good () =
+ let g = mk_graph () in
+ add_node g "1"; add_node g "21"; add_node g "22"; add_node g "333";
+ add_edge g "1" "21"; add_edge g "1" "22";
+ add_edge g "21" "333"; add_edge g "22" "333";
+ let l = topological g in
+ print_string "Test: Tri topologique --> ";
+ if check l then print_endline "OK" else print_endline "FAIL";
+ List.iter print_endline l;
+ print_newline ()
+
+let test_cycle () =
+ let g = mk_graph () in
+ add_node g "1"; add_node g "2"; add_node g "3";
+ add_edge g "1" "2"; add_edge g "2" "3"; add_edge g "3" "1";
+ print_string "Test: Detection de cycle --> ";
+ if has_cycle g then print_endline "OK" else print_endline "FAIL"
+;;
+
+test_cycle ();;
+test_good ();;
+