diff options
author | William Carroll <wpcarro@gmail.com> | 2020-01-18T17·05+0000 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-01-18T17·05+0000 |
commit | bb0de3dec2a610a3789c0fd02dd9e018e239b487 (patch) | |
tree | eb5d3e83f5ccb61e8f6aba061d583ccacd861ff8 /haskell-file/tests.hs | |
parent | 34dc3e05c8a42c47023776d52ff33f100f2d310f (diff) |
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.
Diffstat (limited to 'haskell-file/tests.hs')
-rw-r--r-- | haskell-file/tests.hs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/haskell-file/tests.hs b/haskell-file/tests.hs new file mode 100644 index 000000000000..e3967b77de1f --- /dev/null +++ b/haskell-file/tests.hs @@ -0,0 +1,39 @@ +module FTest where +-------------------------------------------------------------------------------- +import Test.Tasty +import Test.Tasty.Hedgehog +import Hedgehog +-------------------------------------------------------------------------------- +import qualified Hedgehog as H +import qualified Hedgehog.Gen as Gen +import qualified Hedgehog.Range as Range +-------------------------------------------------------------------------------- +import Data.List (intercalate) +import System.FilePath (pathSeparator) +-------------------------------------------------------------------------------- +import F +-------------------------------------------------------------------------------- +main :: IO () +main + = defaultMain + . localOption (HedgehogTestLimit $ Just 50) + $ testGroup "f functions" + [ test_split + ] +-------------------------------------------------------------------------------- +test_split :: TestTree +test_split + = testGroup "split function" + [ testProperty "splits parts properly" splitSuccess + ] +splitSuccess :: Property +splitSuccess = property $ do + -- separator + -- <- H.forAll + -- $ Gen.element ['/', '\\'] + parts + <- H.forAll + . Gen.list (Range.linear 0 10) + $ Gen.list (Range.linear 1 10) Gen.alphaNum + let path = intercalate [pathSeparator] parts + F.split path === parts |