packages feed

timeseries-0.4.1: test-src/Data/TimeSeries/StatsSpec.hs

module Data.TimeSeries.StatsSpec (spec) where

import Prelude
import Test.Hspec
import Data.Time.Clock.POSIX (posixSecondsToUTCTime, utcTimeToPOSIXSeconds)

import qualified Data.TimeSeries as TS


spec :: Spec
spec =

  describe "Base" $ do

    it "mean" $ do
        let idx = [1..]
        let values = [1.0, 2.0, 3.0] :: [Double]
        TS.mean (TS.tsSeries idx values) `shouldBe` 2.0

    it "variance" $ do
        let idx = [1..]
        let values = [1.0..6.0] :: [Double]
        TS.variance (TS.tsSeries idx values) `shouldBe` 35/12

    it "standard deviation" $ do
        let idx = [1..]
        let values = [1.0..6.0] :: [Double]
        TS.std (TS.tsSeries idx values) `shouldBe` sqrt (35/12)