-- | Miscellaneous functions for manipulating string. module StringUtils where import Test.Framework (Test, testGroup) import Test.Framework.Providers.HUnit (testCase) import Test.HUnit (Assertion, assertEqual) -- | Takes a list of strings, call them string1, string2, etc. and -- numbers them like a list. So, -- -- 1. string1 -- 2. string2 -- 3. etc. -- listify :: [String] -> [String] listify = zipWith (++) list_numbers where list_numbers = map show_with_dot [1::Integer ..] show_with_dot x = (show x) ++ ". " -- -- Tests -- test_listify :: Assertion test_listify = assertEqual description expected_items actual_items where description = "All items are numbered correctly." actual_items = listify [ "item1", "item2" ] expected_items = ["1. item1", "2. item2" ] string_utils_tests :: Test string_utils_tests = testGroup "StringUtils Tests" [ tc1 ] where tc1 = testCase "All items are numbered correctly." test_listify