Skip to content

Commit de093f8

Browse files
committed
Solve 'Check three and two' kata
1 parent 27c6697 commit de093f8

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/ThreeAndTwo.hs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module ThreeAndTwo (checkThreeAndTwo) where
2+
3+
-- https://www.codewars.com/kata/5a9e86705ee396d6be000091/train/haskell
4+
5+
import Data.List (sort)
6+
7+
checkThreeAndTwo :: [Char] -> Bool
8+
checkThreeAndTwo xs
9+
| a == b && b == c && c /= d && d == e = True
10+
| a == b && b /= c && c == d && d == e = True
11+
| otherwise = False
12+
where
13+
[a, b, c, d, e] = sort xs

test/ThreeAndTwoSpec.hs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module ThreeAndTwoSpec where
2+
3+
import Test.HUnit
4+
import Test.Hspec
5+
import ThreeAndTwo (checkThreeAndTwo)
6+
7+
spec :: Spec
8+
spec = do
9+
describe "Fixed Tests" $ do
10+
it "Works on the examples" $ do
11+
assertEqual "\"aaabb\"" True $ checkThreeAndTwo "aaabb"
12+
assertEqual "\"abcbc\"" False $ checkThreeAndTwo "abcbc"
13+
assertEqual "\"aaaaa\"" False $ checkThreeAndTwo "aaaaa"

0 commit comments

Comments
 (0)