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