Begin tests for Haskell File module
Cameron sent over some property tests for his File.split function, which is a part of a larger effort to port f.el, a nice library for working with file paths, over to Haskell.
This commit is contained in:
parent
34dc3e05c8
commit
bb0de3dec2
2 changed files with 56 additions and 0 deletions
|
|
@ -1,7 +1,14 @@
|
|||
module F
|
||||
( join
|
||||
, split
|
||||
) where
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Dependencies
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
import Data.List (span)
|
||||
import System.FilePath (FilePath, pathSeparator)
|
||||
import System.FilePath.Posix (FilePath)
|
||||
import qualified System.FilePath.Posix as F
|
||||
|
||||
|
|
@ -25,6 +32,16 @@ simpleAssert x y =
|
|||
join :: [FilePath] -> FilePath
|
||||
join = F.joinPath
|
||||
|
||||
-- | Split path and return list containing parts.
|
||||
split :: FilePath -> [String]
|
||||
split = splitJoin . span (/= pathSeparator)
|
||||
where
|
||||
splitJoin :: (String, String) -> [String]
|
||||
splitJoin ([], []) = []
|
||||
splitJoin (a, []) = [a]
|
||||
splitJoin (a, [_]) = [a]
|
||||
splitJoin (a, _:b) = a : split b
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Tests
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue