-- | -- Module : Simulation.Aivika.Experiment.SamplingStatsWriter -- Copyright : Copyright (c) 2012-2015, David Sorokin -- License : BSD3 -- Maintainer : David Sorokin -- Stability : experimental -- Tested with: GHC 7.10.1 -- -- The module defines 'SamplingStatsWriter' that knows how to write -- the sampling statistics in HTML. -- module Simulation.Aivika.Experiment.SamplingStatsWriter (SamplingStatsWriter(..), defaultSamplingStatsWriter) where import Simulation.Aivika.Experiment.Types import Simulation.Aivika.Experiment.HtmlWriter import Simulation.Aivika.Statistics -- | Defines a writer that knows how to represent the 'SamplingStats' -- as the HTML table. data SamplingStatsWriter a = SamplingStatsWriter { samplingStatsWidth :: Int, -- ^ The width of the HTML table. samplingStatsMeanText :: String, -- ^ Translated text \"mean\". samplingStatsDeviationText :: String, -- ^ Translated text \"deviation\". samplingStatsMinText :: String, -- ^ Translated text \"minimum\". samplingStatsMaxText :: String, -- ^ Translated text \"maximum\". samplingStatsCountText :: String, -- ^ Translated text \"count\". samplingStatsFormatter :: ShowS, -- ^ The formatter of numbers. samplingStatsWrite :: SamplingStatsWriter a -> String -> SamplingStats a -> HtmlWriter () -- ^ This function reprensents the named statistics -- as the HTML table. } -- | The default writer. defaultSamplingStatsWriter :: Show a => SamplingStatsWriter a defaultSamplingStatsWriter = SamplingStatsWriter { samplingStatsWidth = 400, samplingStatsMeanText = "mean", samplingStatsDeviationText = "deviation", samplingStatsMinText = "minimum", samplingStatsMaxText = "maximum", samplingStatsCountText = "count", samplingStatsFormatter = id, samplingStatsWrite = \writer name stats -> do let format x = samplingStatsFormatter writer x writeHtml "

" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "" writeHtml "
" writeHtml "

" writeHtmlText name writeHtml "" writeHtml "

" writeHtmlText $ samplingStatsMeanText writer writeHtml "" writeHtmlText $ format $ show $ samplingStatsMean stats writeHtml "
" writeHtmlText $ samplingStatsDeviationText writer writeHtml "" writeHtmlText $ format $ show $ samplingStatsDeviation stats writeHtml "
" writeHtmlText $ samplingStatsMinText writer writeHtml "" writeHtmlText $ format $ show $ samplingStatsMin stats writeHtml "
" writeHtmlText $ samplingStatsMaxText writer writeHtml "" writeHtmlText $ format $ show $ samplingStatsMax stats writeHtml "
" writeHtmlText $ samplingStatsCountText writer writeHtml "" writeHtml $ format $ show $ samplingStatsCount stats writeHtml "
" writeHtml "

" }