packages feed

Holumbus-Storage-0.0.1: Examples/Utils/Filehandling/FileHandlingTest.hs

-- ----------------------------------------------------------------------------
{- |
  Module     : 
  Copyright  : Copyright (C) 2008 Stefan Schmidt
  License    : MIT

  Maintainer : Stefan Schmidt (stefanschmidt@web.de)
  Stability  : experimental
  Portability: portable
  Version    : 0.1


-}
-- ----------------------------------------------------------------------------

module Main(main) where


import           Data.Binary
import qualified Data.ByteString.Lazy as B

import           Holumbus.Common.FileHandling


version :: String
version = "FileHandlingTest 0.1"


text1 :: String
text1 = "Hello"

text2 :: String
text2 = "World"

bin1 :: B.ByteString
bin1 = encode "Hello"

bin2 :: B.ByteString
bin2 = encode "World"

list1 :: [String]
list1 = ["Hello"]

list2 :: [String]
list2 = ["World"]


textfileName :: String
textfileName = "test.txt"

binfileName :: String
binfileName = "test.bin"

listfileName :: String
listfileName = "test.lst"

compareResults :: (Show a, Eq a) => a -> a -> IO ()
compareResults v1 v2
  = do
    putStrLn "comparing"
    putStrLn $ "v1: " ++ show v1
    putStrLn $ "v2: " ++ show v2
    putStrLn $ "equal: " ++ show (v1 == v2) 

main :: IO ()
main
  = do
    putStrLn version
    
    putStrLn ""
    putStrLn "textfileTest"
    writeToTextFile textfileName text1
    t1 <- readFromTextFile textfileName
    compareResults text1 t1
    appendToTextFile textfileName text2
    t2 <- readFromTextFile textfileName
    compareResults (text1 ++ text2) t2
    
    putStrLn ""
    putStrLn "binfileTest"
    writeToBinFile binfileName bin1
    b1 <- readFromBinFile binfileName
    compareResults bin1 b1
    appendToBinFile binfileName bin2
    b2 <- readFromBinFile binfileName
    compareResults (B.append bin1 bin2) b2
    
    putStrLn ""
    putStrLn "textfileTest"
    writeToListFile listfileName list1
    l1 <- readFromListFile listfileName
    compareResults list1 l1
    appendToListFile listfileName list2
    l2 <- readFromListFile listfileName
    compareResults (list1 ++ list2) l2