From 015053ec8756b2e788c72ab6dfb6c30cec12fc03 Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Wed, 13 May 2020 08:19:52 +0200 Subject: [PATCH] Wrap filter type more --- src/GEval/Core.hs | 4 ++-- src/GEval/DataSource.hs | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/GEval/Core.hs b/src/GEval/Core.hs index 10153ac..b7d9df6 100644 --- a/src/GEval/Core.hs +++ b/src/GEval/Core.hs @@ -377,7 +377,7 @@ checkAndGetDataSources forceInput gevalSpec = do challengeDataSourceExpected = expectedSource, challengeDataSourceSelector = mSelector, challengeDataSourcePreprocess = preprocess, - challengeDataSourceFilter = Filter Nothing, + challengeDataSourceFilter = noFilter, challengeDataSourceInHeader = mInHeader, challengeDataSourceOutHeader = mOutHeader } @@ -502,7 +502,7 @@ gevalCoreOnSingleLines metric preprocess inpDecoder inpLine expDecoder expLine o then preprocess else id lsSpec = LineSourcesSpecification { - lineSourcesFilter = Filter Nothing, + lineSourcesFilter = noFilter, lineSourcesInputSource = singleLineAsLineSource inpLine inpDecoder preprocess, lineSourcesExpectedSource = singleLineAsLineSource expLine expDecoder outputPreprocess, lineSourcesOutputSource = singleLineAsLineSource outLine outDecoder outputPreprocess } diff --git a/src/GEval/DataSource.hs b/src/GEval/DataSource.hs index ee12555..d555867 100644 --- a/src/GEval/DataSource.hs +++ b/src/GEval/DataSource.hs @@ -1,7 +1,9 @@ module GEval.DataSource (ChallengeDataSource(..), DataSource(..), - Filter(..)) + Filter, + noFilter, + applyFilter) where import Data.Text @@ -12,6 +14,13 @@ import GEval.Selector newtype Filter = Filter (Maybe (Text -> Bool)) +noFilter :: Filter +noFilter = Filter Nothing + +applyFilter :: Filter -> (Text, (Text, Text)) -> Bool +applyFilter (Filter Nothing) _ = True +applyFilter (Filter (Just fun)) (inp, (exp, out)) = fun inp + -- | This type specifies the way the challenge data (input and -- expected data, but not outputs) flow into evaluation. --