(**************************************************************************
 * 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.
 **************************************************************************)

(* This list is for regular problems *)
let rubric =
[
     TEST1ARG(1, pair_to_list, (5, 9)) ;

     TEST1ARG(1, dist, ((1.0, 4.0), (0.0, 4.0))) ;

     TEST1ARG(1, sort_first_two, [8; 2; 5]);
     TEST1ARG(1, sort_first_two, [3; 7; 4]);

     TEST1ARG(1, concat_odd, ["How "; "hey"; "are "; "things"; "you?"]) ;

     TEST2ARG(1, dotproduct, [1;2], [3;4]) ;

     TEST1ARG(1, is_sorted, [1;2;3;4;5;8;9;11]);
     TEST1ARG(1, is_sorted, [2;3;4;5;7;6;8]);

     TEST1ARG(1, total_dist, [(1.0,4.0); (4.0,0.0); (8.0, 3.0); (5.0, 7.0)]) ;

     TEST2ARG(1, merge, [1;3;5], [4;5;6]) ;

     TEST1ARG(1, group, [1;1;2;3;1;4;5;5;6]) ;
     TEST1ARG(1, group, [1;1;2;2;1;1]) ;

     TEST1ARG(1, firstelts, [[1;2]; [3;4;5]; []; [6;7]]) ;
     
     TEST1ARG(1, unzip, [1;2;3;4;5]) ;
     TEST1ARG(1, unzip, [("m", 3);("d", 4);("p", 2);("u", 3);("1", 1);("n", 2)])
]

(* This list is for extra credit problems *)
let extra_rubric = [
]