TheRealSamuel/LeetCodeProblem
0564
1 2module Main = struct3 open OUnit24 5 (* Program start *)6 let numberOfAlternatingGroups (colors: int list) : int = failwith "Not implemented"7 8 (* Program end *)9 10 (* Test cases *)11 12let test1 _ = assert_equal 0 (numberOfAlternatingGroups [1;1;1])13 14let test2 _ = assert_equal 3 (numberOfAlternatingGroups [0;1;0;0;1])15 16let test3 _ = assert_equal 3 (numberOfAlternatingGroups [1; 0; 1; 1; 0; 0; 0; 1; 1; 0; 0; 1; 0; 1; 0; 0; 1; 1; 0; 0; 1; 0; 0; 0; 0; 0; 1; 0; 1; 0; 1; 0; 0])17 18let test4 _ = assert_equal 3 (numberOfAlternatingGroups [0; 1; 0; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 1; 1; 1; 1; 1; 1; 1; 0; 1; 0; 0; 1; 0; 1; 0; 0; 1; 1; 0; 1; 0; 0; 0; 0; 0; 1; 0; 1; 0; 0; 1; 0; 0; 1; 1; 1; 1; 0; 1; 0; 1; 0; 0; 0; 1; 0; 0; 1; 1; 1; 1; 1; 1; 0; 1; 1; 1; 0; 1; 1; 1; 1; 1; 1; 1; 0; 1; 0; 1; 0; 1; 1; 1; 0; 1; 0; 1; 1; 1; 1; 0; 1; 1])19 20let test5 _ = assert_equal 3 (numberOfAlternatingGroups [1; 0; 0; 0; 0; 0; 1; 0; 1; 0; 1; 1; 0; 0; 0; 0; 1; 1; 1; 0; 0; 1; 0; 0; 1; 1; 0; 0; 1; 1])21 22let test6 _ = assert_equal 3 (numberOfAlternatingGroups [1; 1; 0; 0; 1; 0; 1; 0; 0; 1; 0; 0; 1; 1; 1; 1; 0; 1; 1; 0; 1; 1; 0; 1; 1; 1; 0; 1; 0; 0; 1; 0; 1; 1; 0; 0; 1; 0; 1; 0; 1; 1; 1; 1; 1; 0; 0; 1; 0; 1; 1; 0; 0; 0; 0; 0; 1; 1; 1; 0; 0; 1; 0; 0; 1; 1; 1; 0])23 24let test7 _ = assert_equal 3 (numberOfAlternatingGroups [0; 1; 0; 0; 1; 1; 1; 1; 0; 1; 0; 1; 1; 1; 0; 0; 1; 0; 0; 0; 1; 1; 0; 1; 0; 0; 1; 1; 1; 1; 1; 1; 0; 1; 1; 0; 0; 0; 1; 1; 0; 1; 0; 0; 0; 0; 1; 1; 0; 0; 0; 0; 1; 0])25 26 27 (* Grouping test cases *)28 let suite = "Test Suite for numberOfAlternatingGroups" >::: [29 30 "test1" >:: test1;31 "test2" >:: test2;32 "test3" >:: test3;33 "test4" >:: test4;34 "test5" >:: test5;35 "test6" >:: test6;36 "test7" >:: test7;37 ]38 39 40 (* Running the tests *)41 let () = run_test_tt_main suite42end43 