FPEvalDataset/LeetCodeProblem
0304
1 2module Main where3import Test.HUnit4 5--Program start6 7--Program end8 9-- Test cases10 11test1 :: Test12test1 = TestCase (assertEqual "for (getGoodIndices [[2,3,3,10],[3,3,3,1],[6,1,1,4]] 2)," [0,2] (getGoodIndices [[2,3,3,10],[3,3,3,1],[6,1,1,4]] 2))13 14test2 :: Test15test2 = TestCase (assertEqual "for (getGoodIndices [[39,3,1000,1000]] 17)," [] (getGoodIndices [[39,3,1000,1000]] 17))16 17test3 :: Test18test3 = TestCase (assertEqual "for (getGoodIndices [[421, 377, 428, 165], [974, 742, 692, 350], [826, 560, 987, 757]] 143)," [] (getGoodIndices [[421, 377, 428, 165], [974, 742, 692, 350], [826, 560, 987, 757]] 143))19 20test4 :: Test21test4 = TestCase (assertEqual "for (getGoodIndices [[765, 245, 442, 420], [531, 902, 782, 675], [598, 622, 462, 829], [519, 17, 285, 454], [754, 818, 264, 34], [267, 54, 632, 323], [101, 332, 820, 72], [76, 579, 390, 12], [904, 523, 796, 307], [821, 209, 540, 668], [25, 603, 985, 140], [213, 823, 566, 823], [640, 78, 110, 6], [329, 508, 158, 997], [405, 840, 31, 104], [814, 139, 138, 447], [919, 935, 522, 626], [49, 25, 510, 236], [846, 119, 183, 956], [272, 849, 513, 91], [543, 726, 744, 269], [316, 561, 932, 235], [953, 843, 235, 320], [381, 895, 788, 480], [69, 477, 845, 383], [270, 102, 830, 266], [886, 406, 890, 315], [392, 835, 522, 614], [287, 313, 368, 775], [558, 67, 693, 344], [723, 564, 90, 381], [950, 571, 341, 775], [531, 909, 325, 713], [165, 201, 661, 21], [301, 689, 994, 518], [501, 132, 116, 180], [39, 232, 723, 753], [646, 578, 353, 71], [738, 287, 759, 385], [777, 553, 68, 238], [677, 13, 894, 297], [723, 155, 139, 792], [891, 272, 196, 568], [156, 356, 185, 499], [34, 756, 406, 15], [190, 243, 107, 252], [662, 547, 649, 666], [363, 726, 406, 953], [379, 496, 477, 453], [552, 954, 484, 732], [548, 238, 505, 45], [113, 679, 987, 145], [975, 463, 317, 692], [746, 540, 632, 772], [492, 257, 198, 980], [802, 838, 416, 782], [88, 315, 34, 395]] 942)," [] (getGoodIndices [[765, 245, 442, 420], [531, 902, 782, 675], [598, 622, 462, 829], [519, 17, 285, 454], [754, 818, 264, 34], [267, 54, 632, 323], [101, 332, 820, 72], [76, 579, 390, 12], [904, 523, 796, 307], [821, 209, 540, 668], [25, 603, 985, 140], [213, 823, 566, 823], [640, 78, 110, 6], [329, 508, 158, 997], [405, 840, 31, 104], [814, 139, 138, 447], [919, 935, 522, 626], [49, 25, 510, 236], [846, 119, 183, 956], [272, 849, 513, 91], [543, 726, 744, 269], [316, 561, 932, 235], [953, 843, 235, 320], [381, 895, 788, 480], [69, 477, 845, 383], [270, 102, 830, 266], [886, 406, 890, 315], [392, 835, 522, 614], [287, 313, 368, 775], [558, 67, 693, 344], [723, 564, 90, 381], [950, 571, 341, 775], [531, 909, 325, 713], [165, 201, 661, 21], [301, 689, 994, 518], [501, 132, 116, 180], [39, 232, 723, 753], [646, 578, 353, 71], [738, 287, 759, 385], [777, 553, 68, 238], [677, 13, 894, 297], [723, 155, 139, 792], [891, 272, 196, 568], [156, 356, 185, 499], [34, 756, 406, 15], [190, 243, 107, 252], [662, 547, 649, 666], [363, 726, 406, 953], [379, 496, 477, 453], [552, 954, 484, 732], [548, 238, 505, 45], [113, 679, 987, 145], [975, 463, 317, 692], [746, 540, 632, 772], [492, 257, 198, 980], [802, 838, 416, 782], [88, 315, 34, 395]] 942))22 23test5 :: Test24test5 = TestCase (assertEqual "for (getGoodIndices [[49, 533, 715, 737], [924, 897, 615, 101], [260, 131, 150, 918], [339, 462, 654, 276], [32, 767, 733, 978], [67, 883, 686, 626], [405, 321, 514, 716], [632, 376, 761, 338], [439, 1000, 156, 528], [87, 697, 84, 393], [684, 943, 837, 900], [326, 341, 868, 841], [142, 633, 342, 652], [294, 39, 296, 997], [35, 266, 62, 622], [11, 993, 775, 197], [893, 561, 863, 443], [92, 698, 743, 898], [793, 760, 708, 894], [548, 781, 487, 778], [289, 825, 321, 680], [628, 99, 912, 861], [627, 365, 475, 983], [669, 682, 681, 685], [914, 155, 752, 928], [649, 197, 921, 936], [135, 608, 32, 184], [270, 860, 434, 622], [815, 345, 501, 174], [819, 905, 643, 337], [644, 450, 22, 866], [120, 353, 623, 970], [458, 881, 872, 854], [547, 833, 855, 274], [121, 465, 388, 270], [175, 9, 815, 644], [157, 329, 216, 495], [398, 785, 529, 219], [896, 70, 244, 460], [943, 16, 568, 861], [363, 626, 973, 297], [397, 44, 92, 179], [494, 337, 729, 899], [750, 204, 840, 122], [37, 69, 68, 202], [452, 554, 248, 932], [540, 205, 629, 908], [756, 75, 973, 522], [60, 376, 810, 889], [351, 800, 930, 468], [352, 38, 789, 921], [929, 956, 909, 637], [246, 782, 974, 862], [495, 271, 475, 792], [106, 937, 243, 893], [922, 373, 956, 174], [177, 888, 611, 889], [963, 900, 153, 746], [395, 241, 550, 511], [202, 381, 700, 813], [471, 848, 331, 233], [299, 516, 910, 497], [293, 893, 784, 818], [773, 926, 287, 688], [306, 905, 694, 439], [682, 877, 886, 511], [195, 345, 401, 347], [271, 770, 84, 390], [22, 618, 595, 346], [71, 681, 146, 363], [604, 486, 669, 940], [980, 817, 838, 256], [691, 613, 458, 474], [820, 763, 708, 892], [671, 452, 760, 971], [654, 336, 997, 846], [806, 950, 694, 859], [309, 886, 76, 430], [74, 739, 871, 749], [510, 149, 846, 818], [361, 518, 497, 330], [586, 159, 975, 105], [548, 662, 963, 595], [856, 194, 657, 616]] 949)," [] (getGoodIndices [[49, 533, 715, 737], [924, 897, 615, 101], [260, 131, 150, 918], [339, 462, 654, 276], [32, 767, 733, 978], [67, 883, 686, 626], [405, 321, 514, 716], [632, 376, 761, 338], [439, 1000, 156, 528], [87, 697, 84, 393], [684, 943, 837, 900], [326, 341, 868, 841], [142, 633, 342, 652], [294, 39, 296, 997], [35, 266, 62, 622], [11, 993, 775, 197], [893, 561, 863, 443], [92, 698, 743, 898], [793, 760, 708, 894], [548, 781, 487, 778], [289, 825, 321, 680], [628, 99, 912, 861], [627, 365, 475, 983], [669, 682, 681, 685], [914, 155, 752, 928], [649, 197, 921, 936], [135, 608, 32, 184], [270, 860, 434, 622], [815, 345, 501, 174], [819, 905, 643, 337], [644, 450, 22, 866], [120, 353, 623, 970], [458, 881, 872, 854], [547, 833, 855, 274], [121, 465, 388, 270], [175, 9, 815, 644], [157, 329, 216, 495], [398, 785, 529, 219], [896, 70, 244, 460], [943, 16, 568, 861], [363, 626, 973, 297], [397, 44, 92, 179], [494, 337, 729, 899], [750, 204, 840, 122], [37, 69, 68, 202], [452, 554, 248, 932], [540, 205, 629, 908], [756, 75, 973, 522], [60, 376, 810, 889], [351, 800, 930, 468], [352, 38, 789, 921], [929, 956, 909, 637], [246, 782, 974, 862], [495, 271, 475, 792], [106, 937, 243, 893], [922, 373, 956, 174], [177, 888, 611, 889], [963, 900, 153, 746], [395, 241, 550, 511], [202, 381, 700, 813], [471, 848, 331, 233], [299, 516, 910, 497], [293, 893, 784, 818], [773, 926, 287, 688], [306, 905, 694, 439], [682, 877, 886, 511], [195, 345, 401, 347], [271, 770, 84, 390], [22, 618, 595, 346], [71, 681, 146, 363], [604, 486, 669, 940], [980, 817, 838, 256], [691, 613, 458, 474], [820, 763, 708, 892], [671, 452, 760, 971], [654, 336, 997, 846], [806, 950, 694, 859], [309, 886, 76, 430], [74, 739, 871, 749], [510, 149, 846, 818], [361, 518, 497, 330], [586, 159, 975, 105], [548, 662, 963, 595], [856, 194, 657, 616]] 949))25 26test6 :: Test27test6 = TestCase (assertEqual "for (getGoodIndices [[81, 172, 816, 189], [809, 835, 516, 976], [397, 971, 139, 93], [681, 583, 211, 893], [280, 14, 944, 299], [376, 487, 547, 109], [967, 509, 844, 522], [50, 465, 477, 439], [816, 204, 858, 24], [909, 456, 252, 478], [696, 242, 935, 324], [917, 999, 174, 120], [852, 237, 834, 506], [296, 5, 111, 748], [706, 607, 470, 176], [511, 3, 181, 780], [104, 121, 815, 559], [30, 888, 987, 809], [980, 646, 68, 621], [151, 159, 847, 511], [216, 153, 524, 81], [232, 344, 443, 608], [613, 48, 987, 567], [482, 734, 352, 296], [150, 54, 779, 387], [53, 208, 939, 212], [999, 667, 907, 712], [527, 974, 693, 275], [589, 415, 593, 251], [817, 108, 592, 653], [925, 383, 642, 863], [409, 263, 441, 288], [524, 586, 918, 266], [248, 923, 220, 764], [936, 616, 521, 106], [599, 688, 72, 819], [762, 876, 429, 494], [353, 724, 774, 394], [449, 376, 358, 861], [223, 743, 609, 507], [279, 890, 182, 381], [407, 227, 318, 292], [282, 543, 533, 892], [821, 464, 352, 213], [294, 289, 509, 759]] 957)," [] (getGoodIndices [[81, 172, 816, 189], [809, 835, 516, 976], [397, 971, 139, 93], [681, 583, 211, 893], [280, 14, 944, 299], [376, 487, 547, 109], [967, 509, 844, 522], [50, 465, 477, 439], [816, 204, 858, 24], [909, 456, 252, 478], [696, 242, 935, 324], [917, 999, 174, 120], [852, 237, 834, 506], [296, 5, 111, 748], [706, 607, 470, 176], [511, 3, 181, 780], [104, 121, 815, 559], [30, 888, 987, 809], [980, 646, 68, 621], [151, 159, 847, 511], [216, 153, 524, 81], [232, 344, 443, 608], [613, 48, 987, 567], [482, 734, 352, 296], [150, 54, 779, 387], [53, 208, 939, 212], [999, 667, 907, 712], [527, 974, 693, 275], [589, 415, 593, 251], [817, 108, 592, 653], [925, 383, 642, 863], [409, 263, 441, 288], [524, 586, 918, 266], [248, 923, 220, 764], [936, 616, 521, 106], [599, 688, 72, 819], [762, 876, 429, 494], [353, 724, 774, 394], [449, 376, 358, 861], [223, 743, 609, 507], [279, 890, 182, 381], [407, 227, 318, 292], [282, 543, 533, 892], [821, 464, 352, 213], [294, 289, 509, 759]] 957))28 29test7 :: Test30test7 = TestCase (assertEqual "for (getGoodIndices [[6, 114, 977, 509], [992, 896, 940, 360], [108, 232, 245, 708], [839, 994, 876, 132], [322, 274, 923, 515], [269, 439, 946, 817], [495, 776, 365, 373], [28, 782, 83, 118], [979, 942, 907, 111], [332, 664, 757, 833], [885, 939, 68, 113], [100, 104, 441, 578], [769, 192, 680, 494], [169, 51, 884, 261], [88, 60, 678, 51], [600, 260, 945, 893], [578, 223, 333, 561], [209, 752, 843, 166], [880, 569, 698, 597], [329, 525, 407, 1], [431, 192, 711, 50], [37, 855, 590, 473], [935, 795, 85, 290], [674, 556, 171, 211], [825, 850, 418, 517], [555, 737, 950, 132], [405, 203, 554, 263], [359, 170, 215, 258], [381, 593, 785, 679], [153, 704, 754, 957], [919, 758, 73, 131], [209, 121, 633, 452], [850, 903, 831, 189], [756, 405, 232, 235], [254, 574, 70, 107], [985, 221, 949, 601], [671, 449, 108, 913], [290, 917, 148, 391], [871, 77, 224, 852], [7, 41, 760, 862], [205, 212, 549, 576], [791, 683, 877, 501], [128, 808, 94, 594], [684, 588, 547, 118], [708, 724, 428, 997], [1, 515, 617, 413], [689, 970, 677, 288], [796, 841, 983, 774], [854, 842, 649, 972], [318, 13, 692, 791], [514, 801, 601, 835], [431, 810, 912, 183], [778, 552, 326, 620], [627, 343, 412, 901], [380, 264, 962, 825], [72, 869, 314, 356], [479, 701, 720, 380], [23, 52, 949, 882], [67, 648, 120, 709], [814, 251, 484, 453], [482, 903, 374, 308], [215, 393, 68, 708], [432, 689, 907, 548], [857, 652, 902, 652], [421, 413, 237, 5], [182, 165, 186, 942], [314, 622, 884, 857], [202, 236, 606, 575], [564, 55, 87, 474], [19, 759, 536, 282], [796, 1000, 689, 798], [484, 868, 402, 964], [272, 713, 258, 838], [523, 957, 746, 397], [665, 948, 815, 727], [267, 594, 16, 190], [969, 604, 257, 608], [985, 956, 429, 633], [916, 717, 532, 947], [701, 731, 143, 346], [541, 175, 216, 703], [557, 223, 184, 755], [641, 243, 833, 33], [217, 317, 296, 763], [608, 874, 70, 716], [392, 976, 115, 953], [209, 461, 42, 352]] 183)," [] (getGoodIndices [[6, 114, 977, 509], [992, 896, 940, 360], [108, 232, 245, 708], [839, 994, 876, 132], [322, 274, 923, 515], [269, 439, 946, 817], [495, 776, 365, 373], [28, 782, 83, 118], [979, 942, 907, 111], [332, 664, 757, 833], [885, 939, 68, 113], [100, 104, 441, 578], [769, 192, 680, 494], [169, 51, 884, 261], [88, 60, 678, 51], [600, 260, 945, 893], [578, 223, 333, 561], [209, 752, 843, 166], [880, 569, 698, 597], [329, 525, 407, 1], [431, 192, 711, 50], [37, 855, 590, 473], [935, 795, 85, 290], [674, 556, 171, 211], [825, 850, 418, 517], [555, 737, 950, 132], [405, 203, 554, 263], [359, 170, 215, 258], [381, 593, 785, 679], [153, 704, 754, 957], [919, 758, 73, 131], [209, 121, 633, 452], [850, 903, 831, 189], [756, 405, 232, 235], [254, 574, 70, 107], [985, 221, 949, 601], [671, 449, 108, 913], [290, 917, 148, 391], [871, 77, 224, 852], [7, 41, 760, 862], [205, 212, 549, 576], [791, 683, 877, 501], [128, 808, 94, 594], [684, 588, 547, 118], [708, 724, 428, 997], [1, 515, 617, 413], [689, 970, 677, 288], [796, 841, 983, 774], [854, 842, 649, 972], [318, 13, 692, 791], [514, 801, 601, 835], [431, 810, 912, 183], [778, 552, 326, 620], [627, 343, 412, 901], [380, 264, 962, 825], [72, 869, 314, 356], [479, 701, 720, 380], [23, 52, 949, 882], [67, 648, 120, 709], [814, 251, 484, 453], [482, 903, 374, 308], [215, 393, 68, 708], [432, 689, 907, 548], [857, 652, 902, 652], [421, 413, 237, 5], [182, 165, 186, 942], [314, 622, 884, 857], [202, 236, 606, 575], [564, 55, 87, 474], [19, 759, 536, 282], [796, 1000, 689, 798], [484, 868, 402, 964], [272, 713, 258, 838], [523, 957, 746, 397], [665, 948, 815, 727], [267, 594, 16, 190], [969, 604, 257, 608], [985, 956, 429, 633], [916, 717, 532, 947], [701, 731, 143, 346], [541, 175, 216, 703], [557, 223, 184, 755], [641, 243, 833, 33], [217, 317, 296, 763], [608, 874, 70, 716], [392, 976, 115, 953], [209, 461, 42, 352]] 183))31 32test8 :: Test33test8 = TestCase (assertEqual "for (getGoodIndices [[856, 748, 650, 124], [599, 74, 954, 720], [116, 112, 187, 459], [428, 787, 42, 243], [878, 169, 977, 267], [351, 952, 826, 534], [730, 760, 533, 507], [612, 167, 208, 56], [349, 752, 126, 743], [33, 575, 257, 955], [815, 571, 494, 987], [88, 322, 785, 329], [892, 795, 384, 496], [797, 873, 848, 768]] 407)," [] (getGoodIndices [[856, 748, 650, 124], [599, 74, 954, 720], [116, 112, 187, 459], [428, 787, 42, 243], [878, 169, 977, 267], [351, 952, 826, 534], [730, 760, 533, 507], [612, 167, 208, 56], [349, 752, 126, 743], [33, 575, 257, 955], [815, 571, 494, 987], [88, 322, 785, 329], [892, 795, 384, 496], [797, 873, 848, 768]] 407))34 35test9 :: Test36test9 = TestCase (assertEqual "for (getGoodIndices [[14, 878, 402, 407], [119, 107, 486, 233], [125, 80, 792, 504], [736, 647, 638, 163], [327, 465, 694, 681], [211, 281, 165, 386], [367, 201, 826, 849], [863, 520, 722, 684], [355, 609, 311, 798], [834, 455, 902, 854], [588, 90, 135, 391], [413, 824, 59, 558], [893, 549, 420, 899], [75, 689, 403, 773], [903, 451, 775, 882], [355, 597, 223, 600], [494, 613, 819, 216], [52, 966, 966, 121], [70, 721, 779, 47], [865, 606, 604, 472], [110, 628, 751, 123], [692, 72, 982, 58], [205, 640, 791, 422], [984, 652, 511, 224], [806, 180, 445, 995], [430, 603, 598, 48], [175, 699, 700, 602], [661, 825, 406, 892], [58, 849, 434, 798], [870, 146, 948, 823], [512, 134, 216, 352], [610, 137, 125, 97], [711, 349, 103, 414], [895, 440, 653, 260], [609, 264, 3, 300], [981, 577, 365, 681], [41, 406, 773, 688], [222, 359, 450, 29], [354, 776, 679, 773], [975, 931, 142, 736], [135, 272, 914, 855], [883, 967, 239, 928], [900, 735, 587, 120], [515, 421, 809, 961], [863, 68, 310, 33], [709, 487, 972, 559], [132, 211, 686, 644], [828, 944, 653, 544], [17, 341, 781, 214], [187, 271, 354, 656], [1, 46, 897, 685], [549, 945, 952, 120], [535, 745, 438, 286], [348, 781, 265, 119], [627, 854, 993, 633], [21, 273, 451, 965], [346, 260, 623, 616], [9, 152, 906, 545], [455, 37, 410, 650], [300, 571, 685, 624], [982, 9, 26, 748]] 169)," [] (getGoodIndices [[14, 878, 402, 407], [119, 107, 486, 233], [125, 80, 792, 504], [736, 647, 638, 163], [327, 465, 694, 681], [211, 281, 165, 386], [367, 201, 826, 849], [863, 520, 722, 684], [355, 609, 311, 798], [834, 455, 902, 854], [588, 90, 135, 391], [413, 824, 59, 558], [893, 549, 420, 899], [75, 689, 403, 773], [903, 451, 775, 882], [355, 597, 223, 600], [494, 613, 819, 216], [52, 966, 966, 121], [70, 721, 779, 47], [865, 606, 604, 472], [110, 628, 751, 123], [692, 72, 982, 58], [205, 640, 791, 422], [984, 652, 511, 224], [806, 180, 445, 995], [430, 603, 598, 48], [175, 699, 700, 602], [661, 825, 406, 892], [58, 849, 434, 798], [870, 146, 948, 823], [512, 134, 216, 352], [610, 137, 125, 97], [711, 349, 103, 414], [895, 440, 653, 260], [609, 264, 3, 300], [981, 577, 365, 681], [41, 406, 773, 688], [222, 359, 450, 29], [354, 776, 679, 773], [975, 931, 142, 736], [135, 272, 914, 855], [883, 967, 239, 928], [900, 735, 587, 120], [515, 421, 809, 961], [863, 68, 310, 33], [709, 487, 972, 559], [132, 211, 686, 644], [828, 944, 653, 544], [17, 341, 781, 214], [187, 271, 354, 656], [1, 46, 897, 685], [549, 945, 952, 120], [535, 745, 438, 286], [348, 781, 265, 119], [627, 854, 993, 633], [21, 273, 451, 965], [346, 260, 623, 616], [9, 152, 906, 545], [455, 37, 410, 650], [300, 571, 685, 624], [982, 9, 26, 748]] 169))37 38 39-- Grouping test cases40tests :: Test41tests = TestList [TestLabel "Test1" test1, TestLabel "Test2" test2, TestLabel "Test3" test3, TestLabel "Test4" test4, TestLabel "Test5" test5, TestLabel "Test6" test6, TestLabel "Test7" test7, TestLabel "Test8" test8]42 43-- Running the tests44main :: IO Counts45main = runTestTT tests46 