From 1278081a487c3d1b8a7b299c0c6fe45c28fc9141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Grali=C5=84ski?= Date: Thu, 28 Jun 2018 16:32:46 +0200 Subject: [PATCH] results are sorted in the natural manner when multiple outputs are evaluated --- geval.cabal | 1 + src/GEval/Core.hs | 5 ++++- stack.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/geval.cabal b/geval.cabal index 640899c..ab97d77 100644 --- a/geval.cabal +++ b/geval.cabal @@ -61,6 +61,7 @@ library , bzlib-conduit , lzma-conduit , Glob + , naturalcomp default-language: Haskell2010 executable geval diff --git a/src/GEval/Core.hs b/src/GEval/Core.hs index cc328e5..d22f3ba 100644 --- a/src/GEval/Core.hs +++ b/src/GEval/Core.hs @@ -58,6 +58,8 @@ import System.FilePath import Data.Maybe import Data.Tuple import qualified Data.List.Split as DLS +import Data.List (sortBy) +import Text.NaturalComp import Control.Monad.IO.Class import Control.Monad ((<=<), filterM) @@ -276,7 +278,8 @@ data LineSource m = LineSource (Source m Text) SourceSpec Word32 geval :: GEvalSpecification -> IO [(SourceSpec, [MetricValue])] geval gevalSpec = do (inputSource, expectedSource, outSources) <- checkAndGetFiles False gevalSpec - Prelude.mapM (gevalOnSingleOut gevalSpec inputSource expectedSource) outSources + results <- Prelude.mapM (gevalOnSingleOut gevalSpec inputSource expectedSource) outSources + return $ sortBy (\a b -> (show $ fst a) `naturalComp` (show $ fst b)) results gevalOnSingleOut :: GEvalSpecification -> SourceSpec -> SourceSpec -> SourceSpec -> IO (SourceSpec, [MetricValue]) gevalOnSingleOut gevalSpec inputSource expectedSource outSource = do diff --git a/stack.yaml b/stack.yaml index 86aa566..478c62b 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,5 +1,5 @@ flags: {} packages: - '.' -extra-deps: [murmur3-1.0.3] +extra-deps: [murmur3-1.0.3,naturalcomp-0.0.3] resolver: lts-11.9