summaryrefslogtreecommitdiff
path: root/tp1/graph_test.ml
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2013-10-31 15:35:11 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2013-10-31 15:35:11 +0100
commit0b269f32dd9b8d349f94793dad44e728473e9f0a (patch)
tree066a30fee1efe19d897f5e153d7ea9aa3d7448af /tp1/graph_test.ml
downloadSystDigit-Projet-0b269f32dd9b8d349f94793dad44e728473e9f0a.tar.gz
SystDigit-Projet-0b269f32dd9b8d349f94793dad44e728473e9f0a.zip
First commit ; includes first TP and minijazz compiler
Diffstat (limited to 'tp1/graph_test.ml')
-rw-r--r--tp1/graph_test.ml28
1 files changed, 28 insertions, 0 deletions
diff --git a/tp1/graph_test.ml b/tp1/graph_test.ml
new file mode 100644
index 0000000..ac31677
--- /dev/null
+++ b/tp1/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 ();;
+