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

let concat2_stu lst = List.fold_right Student.concat_step lst Student.concat_base
let concat2_sol lst = List.fold_right Solution.concat_step lst Solution.concat_base

let idk = fun x -> x
let nullk = fun x -> ()
let report x =
   print_string "Result: ";
   print_int x;
   print_newline();;

(* This list is for regular problems *)
let rubric =
[
  TEST1ARG(1, concat, ["Hi, "; "my "; "name"; " is"]) ;

  TEST1ARG(1, part_concat, ["test"; "1"; "2"]) ;

  TEST1ARG(1, min, [1; 2; 3; 4]) ;

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

  TEST1ARG_TWOFUN(1, concat2_sol, concat2_stu, ["Hi, "; "my"; "name"; " is"]) ;

  TEST1ARG(1, min2, [1; 2; 3; 4]) ;

  TEST2ARG(1, cross_sum, [1;3], [3;4]) ;

  TEST5ARG(1, calck, 5, 4, 3, 2, report) ;

  TEST2ARG(1, part_concatk, ["test"; "1"; "2"], idk) 
]
(* Note: the last entry should not be followed by a semicolon. *)

(* This list is for extra credit problems *)
let extra_rubric = [
  TEST2ARG(1, dupk, [1;2;3;4;5], idk)
]

