packages feed

frequent-substring-0.1.0.0: test/Spec.hs

{-# 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