TheRealSamuel/LeetCodeProblem
0572
1 2module Main = struct3 open OUnit24 5 (* Program start *)6 let numberGame (nums: int list) : int list = failwith "Not implemented"7 8 (* Program end *)9 10 (* Test cases *)11 12let test1 _ = assert_equal [3;2;5;4] (numberGame [5;4;2;3])13 14let test2 _ = assert_equal [5;2] (numberGame [2;5])15 16let test3 _ = assert_equal [5;2] (numberGame [23; 20; 50; 50; 96; 59])17 18let test4 _ = assert_equal [5;2] (numberGame [1; 1; 2; 2; 8; 5; 12; 9; 15; 13; 15; 15; 19; 18; 22; 22; 25; 24; 28; 28; 31; 29; 32; 31; 43; 40; 46; 44; 51; 48; 54; 51; 63; 58; 65; 64; 65; 65; 68; 68; 75; 72; 78; 76; 79; 79; 82; 80; 86; 84; 91; 90; 93; 91; 94; 94; 97; 95; 98; 97])19 20let test5 _ = assert_equal [5;2] (numberGame [2; 1; 10; 5; 11; 11; 22; 13; 29; 28; 43; 29; 47; 46; 55; 51; 59; 59; 64; 62; 72; 66; 73; 72; 75; 74; 85; 81; 86; 86; 91; 91; 94; 91])21 22let test6 _ = assert_equal [5;2] (numberGame [3; 1; 3; 3; 11; 10; 12; 12; 15; 14; 25; 17; 31; 27; 34; 33; 37; 36; 41; 40; 44; 42; 47; 44; 49; 48; 50; 49; 50; 50; 52; 52; 58; 57; 60; 58; 67; 65; 68; 67; 69; 69; 81; 78; 84; 83; 93; 90; 94; 94])23 24let test7 _ = assert_equal [5;2] (numberGame [7; 6; 16; 15; 20; 19; 24; 21; 26; 25; 27; 26; 30; 27; 39; 33; 44; 41; 46; 46; 52; 49; 55; 52; 58; 58; 61; 59; 61; 61; 66; 66; 68; 68; 69; 69; 80; 78; 85; 83; 90; 89; 97; 90])25 26 27 (* Grouping test cases *)28 let suite = "Test Suite for numberGame" >::: [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 