1 let three = Array.length Sys.argv = 1;;
5 (* then (module Lambda3 : Discriminator.Discriminator) *)
7 (module Lambda4 : Discriminator.Discriminator);;
9 module Pippo = (val discriminator);;
13 let n = Random.int (List.length l) in
18 let n1 = List.length l1 in
19 let n = Random.int (n1 + List.length l2) in
20 if n >= n1 then List.nth l2 (n - n1) else List.nth l1 n
27 | x::xs -> x :: (take xs (n-1))
31 let rec aux n inerts lams =
32 if n = 0 then take (Util.sort_uniq inerts) 5
33 else let inerts, lams = if Random.int 2 = 0
34 then inerts, ("(" ^ acaso vars ^ ". " ^ acaso2 inerts lams ^ ")") :: lams
35 else ("(" ^ acaso inerts ^ " " ^ acaso2 inerts lams^ ")") :: inerts, lams
36 in aux (n-1) inerts lams
46 | x1::x2::xs -> let a, b = take' xs (n-1) in x1::a,x2::b in
47 let rec aux n inerts lams =
48 if n = 0 then List.hd inerts, take' (Util.sort_uniq (List.tl inerts)) 5
49 else let inerts, lams = if Random.int 2 = 0
50 then inerts, ("(" ^ acaso vars ^ ". " ^ acaso2 inerts lams ^ ")") :: lams
51 else ("(" ^ acaso inerts ^ " " ^ acaso2 inerts lams^ ")") :: inerts, lams
52 in aux (n-1) inerts lams
58 prerr_endline "\n*************************** NEW TEST ***************************";
60 if n > 0 then repeat f (n-1)
63 (* let call_main3 tms =
65 List.iter prerr_endline tms; prerr_newline ();
66 ) in Lambda3.main [Lambda3.magic tms ["*"]]
68 let call_main4 div convs nums =
70 (match div with Some div -> prerr_endline ("DIV: " ^ div) | None -> ());
71 print_endline "CONV:"; List.iter prerr_endline convs;
72 print_endline "NUMS:"; List.iter prerr_endline nums;
74 ) in Lambda4.main [Lambda4.magic_conv div convs nums ["*"]]
81 let vars = ["x"; "y"; "z"; "v" ; "w"; "a"; "b"; "c"] in
83 (* let open Parser in *)
85 (* if three then repeat (fun _ ->
86 let tms = test3 complex vars in
91 let div, (conv, nums) = test4 complex vars in
92 call_main4 (Some div) conv nums
96 prerr_endline "\n---- ALL TESTS COMPLETED ----"