|
| 1 | +anagram.findAnagrams.tests.ex1 = let |
| 2 | + actual = findAnagrams "diaper" ["hello", "world", "zombies", "pants"] |
| 3 | + Test.label "no matches" <| Test.expect (actual === []) |
| 4 | + |
| 5 | +anagram.findAnagrams.tests.ex2 = let |
| 6 | + actual = findAnagrams "solemn" ["lemons","cherry","melons"] |
| 7 | + expected = ["lemons","melons"] |
| 8 | + Test.label "detects two anagrams" <| Test.expect (actual === expected) |
| 9 | + |
| 10 | +anagram.findAnagrams.tests.ex3 = let |
| 11 | + actual = findAnagrams "good" ["dog","goody"] |
| 12 | + expected = [] |
| 13 | + Test.label "does not detect anagram subsets" <| Test.expect (actual === expected) |
| 14 | + |
| 15 | +anagram.findAnagrams.tests.ex4 = let |
| 16 | + actual = findAnagrams "listen" ["enlists","google","inlets","banana"] |
| 17 | + expected = ["inlets"] |
| 18 | + Test.label "detects anagram" <| Test.expect (actual === expected) |
| 19 | + |
| 20 | +anagram.findAnagrams.tests.ex5 = let |
| 21 | + actual = findAnagrams "allergy" ["gallery","ballerina","regally","clergy","largely","leading"] |
| 22 | + expected = ["gallery","regally","largely"] |
| 23 | + Test.label "detects three anagrams" <| Test.expect (actual === expected) |
| 24 | + |
| 25 | +anagram.findAnagrams.tests.ex6 = let |
| 26 | + actual = findAnagrams "nose" ["Eons","ONES"] |
| 27 | + expected = ["Eons","ONES"] |
| 28 | + Test.label "detects multiple anagrams with different case" <| Test.expect (actual === expected) |
| 29 | + |
| 30 | +anagram.findAnagrams.tests.ex7 = let |
| 31 | + actual = findAnagrams "mass" ["last"] |
| 32 | + expected = [] |
| 33 | + Test.label "does not detect non-anagrams with identical checksum" <| Test.expect (actual === expected) |
| 34 | + |
| 35 | +anagram.findAnagrams.tests.ex8 = let |
| 36 | + actual = findAnagrams "Orchestra" ["cashregister","Carthorse","radishes"] |
| 37 | + expected = ["Carthorse"] |
| 38 | + Test.label "detects anagrams case-insensitively" <| Test.expect (actual === expected) |
| 39 | + |
| 40 | +anagram.findAnagrams.tests.ex9 = let |
| 41 | + actual = findAnagrams "Orchestra" ["cashregister","carthorse","radishes"] |
| 42 | + expected = ["carthorse"] |
| 43 | + Test.label "detects anagrams using case-insensitive subject" <| Test.expect (actual === expected) |
| 44 | + |
| 45 | +anagram.findAnagrams.tests.ex10 = let |
| 46 | + actual = findAnagrams "orchestra" ["cashregister","Carthorse","radishes"] |
| 47 | + expected = ["Carthorse"] |
| 48 | + Test.label "detects anagrams using case-insensitive possible matches" <| Test.expect (actual === expected) |
| 49 | + |
| 50 | +anagram.findAnagrams.tests.ex11 = let |
| 51 | + actual = findAnagrams "go" ["go Go GO"] |
| 52 | + expected = [] |
| 53 | + Test.label "does not detect an anagram if the original word is repeated" <| Test.expect (actual === expected) |
| 54 | + |
| 55 | +anagram.findAnagrams.tests.ex12 = let |
| 56 | + actual = findAnagrams "tapper" ["patter"] |
| 57 | + expected = [] |
| 58 | + Test.label "anagrams must use all letters exactly once" <| Test.expect (actual === expected) |
| 59 | + |
| 60 | +anagram.findAnagrams.tests.ex13 = let |
| 61 | + actual = findAnagrams "BANANA" ["BANANA"] |
| 62 | + expected = [] |
| 63 | + Test.label "words are not anagrams of themselves" <| Test.expect (actual === expected) |
| 64 | + |
| 65 | +anagram.findAnagrams.tests.ex14 = let |
| 66 | + actual = findAnagrams "BANANA" ["Banana"] |
| 67 | + expected = [] |
| 68 | + Test.label "words are not anagrams of themselves even if letter case is partially different" <| Test.expect (actual === expected) |
| 69 | + |
| 70 | +anagram.findAnagrams.tests.ex15 = let |
| 71 | + actual = findAnagrams "BANANA" ["banana"] |
| 72 | + expected = [] |
| 73 | + Test.label "words are not anagrams of themselves even if letter case is completely different" <| Test.expect (actual === expected) |
| 74 | + |
| 75 | +anagram.findAnagrams.tests.ex16 = let |
| 76 | + actual = findAnagrams "LISTEN" ["LISTEN","Silent" ] |
| 77 | + expected = ["Silent"] |
| 78 | + Test.label "words other than themselves can be anagrams" <| Test.expect (actual === expected) |
| 79 | + |
| 80 | +test> anagram.tests = runAll [ |
| 81 | + anagram.findAnagrams.tests.ex1, |
| 82 | + anagram.findAnagrams.tests.ex2, |
| 83 | + anagram.findAnagrams.tests.ex3, |
| 84 | + anagram.findAnagrams.tests.ex4, |
| 85 | + anagram.findAnagrams.tests.ex5, |
| 86 | + anagram.findAnagrams.tests.ex6, |
| 87 | + anagram.findAnagrams.tests.ex7, |
| 88 | + anagram.findAnagrams.tests.ex8, |
| 89 | + anagram.findAnagrams.tests.ex9, |
| 90 | + anagram.findAnagrams.tests.ex10, |
| 91 | + anagram.findAnagrams.tests.ex11, |
| 92 | + anagram.findAnagrams.tests.ex12, |
| 93 | + anagram.findAnagrams.tests.ex13, |
| 94 | + anagram.findAnagrams.tests.ex14, |
| 95 | + anagram.findAnagrams.tests.ex15, |
| 96 | + anagram.findAnagrams.tests.ex16 |
| 97 | +] |
0 commit comments