FPEvalDataset/LeetCodeProblem
0304
1 2module Main = struct3 open OUnit24 5 (* Program start *)6 7 (* Program end *)8 9 (* Test cases *)10 11let test1 _ = assert_equal 4 (minOperations "1100011000" "0101001010" 2)12 13let test2 _ = assert_equal (-1) (minOperations "10110" "00011" 4)14 15let test3 _ = assert_equal (-1) (minOperations "1111111001101010111111101010001110001100101110111011100001001000001001010010010100100101000010010011110011101010100000001011101110011010110111111000101000000100001000000110000010001010111010010100000101010011101100" "0001000110101011011001100110111000101111010101011000011101000001110110010011100111010101110110001010010001101100000010100110101001101101101110001110100111010100101110100101000001001110101011100111001101111111001111" 25)16 17let test4 _ = assert_equal (-1) (minOperations "110" "010" 421)18 19let test5 _ = assert_equal (-1) (minOperations "01101000000000011111100010000111110100010010100110101100101101111111110110110101111011101110101110111111111010101001101001000100001010001010111100011101100011011010010011000000101100001000111000111010000100010110010110010011011101110011110110110100111110011100000001011110111111011110001001001110010010011101100010101000001100001000011111101110101110101011110101111011110111010000110100101110001000010110000110110011110100101111000011111010001101" "10000110001010101010111101110110101011111110010001001111111111011111001011001010011000001010101100010100011110011111010100011000101110101111011000100011110111101111000011001101101100001111100110001110011010111101001101101110011011001101010101010110101010001100011111101011111001111101011100111100111001100001000001100100100000110001101100100000111111100100000001010001110101001111000001110000111010111000111010011011011000001111101100011110011000" 282)20 21let test6 _ = assert_equal (-1) (minOperations "1101001000101001101100000100111111000100011001011111100010100010011101011111000001000011101010010110110000111000000010111101110000100101011101000010001101100000000000010011100100001100100111101001010100000001110100011100010010110100111110010010110001101111110011001101100011000101111010111101101101101001100110110110100011110000100010101110101001011001011111110011101000111111011110101000110010101001001011100001001000011010110001001" "1001101110111100010000000110100011011011000010110101011111010011111001111000101000001100010001111110010000001101101100000101110111001101010010111100010111000111110001101001010001011100101001010010101000111111000100000011101010111111111000010010101010001011101111110111110001011001111011011000001010011101110001001001100001111011110011010000011011101000010000010000100000101111101010101110011101111101101100111101010001001000010010000" 327)22 23let test7 _ = assert_equal 84 (minOperations "01110110111110101110000110101011010110010010111101101001011101110001110101010111010110000101110100101100001100010111111011110100011010100101010110111010011110001000" "10011100110101000110011101000111000110001111011000100011110001111001110000101011101000011011001001111000010111101111001011111111101100001110000111001011111101010001" 336)24 25let test8 _ = assert_equal 141 (minOperations "010110000101011010111001010100100010100001110101111111011101001101010011001101100111011000000100101010001010100100110110101000111010001011010001001101000011100001110011011110011001111011010100110000011101101001010011011010110101011011101011100001100011010111100011101011001001100111101011" "110101010101001001011000111111111101101000110001001101111110010001100100100111101001010000001001110011111001100111011101011111111101101001110101111001111111010010100111110101100100101100010000011101000010110000010111011110001100000110110100111110011111010101101110111010001110110110101011" 410)26 27let test9 _ = assert_equal (-1) (minOperations "11001001000110011111100001001110111101110011101001110110001011000001010000100011110111001001010100011101000000111111000011110000011001010010111000011100010001111010001000101100100111000001011110010101010010100000011111111110010001101011000111000011010000000110011101010101001000010101100011110010000010111000111011001100100101100110111011000100000010000110100010001011111000011011010001000001110100111001011010010110101101000000000" "10011000100001001110001111101110100001000111000000101010100000110101110001000011010010111111001001111100010000011011101111001001110000010111111100111000100111000110100111100011110110001101101010100101001011000000100010000000011000100011110111110110010100111000101010000001100001111100010101101111111110110001110001101010100011100111010101110101101011000111011010001110111011110010101011000111101101101101111000100110010110110110001" 408)28 29let test10 _ = assert_equal (-1) (minOperations "0000100011100101101101100" "1110111100001010010111111" 94)30 31 32 (* Grouping test cases *)33 let suite = "Test Suite for minOperations" >::: [34 35 "test1" >:: test1;36 "test2" >:: test2;37 "test3" >:: test3;38 "test4" >:: test4;39 "test5" >:: test5;40 "test6" >:: test6;41 "test7" >:: test7;42 "test8" >:: test8;43 "test9" >:: test9;44 "test10" >:: test10;45 ]46 47 48 (* Running the tests *)49 let () = run_test_tt_main suite50end51 