Browse Source

Add test to another function

 - A test fails for function gen_modification
 - Add new test case for epur to ensure that the test failing is caused by the
   gen_modification function
 - Update doc of this function (forgotten an expected output for the function)
Leo 9 years ago
parent
commit
8719cbae33
2 changed files with 30 additions and 3 deletions
  1. 1 1
      src/edit_command.ml
  2. 29 2
      src/test/edit_t.ml

+ 1 - 1
src/edit_command.ml

@@ -58,7 +58,7 @@ let new_list current_list position new_items =
 
 (* Concat edited item, to have a proper list to display
     * If only one element, return "elt".
-    * If more than one "\nelt1\nelt2\nelt3" *)
+    * If more than one "\nelt1\nelt2\nelt3\n" *)
 let rec gen_modification items =
     let r = "\n" in
     epur items

+ 29 - 2
src/test/edit_t.ml

@@ -47,7 +47,10 @@ let epur test solution () =
 (* Data for above test *)
 let ll_data = [
   ( [ "cmd1" ; "cmd2"; "" ], [ "cmd1" ; "cmd2" ], "Canonical case" );
-  ( [ "" ; "cmd1" ; "" ; "" ; "cmd2"; "" ], [ "cmd1" ; "cmd2" ], "Harder case" );
+  ( [ "" ; "cmd1" ; "" ; "" ; "cmd2"; "" ], [ "cmd1" ; "cmd2" ],
+  "Many empty elements, with some following" );
+  ( [ "cmd1" ; "" ; "cmd2" ], [ "cmd1" ; "cmd2" ],
+    "Two elements + empty ones, in the middle" );
   ( [], [], "Empty list" );
   ( [ "" ; "" ; "" ], [], "Empty list resulting of empty strings" );
 ]
@@ -104,9 +107,33 @@ let lt_l =
 ;;
 (* =========================================== *)
 
+(* Function gen_modification ================ *)
+let gen_mod test solution () =
+  let actual = Edit_command.gen_modification test in
+  OUnit.assert_equal actual solution
+;;
+
+(* Data for above test *)
+let gm_data = [
+  ( [ "cmd1" ], "cmd1", "Canonical case, one element" );
+  ( [ "cmd1" ; "cmd2" ], "\ncmd1\ncmd2\n", "Canonical case, two elements" );
+  ( [ "cmd1" ; "" ], "cmd1", "Canonical case, one element + empty one" );
+  ( [ "cmd1" ; "" ; "cmd2" ], "\ncmd1\ncmd2\n",
+    "Canonical case, two elements + empty ones" );
+  ( [], "", "Empty list" );
+]
+
+let gmt_l =
+  List.map gm_data ~f:(fun (t, s, name) -> ( (gen_mod t s), name))
+  |> List.map ~f:(fun ( f,name ) -> (name, `Quick, f))
+;;
+(* =========================================== *)
+
+
 (* To be used in test.ml *)
 let alco = [( "Edit_command.ml: Epur", llt_l ) ;
-  ( "Edit_command.ml: New list", ( big :: lt_l ) )
+  ( "Edit_command.ml: New list", ( big :: lt_l ) ) ;
+  ( "Edit_command.ml: Modification summary", gmt_l )
 ];;