{-# LANGUAGE OverloadedStrings #-}
import FrequentSubstring
import Util (showText)
import Data.Text
import Test.HUnit
main :: IO Counts
main = runTestTT tests
tests :: Test
tests = TestList
[ TestLabel "test1" test1
, TestLabel "test2" test2
, TestLabel "test3" test3
]
test3 :: Test
test3 = TestCase $ do
let t = "aababcabcdabcdeabcdefabcdefgabcdefgh"
let expected = ("abcd", 5)
let r = 5
let actual = longestSubstringWithRRepeats r t
assertEqual (unpack $ "longestSubstringWithRRepeats r=" <> showText r) expected actual
test2 :: Test
test2 = TestCase $ do
let t = "abbcccddddeeeeeffffffggggggghhhhhhhh"
let expected = ("hhhhh", 4)
let r = 4
let actual = longestSubstringWithRRepeats r t
assertEqual (unpack $ "longestSubstringWithRRepeats r=" <> showText r) expected actual
test1 :: Test
test1 = TestCase $ do
let t = "abbcccddddeeeeeffffffggggggghhhhhhhh"
let expected = ("h", 8)
let r = 8
let actual = longestSubstringWithRRepeats r t
assertEqual (unpack $ "longestSubstringWithRRepeats r=" <> showText r) expected actual