[Toss-devel-svn] SF.net SVN: toss:[1344] trunk/Toss
Status: Beta
Brought to you by:
lukaszkaiser
|
From: <luk...@us...> - 2011-03-05 23:01:27
|
Revision: 1344
http://toss.svn.sourceforge.net/toss/?rev=1344&view=rev
Author: lukaszkaiser
Date: 2011-03-05 23:01:19 +0000 (Sat, 05 Mar 2011)
Log Message:
-----------
Separate small (fast) and big (slower) tests.
Modified Paths:
--------------
trunk/Toss/Makefile
trunk/Toss/Play/GameTest.ml
trunk/Toss/Play/HeuristicTest.ml
Added Paths:
-----------
trunk/Toss/TossFullTest.ml
Modified: trunk/Toss/Makefile
===================================================================
--- trunk/Toss/Makefile 2011-03-03 23:47:31 UTC (rev 1343)
+++ trunk/Toss/Makefile 2011-03-05 23:01:19 UTC (rev 1344)
@@ -136,6 +136,7 @@
# All OUnit tests, aggregate
TossTest:
+TossFullTest:
# ------ CLEAN ------
Modified: trunk/Toss/Play/GameTest.ml
===================================================================
--- trunk/Toss/Play/GameTest.ml 2011-03-03 23:47:31 UTC (rev 1343)
+++ trunk/Toss/Play/GameTest.ml 2011-03-05 23:01:19 UTC (rev 1344)
@@ -259,54 +259,6 @@
(move_opt <> None)
);
- "play: chess suggest first move" >::
- (fun () ->
- skip_if true "loading takes long, worked last time";
- let horizon, advr, state =
- Lazy.force chess_game in
- let move_opt = (let p,ps = Game.initialize_default state
- ~advr ?horizon
- ~loc:0 ~effort:1
- ~search_method:"alpha_beta_ord" () in
- Game.suggest p ps) in
- assert_bool "Game is not over yet -- some move expected."
- (move_opt <> None);
- );
-
- "play: checkers suggest first move depth 4" >::
- (fun () ->
- let horizon, advr, state =
- Lazy.force checkers_game in
- let move_opt = (let p,ps = Game.initialize_default state
- ~advr ?horizon
- ~loc:0 ~effort:4
- ~search_method:"alpha_beta_ord" () in
- Game.suggest p ps) in
- assert_bool "Game is not over yet -- some move expected."
- (move_opt <> None);
- );
-
- "play: chess begin random play" >::
- (fun () ->
- skip_if true "loading takes long, worked last time";
- let _, advr, state =
- Lazy.force chess_game in
- let (game, struc) = (fst state, (snd state).Arena.struc) in
- let play =
- {Game.game = game; agents=
- [|Game.Random_move; Game.Random_move|];
- delta = 2.0} in (* FIXME: give/calc delta *)
- let init_state = Game.initial_state play struc in
- (* let endstate,payoff = *)
- ignore (Game.play ~grid_size:Move.cGRID_SIZE
- ~set_timer:360 ~horizon:30 play init_state) (* in *)
- (* nothing to assert -- just check halting without exceptions *)
- (*
- Printf.printf "Chess random play horizon=30 ended in:\n%s\n%!"
- (Structure.sprint endstate)
- *)
- );
-
"breakthrough payoff" >::
(fun () ->
let horizon, advr, state =
@@ -356,55 +308,6 @@
);
- "chess draw" >::
- (fun () ->
- skip_if true "loading takes long, worked last time";
- let horizon, advr, state =
- update_game chess_game
-"[a1, b1, c1, d1, e1, f1, g1, h1, a2, b2, c2, d2, e2, f2, g2, h2, a3, b3, c3, d3, e3, f3, g3, h3, a4, b4, c4, d4, e4, f4, g4, h4, a5, b5, c5, d5, e5, f5, g5, h5, a6, b6, c6, d6, e6, f6, g6, h6, a7, b7, c7, d7, e7, f7, g7, h7, a8, b8, c8, d8, e8, f8, g8, h8 | D1 {(a1, b2); (b1, c2); (c1, d2); (d1, e2); (e1, f2); (f1, g2); (g1, h2); (a2, b3); (b2, a1); (b2, c3); (c2, b1); (c2, d3); (d2, c1); (d2, e3); (e2, d1); (e2, f3); (f2, e1); (f2, g3); (g2, f1); (g2, h3); (h2, g1); (a3, b4); (b3, a2); (b3, c4); (c3, b2); (c3, d4); (d3, c2); (d3, e4); (e3, d2); (e3, f4); (f3, e2); (f3, g4); (g3, f2); (g3, h4); (h3, g2); (a4, b5); (b4, a3); (b4, c5); (c4, b3); (c4, d5); (d4, c3); (d4, e5); (e4, d3); (e4, f5); (f4, e3); (f4, g5); (g4, f3); (g4, h5); (h4, g3); (a5, b6); (b5, a4); (b5, c6); (c5, b4); (c5, d6); (d5, c4); (d5, e6); (e5, d4); (e5, f6); (f5, e4); (f5, g6); (g5, f4); (g5, h6); (h5, g4); (a6, b7); (b6, a5); (b6, c7); (c6, b5); (c6, d7); (d6, c5); (d6, e7); (e6, d5); (e6, f7); (f6, e5); (f6, g7); (g6, f5); (g6, h7); (h6, g5); (a7, b8); (b7, a6); (b7, c8); (c7, b6); (c7, d8); (d7, c6); (d7, e8); (e7, d6); (e7, f8); (f7, e6); (f7, g8); (g7, f6); (g7, h8); (h7, g6); (b8, a7); (c8, b7); (d8, c7); (e8, d7); (f8, e7); (g8, f7); (h8, g7)}; D2 {(b1, a2); (c1, b2); (d1, c2); (e1, d2); (f1, e2); (g1, f2); (h1, g2); (a2, b1); (b2, c1); (b2, a3); (c2, d1); (c2, b3); (d2, e1); (d2, c3); (e2, f1); (e2, d3); (f2, g1); (f2, e3); (g2, h1); (g2, f3); (h2, g3); (a3, b2); (b3, c2); (b3, a4); (c3, d2); (c3, b4); (d3, e2); (d3, c4); (e3, f2); (e3, d4); (f3, g2); (f3, e4); (g3, h2); (g3, f4); (h3, g4); (a4, b3); (b4, c3); (b4, a5); (c4, d3); (c4, b5); (d4, e3); (d4, c5); (e4, f3); (e4, d5); (f4, g3); (f4, e5); (g4, h3); (g4, f5); (h4, g5); (a5, b4); (b5, c4); (b5, a6); (c5, d4); (c5, b6); (d5, e4); (d5, c6); (e5, f4); (e5, d6); (f5, g4); (f5, e6); (g5, h4); (g5, f6); (h5, g6); (a6, b5); (b6, c5); (b6, a7); (c6, d5); (c6, b7); (d6, e5); (d6, c7); (e6, f5); (e6, d7); (f6, g5); (f6, e7); (g6, h5); (g6, f7); (h6, g7); (a7, b6); (b7, c6); (b7, a8); (c7, d6); (c7, b8); (d7, e6); (d7, c8); (e7, f6); (e7, d8); (f7, g6); (f7, e8); (g7, h6); (g7, f8); (h7, g8); (a8, b7); (b8, c7); (c8, d7); (d8, e7); (e8, f7); (f8, g7); (g8, h7)}; bB:1 {}; wB:1 {}; wN:1 {}; wP:1 {}; wQ:1 {}; wR:1 {} | ] \"
- ... ... ... ...
- ... ... +bN ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... bP. ...-bNwK.
- ... ... ... ...
- ...bP ... ... ...
- ... ... ... ...
- bR. ... ...bQ ...
- ... ... ... ...
- ... ...bK ... ...bP
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
-\"" 0 in
-
- let payoffs = Array.to_list
- (Array.mapi (fun i v->string_of_int i,v)
- (fst state).Arena.graph.((snd state).Arena.cur_loc).Arena.payoffs)
- in
- let ev (p,e) =
- p^": "^(string_of_float
- (Solver.M.get_real_val e (snd state).Arena.struc)) in
- let answ =
- String.concat ", " (List.sort compare (List.map ev payoffs)) in
- assert_equal ~msg:"draw (white no move): direct" ~printer:(fun x->x)
- "0: 0., 1: 0." answ;
-
- let move_opt = (let p,ps = Game.initialize_default state
- ~advr ?horizon
- ~loc:0 ~effort:1
- ~search_method:"alpha_beta_ord" () in
- Game.toss ~grid_size:Move.cGRID_SIZE p ps) in
- assert_equal ~msg:"draw (white no move): suggest" ~printer:(function
- | Aux.Left (bpos, moves, _, _) ->
- "game not over: "^ move_gs_str (snd state) moves.(bpos)
- | Aux.Right poffs ->
- Printf.sprintf "{W: %F; B: %F}" poffs.(0) poffs.(1))
- (Aux.Right [| 0.0; 0.0 |]) move_opt;
-);
-
"matching: breakthrough suggest start" >::
(fun () ->
let horizon, advr, state =
@@ -460,6 +363,107 @@
]
+let misc_tests_big = "misc_big" >::: [
+
+ "play: chess suggest first move" >::
+ (fun () ->
+ skip_if true "loading takes long, worked last time";
+ let horizon, advr, state =
+ Lazy.force chess_game in
+ let move_opt = (let p,ps = Game.initialize_default state
+ ~advr ?horizon
+ ~loc:0 ~effort:1
+ ~search_method:"alpha_beta_ord" () in
+ Game.suggest p ps) in
+ assert_bool "Game is not over yet -- some move expected."
+ (move_opt <> None);
+ );
+
+ "play: checkers suggest first move depth 4" >::
+ (fun () ->
+ let horizon, advr, state =
+ Lazy.force checkers_game in
+ let move_opt = (let p,ps = Game.initialize_default state
+ ~advr ?horizon
+ ~loc:0 ~effort:4
+ ~search_method:"alpha_beta_ord" () in
+ Game.suggest p ps) in
+ assert_bool "Game is not over yet -- some move expected."
+ (move_opt <> None);
+ );
+
+ "play: chess begin random play" >::
+ (fun () ->
+ skip_if true "loading takes long, worked last time";
+ let _, advr, state =
+ Lazy.force chess_game in
+ let (game, struc) = (fst state, (snd state).Arena.struc) in
+ let play =
+ {Game.game = game; agents=
+ [|Game.Random_move; Game.Random_move|];
+ delta = 2.0} in (* FIXME: give/calc delta *)
+ let init_state = Game.initial_state play struc in
+ (* let endstate,payoff = *)
+ ignore (Game.play ~grid_size:Move.cGRID_SIZE
+ ~set_timer:360 ~horizon:30 play init_state) (* in *)
+ (* nothing to assert -- just check halting without exceptions *)
+ (*
+ Printf.printf "Chess random play horizon=30 ended in:\n%s\n%!"
+ (Structure.sprint endstate)
+ *)
+ );
+
+ "chess draw" >::
+ (fun () ->
+ skip_if true "loading takes long, worked last time";
+ let horizon, advr, state =
+ update_game chess_game
+"[a1, b1, c1, d1, e1, f1, g1, h1, a2, b2, c2, d2, e2, f2, g2, h2, a3, b3, c3, d3, e3, f3, g3, h3, a4, b4, c4, d4, e4, f4, g4, h4, a5, b5, c5, d5, e5, f5, g5, h5, a6, b6, c6, d6, e6, f6, g6, h6, a7, b7, c7, d7, e7, f7, g7, h7, a8, b8, c8, d8, e8, f8, g8, h8 | D1 {(a1, b2); (b1, c2); (c1, d2); (d1, e2); (e1, f2); (f1, g2); (g1, h2); (a2, b3); (b2, a1); (b2, c3); (c2, b1); (c2, d3); (d2, c1); (d2, e3); (e2, d1); (e2, f3); (f2, e1); (f2, g3); (g2, f1); (g2, h3); (h2, g1); (a3, b4); (b3, a2); (b3, c4); (c3, b2); (c3, d4); (d3, c2); (d3, e4); (e3, d2); (e3, f4); (f3, e2); (f3, g4); (g3, f2); (g3, h4); (h3, g2); (a4, b5); (b4, a3); (b4, c5); (c4, b3); (c4, d5); (d4, c3); (d4, e5); (e4, d3); (e4, f5); (f4, e3); (f4, g5); (g4, f3); (g4, h5); (h4, g3); (a5, b6); (b5, a4); (b5, c6); (c5, b4); (c5, d6); (d5, c4); (d5, e6); (e5, d4); (e5, f6); (f5, e4); (f5, g6); (g5, f4); (g5, h6); (h5, g4); (a6, b7); (b6, a5); (b6, c7); (c6, b5); (c6, d7); (d6, c5); (d6, e7); (e6, d5); (e6, f7); (f6, e5); (f6, g7); (g6, f5); (g6, h7); (h6, g5); (a7, b8); (b7, a6); (b7, c8); (c7, b6); (c7, d8); (d7, c6); (d7, e8); (e7, d6); (e7, f8); (f7, e6); (f7, g8); (g7, f6); (g7, h8); (h7, g6); (b8, a7); (c8, b7); (d8, c7); (e8, d7); (f8, e7); (g8, f7); (h8, g7)}; D2 {(b1, a2); (c1, b2); (d1, c2); (e1, d2); (f1, e2); (g1, f2); (h1, g2); (a2, b1); (b2, c1); (b2, a3); (c2, d1); (c2, b3); (d2, e1); (d2, c3); (e2, f1); (e2, d3); (f2, g1); (f2, e3); (g2, h1); (g2, f3); (h2, g3); (a3, b2); (b3, c2); (b3, a4); (c3, d2); (c3, b4); (d3, e2); (d3, c4); (e3, f2); (e3, d4); (f3, g2); (f3, e4); (g3, h2); (g3, f4); (h3, g4); (a4, b3); (b4, c3); (b4, a5); (c4, d3); (c4, b5); (d4, e3); (d4, c5); (e4, f3); (e4, d5); (f4, g3); (f4, e5); (g4, h3); (g4, f5); (h4, g5); (a5, b4); (b5, c4); (b5, a6); (c5, d4); (c5, b6); (d5, e4); (d5, c6); (e5, f4); (e5, d6); (f5, g4); (f5, e6); (g5, h4); (g5, f6); (h5, g6); (a6, b5); (b6, c5); (b6, a7); (c6, d5); (c6, b7); (d6, e5); (d6, c7); (e6, f5); (e6, d7); (f6, g5); (f6, e7); (g6, h5); (g6, f7); (h6, g7); (a7, b6); (b7, c6); (b7, a8); (c7, d6); (c7, b8); (d7, e6); (d7, c8); (e7, f6); (e7, d8); (f7, g6); (f7, e8); (g7, h6); (g7, f8); (h7, g8); (a8, b7); (b8, c7); (c8, d7); (d8, e7); (e8, f7); (f8, g7); (g8, h7)}; bB:1 {}; wB:1 {}; wN:1 {}; wP:1 {}; wQ:1 {}; wR:1 {} | ] \"
+ ... ... ... ...
+ ... ... +bN ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... bP. ...-bNwK.
+ ... ... ... ...
+ ...bP ... ... ...
+ ... ... ... ...
+ bR. ... ...bQ ...
+ ... ... ... ...
+ ... ...bK ... ...bP
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+\"" 0 in
+
+ let payoffs = Array.to_list
+ (Array.mapi (fun i v->string_of_int i,v)
+ (fst state).Arena.graph.((snd state).Arena.cur_loc).Arena.payoffs)
+ in
+ let ev (p,e) =
+ p^": "^(string_of_float
+ (Solver.M.get_real_val e (snd state).Arena.struc)) in
+ let answ =
+ String.concat ", " (List.sort compare (List.map ev payoffs)) in
+ assert_equal ~msg:"draw (white no move): direct" ~printer:(fun x->x)
+ "0: 0., 1: 0." answ;
+
+ let move_opt = (let p,ps = Game.initialize_default state
+ ~advr ?horizon
+ ~loc:0 ~effort:1
+ ~search_method:"alpha_beta_ord" () in
+ Game.toss ~grid_size:Move.cGRID_SIZE p ps) in
+ assert_equal ~msg:"draw (white no move): suggest" ~printer:(function
+ | Aux.Left (bpos, moves, _, _) ->
+ "game not over: "^ move_gs_str (snd state) moves.(bpos)
+ | Aux.Right poffs ->
+ Printf.sprintf "{W: %F; B: %F}" poffs.(0) poffs.(1))
+ (Aux.Right [| 0.0; 0.0 |]) move_opt;
+);
+
+]
+
let search_tests algo comment randomize effort_easy time_easy effort_medium
time_medium effort_hard time_hard =
let easy_case = compute_try algo randomize effort_easy time_easy
@@ -898,6 +902,10 @@
let tests = "Game" >::: [
misc_tests;
search_tests "alpha_beta_ord" "effort 2 3 4" false 2 120 3 240 4 360;
+]
+
+let bigtests = "GameBig" >::: [
+ misc_tests_big;
search_tests "alpha_beta_ord" "time 8 16 32" false 10 8 10 16 10 32;
]
@@ -945,9 +953,10 @@
);
]
-let a =
- Aux.run_test_if_target "GameTest" tests
+let a = Aux.run_test_if_target "GameTest" tests
+let a = Aux.run_test_if_target "GameTest" bigtests
+
let a () = run_test_tt ~verbose:true experiments
let a () =
Modified: trunk/Toss/Play/HeuristicTest.ml
===================================================================
--- trunk/Toss/Play/HeuristicTest.ml 2011-03-03 23:47:31 UTC (rev 1343)
+++ trunk/Toss/Play/HeuristicTest.ml 2011-03-05 23:01:19 UTC (rev 1344)
@@ -133,113 +133,6 @@
state (formula_of_str "ex y (C(x, y) and F(y))")));
);
- "expanded_description: fenced breakthrough 2 vars" >::
- (fun () ->
- let state =
- struc_of_string
-"[ | | ] \"
-
- F F F F F F F F
- ... ... ... ...
- B B..B B..B B..B B..
- ... ... ... ...
- B..B B..B B..B B..B
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- W W..W W..W W..W W..
- ... ... ... ...
- W..W W..W W..W W..W
-
- F F F F F F F F
-\"" in
- assert_equal ~printer:(fun x->x)
- "ex y7, y6, y5, y4, y3, y2, y1, y0 ((C(y7, y6) and C(y6, y5) and C(y5, y4) and C(y4, y3) and C(y3, y2) and C(y2, y1) and C(y1, y0) and C(y0, x) and C(x, y)))"
- (Formula.str (Heuristic.expanded_description 5
- (Aux.strings_of_list ["B"; "W"])
- state (formula_of_str "C(x, y) and F(y)")));
- );
-(*
- "suggest_expansion: tic-tac-toe" >::
- (fun () ->
- let state = struc_of_string
-"[ | P:1 { }; Q:1 { } | ] \"
-
- . . .
-
- . . .
-
- . . .
-\"" in
- (* A single substructure usually has exponentially many
- different descriptions. *)
- assert_bool "Should suggest not expanding tic-tac-toe."
- (not (Heuristic.suggest_expansion
- (formula_of_str winQxyz) state));
- );
-
- "suggest_expansion: breakthrough" >::
- (fun () ->
- let state =
- struc_of_string
-"[ | | ] \"
- ... ... ... ...
- B B..B B..B B..B B..
- ... ... ... ...
- B..B B..B B..B B..B
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- W W..W W..W W..W W..
- ... ... ... ...
- W..W W..W W..W W..W
-\"" in
- (* A single substructure usually has exponentially many
- different descriptions. *)
- assert_bool "Should suggest expanding breakthrough."
- (Heuristic.suggest_expansion
- (formula_of_str "ex x (W(x) and not ex y C(x, y))") state);
- );
-
- "suggest_expansion: gomoku8x8" >::
- (fun () ->
- let state =
- struc_of_string
-"[ | P:1 { }; Q:1 { } | ] \"
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
- ... ... ... ...
-\"" in
- assert_bool "Should suggest not expanding gomoku."
- (not (Heuristic.suggest_expansion
- (formula_of_str winQvwxyz) state));
- );
-*)
"expanded_form: fenced breakthrough" >::
(fun () ->
let state =
@@ -407,9 +300,123 @@
));
]
+
+let bigtests = "HeuristicBig" >::: [
+ "expanded_description: fenced breakthrough 2 vars" >::
+ (fun () ->
+ let state =
+ struc_of_string
+"[ | | ] \"
+
+ F F F F F F F F
+ ... ... ... ...
+ B B..B B..B B..B B..
+ ... ... ... ...
+ B..B B..B B..B B..B
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ W W..W W..W W..W W..
+ ... ... ... ...
+ W..W W..W W..W W..W
+
+ F F F F F F F F
+\"" in
+ assert_equal ~printer:(fun x->x)
+ "ex y7, y6, y5, y4, y3, y2, y1, y0 ((C(y7, y6) and C(y6, y5) and C(y5, y4) and C(y4, y3) and C(y3, y2) and C(y2, y1) and C(y1, y0) and C(y0, x) and C(x, y)))"
+ (Formula.str (Heuristic.expanded_description 5
+ (Aux.strings_of_list ["B"; "W"])
+ state (formula_of_str "C(x, y) and F(y)")));
+ );
+(*
+ "suggest_expansion: tic-tac-toe" >::
+ (fun () ->
+ let state = struc_of_string
+"[ | P:1 { }; Q:1 { } | ] \"
+
+ . . .
+
+ . . .
+
+ . . .
+\"" in
+ (* A single substructure usually has exponentially many
+ different descriptions. *)
+ assert_bool "Should suggest not expanding tic-tac-toe."
+ (not (Heuristic.suggest_expansion
+ (formula_of_str winQxyz) state));
+ );
+
+ "suggest_expansion: breakthrough" >::
+ (fun () ->
+ let state =
+ struc_of_string
+"[ | | ] \"
+ ... ... ... ...
+ B B..B B..B B..B B..
+ ... ... ... ...
+ B..B B..B B..B B..B
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ W W..W W..W W..W W..
+ ... ... ... ...
+ W..W W..W W..W W..W
+\"" in
+ (* A single substructure usually has exponentially many
+ different descriptions. *)
+ assert_bool "Should suggest expanding breakthrough."
+ (Heuristic.suggest_expansion
+ (formula_of_str "ex x (W(x) and not ex y C(x, y))") state);
+ );
+
+ "suggest_expansion: gomoku8x8" >::
+ (fun () ->
+ let state =
+ struc_of_string
+"[ | P:1 { }; Q:1 { } | ] \"
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+ ... ... ... ...
+\"" in
+ assert_bool "Should suggest not expanding gomoku."
+ (not (Heuristic.suggest_expansion
+ (formula_of_str winQvwxyz) state));
+ );
+*)
+]
+
+
let a =
Aux.run_test_if_target "HeuristicTest" tests
+let a =
+ Aux.run_test_if_target "HeuristicTest" bigtests
let a () =
match test_filter ["Heuristic:9:of_payoff: monotonic gomoku"]
Added: trunk/Toss/TossFullTest.ml
===================================================================
--- trunk/Toss/TossFullTest.ml (rev 0)
+++ trunk/Toss/TossFullTest.ml 2011-03-05 23:01:19 UTC (rev 1344)
@@ -0,0 +1,31 @@
+open OUnit
+
+let formula_tests = TossTest.formula_tests
+
+let solver_tests = TossTest.solver_tests
+
+let arena_tests = TossTest.arena_tests
+
+let play_tests = TossTest.play_tests
+
+let play_tests_big = "Play" >::: [
+ HeuristicTest.bigtests;
+ GameTest.bigtests;
+]
+
+let ggp_tests = TossTest.ggp_tests
+
+let server_tests = TossTest.server_tests
+
+let tests = "Toss" >::: [
+ formula_tests;
+ solver_tests;
+ arena_tests;
+ play_tests;
+ play_tests_big;
+ ggp_tests;
+ server_tests;
+]
+
+let a =
+ Aux.run_test_if_target "TossFullTest" tests
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|