
let rubric_version = "1.0"
let rubric_title = "CS421 Spring 2009 MP10A"


(**************************************************************************
 * You can add new test cases by adding new elements to the following lists
 * Format is:
 * TEST<X>ARG(<weight>, <function_name>, <arg1>, <arg2>, ..., <argX>)
 *
 * <X> is the number of argument that the function being tested takes.
 **************************************************************************)

open Mp10Acommon

let set1 = Solution.fromList [1;1;1;2;2;3;4;7];;
let set2 = Solution.fromList [1;1;2;3;3;5;6;6];;
let un = (Solution.union set1 set2);;
let dun = (Solution.disjointUnion set1 set2);;
let fil = Solution.filter (fun x -> x>2) set2;;
let inter = (Solution.intersection set1 set2);;



(* This list is for regular problems *)
let rubric =
[
     TEST2ARG(1, fromList, [1;1;1;2;2;3;4;7], 1) ;
     TEST2ARG(1, fromList, [1;1;1;2;2;3;4;7], 2) ;
     TEST2ARG(1, fromList, [1;1;1;2;2;3;4;7], 3) ;
     TEST2ARG(1, fromList, [1;1;1;2;2;3;4;7], 4) ;
     TEST2ARG(1, fromList, [1;1;1;2;2;3;4;7], 5) ;
     TEST2ARG(1, fromList, [1;1;1;2;2;3;4;7], 6) ;
     TEST2ARG(1, fromList, [1;1;1;2;2;3;4;7], 7) ;
     TEST2ARG(1, fromList, [1;1;1;2;2;3;4;7], 8) ;

     TEST2ARG(1, member, 3, set1) ;
     TEST2ARG(1, member, 5, set1) ;
     TEST3ARG(1, add, 5, set1, 5) ;
     TEST3ARG(1, add, 1, set1, 1) ;
     TEST3ARG(1, add, 1, set1, 5) ;
     TEST3ARG(1, remove, 1, set1, 1) ;
     TEST3ARG(1, remove, 2, set1, 2) ;
     TEST3ARG(1, remove, 3, set1, 3) ;
     TEST3ARG(1, remove, 4, set1, 1) ;

     TEST3ARG(1, filter, (fun x -> x>2), set2, 1) ;
     TEST3ARG(1, filter, (fun x -> x>2), set2, 2) ;
     TEST3ARG(1, filter, (fun x -> x>2), set2, 3) ;
     TEST3ARG(1, filter, (fun x -> x>2), set2, 4) ;
     TEST3ARG(1, filter, (fun x -> x>2), set2, 5) ;
     TEST3ARG(1, filter, (fun x -> x>2), set2, 6) ;

     TEST3ARG(1, union, set1, set2, 1) ;
     TEST3ARG(1, union, set1, set2, 2) ;
     TEST3ARG(1, union, set1, set2, 3) ;
     TEST3ARG(1, union, set1, set2, 4) ;
     TEST3ARG(1, union, set1, set2, 5) ;
     TEST3ARG(1, union, set1, set2, 6) ;
     TEST3ARG(1, union, set1, set2, 7) ;
     TEST3ARG(1, union, set1, set2, 8) ;

     TEST3ARG(1, disjointUnion, set1, set2, 1) ;
     TEST3ARG(1, disjointUnion, set1, set2, 2) ;
     TEST3ARG(1, disjointUnion, set1, set2, 3) ;
     TEST3ARG(1, disjointUnion, set1, set2, 4) ;
     TEST3ARG(1, disjointUnion, set1, set2, 5) ;
     TEST3ARG(1, disjointUnion, set1, set2, 6) ;
     TEST3ARG(1, disjointUnion, set1, set2, 7) ;
     TEST3ARG(1, disjointUnion, set1, set2, 8) ;

     TEST3ARG(1, intersection, set1, set2, 1) ;
     TEST3ARG(1, intersection, set1, set2, 2) ;
     TEST3ARG(1, intersection, set1, set2, 3) ;
     TEST3ARG(1, intersection, set1, set2, 4) ;
     TEST3ARG(1, intersection, set1, set2, 5) ;
     TEST3ARG(1, intersection, set1, set2, 6) ;
     TEST3ARG(1, intersection, set1, set2, 7) ;
     TEST3ARG(1, intersection, set1, set2, 8) ;

]
(* Note: the last entry should not be followed by a semicolon. *)

let extra_rubric = [ ]
