test now uses a rudimentary preprocessor
This commit is contained in:
parent
aedbc0af15
commit
cc2e3fd21c
@ -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
|
||||||
|
13
src/Main.hs
13
src/Main.hs
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user