--- |Miscellaneous functions for manipulating string.
+-- | Miscellaneous functions for manipulating string.
module StringUtils
where
-import Test.HUnit
+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.
+-- | 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 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 ]
-
-
-test_listify :: Test
+test_listify :: Assertion
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" ]
+ 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