X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FStringUtils.hs;h=e498c2eea81cfc2025e2f3c546ecd519c0678832;hp=b7d291c229acdc96f777f8b60078fbd991d3c0cd;hb=1b72ed45ef890ed1329a32457b4d7f3a7fb37788;hpb=e13f2a1eced5f388b37bc0ed12e9db72eba4b5d4 diff --git a/src/StringUtils.hs b/src/StringUtils.hs index b7d291c..e498c2e 100644 --- a/src/StringUtils.hs +++ b/src/StringUtils.hs @@ -1,31 +1,39 @@ --- |Miscellaneous functions for manipulating string. -module StringUtils +-- | Miscellaneous functions for manipulating string. +module StringUtils ( + listify, + string_utils_tests ) where -import Test.HUnit +import Test.Tasty ( TestTree, testGroup ) +import Test.Tasty.HUnit ( (@?=), testCase ) --- |Takes a list of strings, call them string1, string2, etc. and --- numbers them like a list. So, --- 1. string1 --- 2. string2 --- 3. etc. +-- | Takes a list of strings and numbers it like an ordered list. +-- +-- Examples: +-- +-- >>> listify ["foo", "bar", "baz"] +-- ["1. foo","2. bar","3. baz"] +-- listify :: [String] -> [String] -listify items = - zipWith (++) list_numbers items +listify = + zipWith (++) list_numbers where list_numbers = map show_with_dot [1::Integer ..] show_with_dot x = (show x) ++ ". " +-- +-- * Tests +-- -string_utils_tests :: [Test] -string_utils_tests = [ test_listify ] +string_utils_tests :: TestTree +string_utils_tests = + testGroup "StringUtils Tests" [ test_listify ] - -test_listify :: Test -test_listify = - TestCase $ assertEqual "All items are numbered correctly." expected_items actual_items - where - actual_items = listify [ "item1", "item2" ] - expected_items = ["1. item1", "2. item2" ] +test_listify :: TestTree +test_listify = testCase description $ actual @?= expected + where + description = "all items are numbered correctly" + actual = listify [ "item1", "item2" ] + expected = ["1. item1", "2. item2" ]