TheRealSamuel/LeetCodeProblem
0572
1 2module Main where3import Test.HUnit4 5--Program start6supersequences :: [String] -> [[Int]]7supersequences words = undefined8 9--Program end10 11-- Test cases12 13test1 :: Test14test1 = TestCase (assertEqual "for (supersequences [ \"ab \", \"ba \"])," [[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]] (supersequences ["ab","ba"]))15 16test2 :: Test17test2 = TestCase (assertEqual "for (supersequences [ \"aa \", \"ac \"])," [[2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]] (supersequences ["aa","ac"]))18 19test3 :: Test20test3 = TestCase (assertEqual "for (supersequences [ \"aa \", \"bb \", \"cc \"])," [[2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]] (supersequences ["aa","bb","cc"]))21 22test4 :: Test23test4 = TestCase (assertEqual "for (supersequences [ \"wp \", \"gb \", \"mv \", \"ng \", \"em \", \"ls \", \"ay \", \"ah \", \"xt \", \"ua \", \"pn \", \"mg \", \"fs \", \"pq \", \"kp \", \"ja \", \"hs \", \"au \", \"wh \", \"tc \", \"cm \", \"ku \", \"zb \", \"cz \", \"sm \", \"bk \", \"nu \", \"wu \", \"su \", \"yh \", \"rv \", \"oz \", \"ce \", \"br \", \"fy \", \"jq \", \"qg \", \"qr \", \"zz \", \"xi \", \"ov \", \"ib \", \"ci \", \"cq \", \"gm \", \"vt \", \"gq \", \"lx \", \"hz \", \"qw \", \"pp \", \"oo \", \"xv \", \"ey \", \"gc \", \"sa \", \"fw \", \"dx \", \"zv \", \"ni \", \"gr \", \"kd \", \"wg \", \"yy \", \"gl \", \"wy \", \"sn \", \"bn \", \"kn \", \"qp \", \"vg \", \"rb \", \"hh \", \"nz \", \"jx \", \"mu \", \"xu \", \"mn \", \"hy \", \"mr \", \"ev \", \"qa \", \"me \", \"sq \", \"dg \", \"qu \", \"iy \", \"od \", \"sf \", \"jf \", \"tt \", \"ym \", \"ki \", \"wi \", \"ts \", \"ur \", \"du \", \"dd \", \"dq \", \"ie \", \"zg \", \"wc \", \"bj \", \"xf \", \"md \", \"ac \", \"sx \", \"ra \", \"my \", \"rd \", \"fq \", \"vy \", \"bi \", \"fn \", \"ew \", \"rf \", \"fu \", \"za \", \"rr \", \"py \", \"iz \", \"kk \", \"pw \", \"rt \", \"ff \", \"tw \", \"fe \", \"lj \", \"bd \", \"fz \", \"re \", \"mb \", \"th \", \"et \", \"zl \", \"uz \", \"qh \", \"be \", \"kx \", \"dj \", \"jm \", \"ga \", \"zn \", \"bh \", \"vq \", \"wn \", \"qn \", \"np \", \"cb \", \"wl \", \"ll \", \"st \", \"vl \", \"vd \", \"tq \", \"no \", \"lp \", \"ho \", \"nt \", \"wv \", \"lz \", \"ys \", \"qe \", \"vh \", \"ge \", \"dm \", \"mz \", \"uo \", \"lt \", \"hv \", \"kh \", \"jr \", \"db \", \"nh \", \"pg \", \"qv \", \"qf \", \"vp \", \"va \", \"xm \", \"ry \", \"to \", \"li \", \"sk \", \"lq \", \"bt \", \"al \", \"we \", \"fb \", \"ea \", \"wd \", \"up \", \"az \", \"vn \", \"hc \", \"ui \", \"tp \", \"ql \", \"hg \", \"lk \", \"tm \", \"pi \", \"zs \", \"aj \", \"tl \", \"td \", \"kq \", \"sr \", \"so \", \"ou \", \"gi \", \"tn \", \"ha \", \"yp \", \"rs \", \"dp \", \"pl \", \"ub \", \"ot \", \"na \", \"oj \", \"nn \", \"lm \", \"xd \", \"cv \", \"en \", \"pd \"])," [[2,2,1,2,2,2,2,2,1,1,2,2,1,2,2,2,2,2,1,2,1,1,1,1,2,2]] (supersequences ["wp", "gb", "mv", "ng", "em", "ls", "ay", "ah", "xt", "ua", "pn", "mg", "fs", "pq", "kp", "ja", "hs", "au", "wh", "tc", "cm", "ku", "zb", "cz", "sm", "bk", "nu", "wu", "su", "yh", "rv", "oz", "ce", "br", "fy", "jq", "qg", "qr", "zz", "xi", "ov", "ib", "ci", "cq", "gm", "vt", "gq", "lx", "hz", "qw", "pp", "oo", "xv", "ey", "gc", "sa", "fw", "dx", "zv", "ni", "gr", "kd", "wg", "yy", "gl", "wy", "sn", "bn", "kn", "qp", "vg", "rb", "hh", "nz", "jx", "mu", "xu", "mn", "hy", "mr", "ev", "qa", "me", "sq", "dg", "qu", "iy", "od", "sf", "jf", "tt", "ym", "ki", "wi", "ts", "ur", "du", "dd", "dq", "ie", "zg", "wc", "bj", "xf", "md", "ac", "sx", "ra", "my", "rd", "fq", "vy", "bi", "fn", "ew", "rf", "fu", "za", "rr", "py", "iz", "kk", "pw", "rt", "ff", "tw", "fe", "lj", "bd", "fz", "re", "mb", "th", "et", "zl", "uz", "qh", "be", "kx", "dj", "jm", "ga", "zn", "bh", "vq", "wn", "qn", "np", "cb", "wl", "ll", "st", "vl", "vd", "tq", "no", "lp", "ho", "nt", "wv", "lz", "ys", "qe", "vh", "ge", "dm", "mz", "uo", "lt", "hv", "kh", "jr", "db", "nh", "pg", "qv", "qf", "vp", "va", "xm", "ry", "to", "li", "sk", "lq", "bt", "al", "we", "fb", "ea", "wd", "up", "az", "vn", "hc", "ui", "tp", "ql", "hg", "lk", "tm", "pi", "zs", "aj", "tl", "td", "kq", "sr", "so", "ou", "gi", "tn", "ha", "yp", "rs", "dp", "pl", "ub", "ot", "na", "oj", "nn", "lm", "xd", "cv", "en", "pd"]))24 25test5 :: Test26test5 = TestCase (assertEqual "for (supersequences [ \"kj \", \"kn \", \"eb \", \"vo \", \"hg \", \"jn \", \"qd \", \"ye \", \"ai \", \"ux \", \"cg \", \"lh \", \"qg \", \"ls \", \"lf \", \"wd \", \"pf \"])," [[1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,0]] (supersequences ["kj", "kn", "eb", "vo", "hg", "jn", "qd", "ye", "ai", "ux", "cg", "lh", "qg", "ls", "lf", "wd", "pf"]))27 28test6 :: Test29test6 = TestCase (assertEqual "for (supersequences [ \"jv \", \"vx \", \"jo \", \"wf \", \"uo \", \"gb \", \"zt \", \"db \", \"ko \", \"hu \", \"bc \", \"pq \", \"eb \", \"sj \", \"se \", \"bt \", \"wa \", \"mw \", \"xo \", \"qx \", \"da \", \"wz \", \"ok \", \"ts \", \"dh \", \"sb \", \"du \", \"yp \", \"dp \", \"ub \", \"gs \", \"bm \"])," [[1,2,1,1,1,1,1,1,0,1,1,0,1,0,2,1,1,0,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,0,1,1,0,1,0,2,1,1,0,1,2,1,1,1,1,1,1],[1,2,1,1,1,1,1,1,0,1,2,0,1,0,1,1,1,0,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,0,1,2,0,1,0,1,1,1,0,1,2,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,0,1,1,0,1,0,2,1,1,0,2,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,0,1,2,0,1,0,1,1,1,0,2,1,1,1,1,1,1,1]] (supersequences ["jv", "vx", "jo", "wf", "uo", "gb", "zt", "db", "ko", "hu", "bc", "pq", "eb", "sj", "se", "bt", "wa", "mw", "xo", "qx", "da", "wz", "ok", "ts", "dh", "sb", "du", "yp", "dp", "ub", "gs", "bm"]))30 31test7 :: Test32test7 = TestCase (assertEqual "for (supersequences [ \"sk \", \"fj \", \"km \", \"ql \", \"in \", \"ex \", \"zp \", \"px \", \"dn \", \"ej \", \"xg \", \"pp \", \"yx \", \"ay \", \"jz \"])," [[1,0,0,1,1,1,1,0,1,1,1,1,1,1,0,2,1,0,1,0,0,0,0,1,1,1]] (supersequences ["sk", "fj", "km", "ql", "in", "ex", "zp", "px", "dn", "ej", "xg", "pp", "yx", "ay", "jz"]))33 34test8 :: Test35test8 = TestCase (assertEqual "for (supersequences [ \"ex \", \"ao \", \"ak \", \"dy \", \"gr \", \"rf \", \"mz \", \"rr \", \"ch \", \"iz \", \"ry \", \"xw \", \"ju \", \"pj \", \"rt \", \"di \", \"eg \", \"ox \", \"ja \", \"ct \", \"je \", \"fp \", \"ku \", \"ph \", \"nb \", \"gh \", \"az \", \"fg \", \"tg \", \"kc \", \"qa \", \"gn \", \"oq \", \"qs \", \"gg \", \"ej \", \"ce \", \"xl \", \"un \", \"av \", \"cf \", \"bq \", \"uj \", \"jq \", \"xj \", \"oa \", \"km \", \"zz \", \"uu \", \"hn \", \"wj \", \"bo \", \"df \", \"co \", \"zi \", \"cv \", \"dm \", \"rn \", \"an \"])," [[2,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2],[2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,2]] (supersequences ["ex", "ao", "ak", "dy", "gr", "rf", "mz", "rr", "ch", "iz", "ry", "xw", "ju", "pj", "rt", "di", "eg", "ox", "ja", "ct", "je", "fp", "ku", "ph", "nb", "gh", "az", "fg", "tg", "kc", "qa", "gn", "oq", "qs", "gg", "ej", "ce", "xl", "un", "av", "cf", "bq", "uj", "jq", "xj", "oa", "km", "zz", "uu", "hn", "wj", "bo", "df", "co", "zi", "cv", "dm", "rn", "an"]))36 37 38-- Grouping test cases39tests :: Test40tests = TestList [TestLabel "Test1" test1, TestLabel "Test2" test2, TestLabel "Test3" test3, TestLabel "Test4" test4, TestLabel "Test5" test5, TestLabel "Test6" test6, TestLabel "Test7" test7]41 42-- Running the tests43main :: IO Counts44main = runTestTT tests45 