numbers in graphs are shown with the right precision

This commit is contained in:
Filip Gralinski 2018-09-01 13:56:18 +02:00
parent 1c277f6ad1
commit c23e28250a
2 changed files with 10 additions and 5 deletions

View File

@ -3,7 +3,7 @@ module Handler.Graph where
import Import
import Handler.Tables
import Handler.Shared (getMainTest, formatParameter)
import Handler.Shared (formatParameter, formatScore)
import Data.Maybe
import Data.List ((!!))
import Database.Persist.Sql
@ -21,6 +21,7 @@ data ParamGraphSeries = ParamGraphSeries Text [(TableEntry, Text, MetricValue)]
getChallengeParamGraphDataR :: Text -> (Key Test) -> Text -> Handler Value
getChallengeParamGraphDataR challengeName testId paramName = do
(Entity challengeId _) <- runDB $ getBy404 $ UniqueName challengeName
test <- runDB $ get404 testId
(entries, tests) <- getChallengeSubmissionInfos (const True) challengeId
@ -34,11 +35,11 @@ getChallengeParamGraphDataR challengeName testId paramName = do
return $ object [
"xs" .= object (map (\(ParamGraphSeries seriesName _) -> (seriesName .= (xSeriesName seriesName))) series),
"columns" .= ((map toYColumn series) ++ (map toXColumn series))
"columns" .= ((map (toYColumn $ testPrecision test) series) ++ (map toXColumn series))
]
toYColumn :: ParamGraphSeries -> [Text]
toYColumn (ParamGraphSeries seriesName items) =
seriesName : (map (\(_,_,v) -> pack $ show v) items)
toYColumn :: Maybe Int -> ParamGraphSeries -> [Text]
toYColumn mPrecision (ParamGraphSeries seriesName items) =
seriesName : (map (\(_,_,v) -> formatScore mPrecision v) items)
toXColumn :: ParamGraphSeries -> [Text]
toXColumn (ParamGraphSeries seriesName items) =

View File

@ -349,6 +349,10 @@ formatTruncatedScore (Just precision) (Just evaluation) = case evaluationScore e
Just score -> T.pack $ printf "%0.*f" precision score
Nothing -> formatFullScore Nothing
formatScore :: Maybe Int -> Double -> Text
formatScore Nothing = T.pack . show
formatScore (Just precision) = T.pack . (printf "%0.*f" precision)
formatParameter :: Parameter -> Text
formatParameter param = parameterName param ++ "=" ++ parameterValue param