test now uses a rudimentary preprocessor

This commit is contained in:
Nicole Dresselhaus 2013-12-01 17:20:09 +01:00
parent aedbc0af15
commit cc2e3fd21c
2 changed files with 9 additions and 6 deletions

View File

@ -21,7 +21,7 @@ executable hgraph
repa >=3.2, repa >=3.2,
text -any, text -any,
transformers >=0.3.0, transformers >=0.3.0,
vector >=0.10.9 && <0.11 vector >=0.10.9
main-is: Main.hs main-is: Main.hs
buildable: True buildable: True
hs-source-dirs: src hs-source-dirs: src

View File

@ -34,6 +34,7 @@ import qualified Data.List as L
import qualified Data.Stream as S import qualified Data.Stream as S
import qualified Data.Text as T import qualified Data.Text as T
import Data.Text.Encoding import Data.Text.Encoding
import Data.Int
import Debug.Trace import Debug.Trace
import System.Environment import System.Environment
import System.Exit (exitFailure, exitSuccess) import System.Exit (exitFailure, exitSuccess)
@ -52,10 +53,10 @@ import Test.QuickCheck.All (quickCheckAll)
-- * Valid Chars: 0, 1, \\n -- * Valid Chars: 0, 1, \\n
-- --
-- * Invalid: \\r -- * Invalid: \\r
createGraph :: T.Text -> Either [Int] T.Text createGraph :: T.Text -> Either [Int8] T.Text
createGraph input = createGraph' input (Left []) createGraph input = createGraph' input (Left [])
where where
createGraph' :: T.Text -> Either [Int] T.Text -> Either [Int] T.Text createGraph' :: T.Text -> Either [Int8] T.Text -> Either [Int8] T.Text
createGraph' a r createGraph' a r
| T.null a = r | T.null a = r
| otherwise = | otherwise =
@ -65,7 +66,7 @@ createGraph input = createGraph' input (Left [])
_ -> Right $ T.append (T.pack "cannot parse ") a _ -> Right $ T.append (T.pack "cannot parse ") a
-- call recursion as last resort -> ensure not much happens on the heap -- call recursion as last resort -> ensure not much happens on the heap
where where
createGraph'' :: Int -> T.Text -> Either [Int] T.Text -> Either [Int] T.Text createGraph'' :: Int8 -> T.Text -> Either [Int8] T.Text -> Either [Int8] T.Text
createGraph'' x cs r = createGraph'' x cs r =
case createGraph' cs r of case createGraph' cs r of
Left xs -> Left (x:xs) Left xs -> Left (x:xs)
@ -83,8 +84,10 @@ createGraph input = createGraph' input (Left [])
-- --
-- * Valid: Doubles, Tabs (\\t) -- * Valid: Doubles, Tabs (\\t)
-- --
--TODO: curruntly ignores first element
createAttr :: T.Text -> Either [Double] T.Text createAttr :: T.Text -> Either [Double] T.Text
createAttr input = createAttr' (T.split (=='\t') input) (Left []) createAttr input = createAttr' (tail (T.split (=='\t') input)) (Left [])
where where
createAttr' :: [T.Text] -> Either [Double] T.Text -> Either [Double] T.Text createAttr' :: [T.Text] -> Either [Double] T.Text -> Either [Double] T.Text
createAttr' [] r = r createAttr' [] r = r
@ -107,7 +110,7 @@ emptyLine a
-- TODO: implement calculation -- TODO: implement calculation
--doCalculation :: Matrix Int -> B.ByteString --doCalculation :: Matrix Int -> B.ByteString
doCalculation graph attr = createOutput attr doCalculation adj attr = createOutput $ fst $ preprocess adj attr testDensity testDivergence testReq
-- | creates a default-formatted output with \",\" in between elements -- | creates a default-formatted output with \",\" in between elements
-- and \"\\n\" in between dimensions -- and \"\\n\" in between dimensions