From ca5336dfb057e9120806a3205cc08e6a3171d932 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Tue, 19 Mar 2013 00:48:11 +0100 Subject: [PATCH] more tests for Enum --- enum.ml | 4 ++-- tests/test_enum.ml | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/enum.ml b/enum.ml index 49bd5583..1d00b3f4 100644 --- a/enum.ml +++ b/enum.ml @@ -170,8 +170,8 @@ let to_list enum = let to_rev_list enum = let rec fold acc gen = let acc', stop = - try let x = gen () in x :: acc, true - with EOG -> acc, false + try let x = gen () in x :: acc, false + with EOG -> acc, true in if stop then acc' else fold acc' gen in fold [] (enum ()) diff --git a/tests/test_enum.ml b/tests/test_enum.ml index 9037a6cd..46e1f4b8 100644 --- a/tests/test_enum.ml +++ b/tests/test_enum.ml @@ -29,9 +29,22 @@ let test_map () = OUnit.assert_equal ~printer:pstrlist ["9"; "10"] (Enum.to_list (Enum.drop 8 e')); () +let test_append () = + let e = (1 -- 5) @@ (6 -- 10) in + OUnit.assert_equal [10;9;8;7;6;5;4;3;2;1] (Enum.to_rev_list e); + () + +let test_flatMap () = + let e = 1 -- 3 in + let e' = e >>= (fun x -> x -- (x+1)) in + OUnit.assert_equal [1;2;2;3;3;4] (Enum.to_list e'); + () + let suite = "test_enum" >::: [ "test_singleton" >:: test_singleton; "test_iter" >:: test_iter; "test_map" >:: test_map; + "test_append" >:: test_append; + "test_flatMap" >:: test_flatMap; ]