X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=ocaml%2Ftest.ml;h=3b6d904fd1f231db2f585f3fbdaedd3810d216e2;hb=4674dd787b5141c8aa22339d497ba671f4435da5;hp=ed41f7ac684c6188b18fc25c84620fdae340939e;hpb=f804e82c47ca8a25f3044ae630988af4b8da7b25;p=fireball-separation.git diff --git a/ocaml/test.ml b/ocaml/test.ml index ed41f7a..3b6d904 100644 --- a/ocaml/test.ml +++ b/ocaml/test.ml @@ -1,13 +1,5 @@ -let three = Array.length Sys.argv = 1;; - -let discriminator = - (* if three *) - (* then (module Lambda3 : Discriminator.Discriminator) *) - (* else *) - (module Lambda4 : Discriminator.Discriminator);; - -module Pippo = (val discriminator);; -open Pippo;; +open Lambda4;; +open Util;; let acaso l = let n = Random.int (List.length l) in @@ -20,24 +12,14 @@ let acaso2 l1 l2 = if n >= n1 then List.nth l2 (n - n1) else List.nth l1 n ;; -let rec take l n = +(* let rec take l n = if n = 0 then [] else match l with | [] -> [] | x::xs -> x :: (take xs (n-1)) -;; - -let test3 n vars = - let rec aux n inerts lams = - if n = 0 then take (Util.sort_uniq inerts) 5 - else let inerts, lams = if Random.int 2 = 0 - then inerts, ("(" ^ acaso vars ^ ". " ^ acaso2 inerts lams ^ ")") :: lams - else ("(" ^ acaso inerts ^ " " ^ acaso2 inerts lams^ ")") :: inerts, lams - in aux (n-1) inerts lams - in aux (2*n) vars [] -;; +;; *) -let test4 n vars = +let gen n vars = let rec take' l n = if n = 0 then [], [] else match l with @@ -55,23 +37,20 @@ let test4 n vars = let rec repeat f n = - prerr_endline "\n*************************** NEW TEST ***************************"; + prerr_endline "\n########################### NEW TEST ###########################"; f () ; if n > 0 then repeat f (n-1) ;; -(* let call_main3 tms = - let _ = ( - List.iter prerr_endline tms; prerr_newline (); - ) in Lambda3.main [Lambda3.magic tms ["*"]] -;; *) -let call_main4 div convs nums = - let _ = ( - (match div with Some div -> prerr_endline ("DIV: " ^ div) | None -> ()); - print_endline "CONV:"; List.iter prerr_endline convs; - print_endline "NUMS:"; List.iter prerr_endline nums; - prerr_newline (); - ) in Lambda4.main [Lambda4.magic_conv div convs nums ["*"]] +let solve div convs nums = + let p = String.concat "\n" ( + "$! randomly generated test" :: + ("D " ^ div) :: + List.map ((^) "C ") convs @ + List.map (fun s -> "N " ^ s ^ " Z") nums + ) in + prerr_endline p; + (Lambda4.solve ++ Lambda4.problem_of ++ Parser.problem_of_string) p ;; let main = @@ -80,16 +59,9 @@ let main = let complex = 200 in let vars = ["x"; "y"; "z"; "v" ; "w"; "a"; "b"; "c"] in - (* let open Parser in *) - - (* if three then repeat (fun _ -> - let tms = test3 complex vars in - call_main3 tms - ) num - else *) repeat (fun _ -> - let div, (conv, nums) = test4 complex vars in - call_main4 (Some div) conv nums + let div, (conv, nums) = gen complex vars in + solve div conv nums ) num ;