X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FStringUtils.hs;fp=src%2FStringUtils.hs;h=b7d291c229acdc96f777f8b60078fbd991d3c0cd;hp=0000000000000000000000000000000000000000;hb=e13f2a1eced5f388b37bc0ed12e9db72eba4b5d4;hpb=ee2deb5a51e416d607cce45ddd10d4e19c050771 diff --git a/src/StringUtils.hs b/src/StringUtils.hs new file mode 100644 index 0000000..b7d291c --- /dev/null +++ b/src/StringUtils.hs @@ -0,0 +1,31 @@ +-- |Miscellaneous functions for manipulating string. +module StringUtils +where + +import Test.HUnit + + +-- |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 + where + list_numbers = map show_with_dot [1::Integer ..] + show_with_dot x = (show x) ++ ". " + + + +string_utils_tests :: [Test] +string_utils_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" ]