add test for the line-by-line mode

This commit is contained in:
Filip Gralinski 2018-05-26 21:10:22 +02:00
parent cb655cd2ae
commit f68223409e
4 changed files with 27 additions and 2 deletions

View File

@ -80,6 +80,7 @@ test-suite geval-test
, text , text
, attoparsec , attoparsec
, edit-distance , edit-distance
, conduit
ghc-options: -threaded -rtsopts -with-rtsopts=-N ghc-options: -threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010 default-language: Haskell2010

View File

@ -11,7 +11,8 @@ module GEval.LineByLine
(runLineByLine, (runLineByLine,
runLineByLineGeneralized, runLineByLineGeneralized,
runDiff, runDiff,
runDiffGeneralized runDiffGeneralized,
LineRecord(..)
) where ) where
import GEval.Core import GEval.Core

View File

@ -9,11 +9,14 @@ import GEval.ClippEU
import GEval.PrecisionRecall import GEval.PrecisionRecall
import GEval.ClusteringMetrics import GEval.ClusteringMetrics
import GEval.BIO import GEval.BIO
import GEval.LineByLine
import Data.Attoparsec.Text import Data.Attoparsec.Text
import Options.Applicative import Options.Applicative
import Data.Text import Data.Text
import Text.EditDistance import Text.EditDistance
import Data.Conduit.List (consume)
import qualified Test.HUnit as HU import qualified Test.HUnit as HU
informationRetrievalBookExample :: [(String, Int)] informationRetrievalBookExample :: [(String, Int)]
@ -263,7 +266,23 @@ main = hspec $ do
describe "automatic decompression" $ do describe "automatic decompression" $ do
it "more complex test" $ do it "more complex test" $ do
runGEvalTest "charmatch-complex-compressed" `shouldReturnAlmost` 0.1923076923076923 runGEvalTest "charmatch-complex-compressed" `shouldReturnAlmost` 0.1923076923076923
describe "line by line mode" $ do
let sampleChallenge =
GEvalSpecification
{ gesOutDirectory = "test/likelihood-simple/likelihood-simple-solution",
gesExpectedDirectory = Just "test/likelihood-simple/likelihood-simple",
gesTestName = "test-A",
gesOutFile = "out.tsv",
gesExpectedFile = "expected.tsv",
gesInputFile = "in.tsv",
gesMetric = Likelihood,
gesPrecision = Nothing }
it "simple test" $ do
results <- runLineByLineGeneralized sampleChallenge Data.Conduit.List.consume
Prelude.map (\(LineRecord inp _ _ _ _) -> inp) results `shouldBe` ["foo",
"bar",
"baz",
"baq"]
neverMatch :: Char -> Int -> Bool neverMatch :: Char -> Int -> Bool
neverMatch _ _ = False neverMatch _ _ = False

View File

@ -0,0 +1,4 @@
foo
bar
baz
baq
1 foo
2 bar
3 baz
4 baq