TheRealSamuel/LeetCodeProblem
0564
1 2module Main = struct3 open OUnit24 5 (* Program start *)6 let areaOfMaxDiagonal (dimensions: int list list) : int = failwith "Not implemented"7 8 (* Program end *)9 10 (* Test cases *)11 12let test1 _ = assert_equal 48 (areaOfMaxDiagonal [[9;3];[8;6]])13 14let test2 _ = assert_equal 12 (areaOfMaxDiagonal [[3;4];[4;3]])15 16let test3 _ = assert_equal 12 (areaOfMaxDiagonal [[53; 90]; [36; 93]; [72; 97]; [24; 85]; [22; 27]; [75; 46]; [12; 31]; [80; 30]; [56; 5]; [9; 24]; [38; 62]; [74; 57]; [59; 55]; [44; 9]; [48; 93]; [17; 72]; [15; 1]; [56; 58]; [94; 38]; [22; 59]; [28; 53]; [13; 63]; [63; 80]; [46; 70]; [67; 60]; [58; 60]; [69; 93]; [31; 50]; [62; 85]; [30; 79]; [29; 71]; [47; 54]; [30; 10]; [79; 48]; [6; 12]; [59; 49]; [13; 97]; [26; 3]; [15; 30]; [15; 94]; [11; 74]; [10; 71]; [2; 63]; [89; 87]; [1; 76]; [23; 57]; [43; 86]; [17; 65]; [47; 92]; [24; 27]; [71; 22]; [55; 56]; [64; 5]; [60; 93]; [4; 68]; [35; 90]; [92; 70]; [42; 25]; [97; 28]; [28; 34]; [60; 7]; [85; 4]; [49; 72]; [34; 68]; [2; 87]; [2; 91]; [4; 28]; [7; 81]; [93; 30]; [94; 87]; [23; 5]; [35; 37]; [16; 70]; [8; 92]; [67; 62]; [99; 67]])17 18let test4 _ = assert_equal 12 (areaOfMaxDiagonal [[29; 68]; [26; 9]; [97; 3]; [87; 29]; [37; 80]; [40; 81]; [97; 73]; [18; 96]; [4; 26]; [100; 73]; [37; 41]; [68; 21]; [8; 34]; [16; 27]; [21; 43]; [60; 94]; [51; 28]; [63; 24]; [98; 8]; [65; 47]; [71; 56]; [2; 20]; [21; 9]; [72; 82]; [50; 3]; [11; 34]; [12; 31]; [56; 54]; [83; 49]; [1; 84]; [45; 73]; [76; 11]; [20; 20]; [38; 82]; [24; 70]; [17; 21]; [82; 54]; [3; 86]; [38; 59]; [62; 49]; [49; 65]; [16; 94]; [89; 59]; [88; 70]; [60; 44]; [18; 5]; [11; 7]; [58; 78]; [86; 39]; [89; 40]; [67; 80]; [35; 11]; [30; 7]; [43; 64]; [52; 96]; [96; 88]; [21; 67]; [38; 56]; [85; 42]; [46; 9]; [52; 66]; [19; 73]; [45; 84]; [74; 28]; [77; 91]; [28; 8]; [48; 42]; [27; 13]; [1; 6]; [14; 92]; [38; 71]; [7; 57]; [98; 36]; [96; 72]])19 20let test5 _ = assert_equal 12 (areaOfMaxDiagonal [[99; 69]; [91; 27]; [7; 39]; [3; 59]; [18; 6]; [72; 32]; [17; 2]; [91; 28]; [86; 90]; [21; 12]; [7; 53]; [35; 61]; [31; 99]; [11; 100]; [71; 7]; [93; 72]; [73; 44]; [39; 12]; [76; 89]; [56; 45]; [52; 51]; [4; 59]; [30; 32]; [50; 25]; [55; 16]; [21; 89]; [39; 59]; [96; 30]; [37; 49]; [33; 60]; [97; 66]; [61; 88]; [45; 35]; [22; 53]; [34; 69]; [24; 78]; [15; 58]; [41; 72]; [18; 25]; [64; 100]; [99; 47]; [2; 90]; [86; 71]; [14; 16]; [3; 52]; [87; 82]; [46; 39]; [89; 4]; [8; 61]; [49; 12]; [29; 37]; [59; 99]; [16; 93]; [32; 7]; [26; 65]; [61; 53]; [12; 78]; [59; 44]; [17; 55]; [16; 1]; [93; 84]; [11; 27]; [61; 81]; [43; 12]; [60; 44]; [71; 19]; [86; 27]; [69; 96]; [12; 47]; [12; 82]; [69; 1]; [65; 19]; [79; 61]; [99; 35]; [43; 98]; [95; 34]])21 22let test6 _ = assert_equal 12 (areaOfMaxDiagonal [[86; 75]; [71; 72]; [35; 60]; [25; 82]; [6; 54]; [38; 8]; [97; 15]; [31; 75]; [4; 14]; [10; 1]; [78; 6]; [5; 45]; [92; 28]; [37; 41]; [93; 78]; [90; 23]; [25; 20]; [41; 82]; [35; 5]; [66; 97]; [49; 48]; [76; 83]; [82; 38]; [42; 99]; [79; 57]; [100; 74]; [17; 96]; [71; 97]; [24; 32]; [24; 99]; [53; 84]; [47; 8]; [47; 96]; [86; 6]; [87; 61]; [6; 82]; [9; 48]; [60; 91]; [68; 5]; [88; 23]; [59; 22]; [24; 11]; [56; 92]; [31; 81]; [41; 73]; [25; 83]; [83; 27]; [51; 81]; [28; 37]; [65; 88]; [25; 18]; [100; 7]; [7; 25]; [11; 80]; [52; 56]; [2; 75]; [38; 6]; [99; 59]; [11; 96]; [79; 40]; [30; 20]; [45; 56]; [74; 55]; [86; 90]; [3; 16]; [93; 37]; [38; 11]; [42; 68]; [97; 90]; [8; 1]; [18; 87]; [39; 81]; [49; 86]; [33; 90]; [72; 31]; [69; 1]; [3; 55]; [8; 97]; [41; 99]; [17; 44]; [47; 57]; [49; 54]; [84; 27]; [55; 60]])23 24let test7 _ = assert_equal 12 (areaOfMaxDiagonal [[61; 83]; [51; 14]; [73; 9]; [55; 57]; [53; 43]; [59; 24]; [83; 22]; [16; 70]; [27; 30]; [32; 16]; [100; 99]; [52; 61]; [29; 4]; [25; 39]; [18; 97]; [23; 55]; [11; 53]; [4; 5]; [87; 35]; [96; 89]; [82; 98]; [85; 11]; [65; 2]; [25; 72]; [86; 86]; [83; 100]; [46; 76]; [39; 71]; [34; 41]; [90; 8]; [51; 42]; [4; 64]; [23; 87]; [9; 52]; [14; 26]; [11; 17]; [52; 28]; [20; 18]; [77; 50]; [41; 54]; [54; 46]; [33; 57]; [55; 97]; [81; 54]; [53; 35]; [22; 52]; [6; 15]; [11; 64]; [65; 48]; [75; 32]; [71; 80]; [69; 39]; [79; 100]; [94; 53]])25 26let test8 _ = assert_equal 12 (areaOfMaxDiagonal [[3; 28]; [22; 39]; [56; 6]; [62; 49]; [30; 29]; [17; 41]; [81; 47]; [94; 16]; [50; 8]; [23; 42]; [56; 82]; [40; 89]; [64; 93]; [13; 55]; [80; 39]; [59; 69]; [2; 22]; [57; 52]; [65; 30]; [38; 70]; [76; 38]; [26; 28]; [83; 37]; [7; 73]; [79; 17]; [62; 70]; [66; 84]; [30; 36]; [99; 90]])27 28let test9 _ = assert_equal 12 (areaOfMaxDiagonal [[40; 47]; [58; 90]; [10; 3]; [70; 81]; [95; 87]; [52; 29]; [12; 31]; [46; 77]; [62; 63]; [8; 28]; [1; 71]; [52; 47]; [51; 87]; [48; 47]; [91; 48]; [45; 37]; [73; 23]; [83; 52]; [47; 42]; [75; 81]; [83; 72]; [75; 77]; [11; 31]; [94; 8]; [23; 32]; [98; 82]; [37; 39]; [61; 77]; [14; 22]; [58; 92]; [60; 13]; [67; 43]; [80; 13]; [68; 40]; [42; 26]; [35; 39]; [81; 28]; [83; 61]; [37; 15]; [23; 83]; [51; 77]; [13; 39]; [99; 66]; [97; 96]; [32; 91]; [41; 71]; [16; 59]; [42; 42]; [4; 75]; [88; 8]; [54; 28]; [20; 43]; [30; 23]; [31; 76]; [79; 91]; [30; 23]; [95; 39]; [16; 75]; [25; 61]; [27; 8]; [69; 9]; [10; 89]; [39; 19]; [39; 34]; [27; 24]; [26; 75]; [75; 24]; [28; 97]; [80; 36]; [32; 40]; [61; 36]; [22; 57]; [76; 53]; [82; 39]; [54; 19]; [39; 43]; [33; 53]; [29; 78]; [69; 77]; [71; 57]; [54; 78]; [52; 75]; [31; 26]; [78; 91]; [36; 18]; [68; 65]; [99; 38]; [45; 76]; [92; 7]])29 30let test10 _ = assert_equal 12 (areaOfMaxDiagonal [[27; 44]; [24; 70]; [20; 89]; [49; 91]; [52; 4]; [96; 74]; [44; 67]; [65; 72]; [18; 13]; [43; 70]; [66; 32]; [14; 56]; [23; 1]; [29; 20]; [61; 76]; [82; 40]; [9; 30]; [22; 62]; [46; 95]; [84; 52]; [33; 7]; [95; 48]; [27; 43]; [7; 64]])31 32 33 (* Grouping test cases *)34 let suite = "Test Suite for areaOfMaxDiagonal" >::: [35 36 "test1" >:: test1;37 "test2" >:: test2;38 "test3" >:: test3;39 "test4" >:: test4;40 "test5" >:: test5;41 "test6" >:: test6;42 "test7" >:: test7;43 "test8" >:: test8;44 "test9" >:: test9;45 "test10" >:: test10;46 ]47 48 49 (* Running the tests *)50 let () = run_test_tt_main suite51end52 