(* open Mp2common;; (* Not needed this time *) *) let rubric_version = "1.0" let rubric_title = "CS421 Fall 2012 MP2" (************************************************************************** * You can add new test cases by adding new elements to the following lists * Format is: * TESTARG(, , , , ..., ) * * is the number of argument that the function being tested takes. **************************************************************************) let map_list_all_sol p l = List.map (Solution.list_all p) l let map_list_all_stu p l = List.map (Student.list_all p) l let map_is_less_sol n l = List.map (Solution.is_less n) l let map_is_less_stu n l = List.map (Student.is_less n) l let map_check_path_sol adj_list = List.map (Solution.check_path adj_list) let map_check_path_stu adj_list = List.map (Student.check_path adj_list) (* This list is for regular problems *) let rubric = [ TEST1ARG(1, com_mul, ((4.,0.),(2.,3.))); TEST1ARG(1, com_mul, ((4.,5.),(2.,3.))); TEST1ARG(1, s, 5); TEST1ARG(1, s, 8); TEST1ARG(1, (List.map s), [0;1]); TEST2ARG(1, list_all, (fun x -> x < 0), [1;-1;0;4;-2;5]); TEST2ARG(1, list_all, (fun x -> x < 0.), [-1.;2.;3.]); TEST2ARG_TWOFUN(1, map_list_all_sol, map_list_all_stu, (fun x -> x > 1), [[]; [3]]); TEST2ARG(1, is_less, 5, [1;34;42;6]); TEST2ARG(1, is_less, 5., [1.;34.;42.;6.]); TEST2ARG_TWOFUN(1, map_is_less_sol, map_is_less_stu, "a", [[]; ["bbb"]]); TEST2ARG(1, interleave, [1;2;5], [3;4]); TEST2ARG(1, interleave, ["a";"c";"d"], ["b"]); TEST2ARG(1, interleave, [], [(); (); ()]); TEST2ARG(1, interleave, [(); (); ()], []); TEST2ARG(1, interleave, [], []); TEST1ARG(1, separate, [1; 3; 2; 4; 5]); TEST1ARG(1, separate, ["a"; "b"; "c"; "d"]); TEST1ARG(1, separate, []); TEST1ARG(1, separate, [(1,2)]); TEST1ARG(1, separate, [1.1; 2.2]); TEST1ARG(1, odds, [3;7;9]); TEST1ARG(1, odds, []); TEST1ARG(2, odds, [0]); TEST1ARG(1, odds, [3]); TEST1ARG(2, odds, [5; 0; 2]); TEST2ARG(1, check_adj, [[1;2;3;4];[3;0;4;5];[1;4;3;5];[2;1];[1;2];[2;3;4]], (0,3)); TEST2ARG(1, check_adj, [[1;2;3;4];[3;0;4;5];[1;4;3;5];[2;1];[1;2];[2;3;4]], (5,3)); TEST2ARG(1, check_adj, [[1;2;3;4];[3;0;4;5];[1;4;3;5];[2;1];[1;2];[2;3;4]], (3,5)); TEST2ARG(1, check_adj, [[1;2;3;4];[3;0;4;5];[1;4;3;5];[2;1];[1;2];[2;3;4]], (0,0)); TEST2ARG(1, check_adj, [[1;2;3;4];[3;0;4;5];[1;4;3;5];[2;1];[1;2];[2;3;4]], ((-2),0)); TEST2ARG(1, check_adj, [[1;2;3;4];[3;0;4;5];[1;4;3;5];[2;1];[1;2];[2;3;4]], (0,(-2))); TEST2ARG(1, check_adj, [[0]], (0,0)); ] (* Note: the last entry should not be followed by a semicolon. *) let extra_rubric = [ TEST2ARG(1, check_path, [[1;2;3;4];[3;0;4;5];[1;4;3;5];[2;1];[1;2];[2;3;4]], (0,5)); TEST2ARG_TWOFUN(1, map_check_path_sol, map_check_path_stu, [[0]], [((-2),0);(0,(-2));((-1),(-1))]); TEST2ARG(1, check_path, [[0]], (0,0)); TEST2ARG(1, check_path, [[1;3];[3;0;5];[1;4;3;5];[2];[1;5];[1;3]], (1,4)) ]