packages feed

hasklepias-0.8.3: test/FeatureCompose/AesonSpec.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleContexts #-}
module FeatureCompose.AesonSpec (spec) where

import IntervalAlgebra
import EventData
import EventData.Context
import FeatureEvents
import FeatureCompose
import FeatureCompose.Aeson
import Data.Aeson (encode)
import Data.Maybe
import Data.Time as DT
import Test.Hspec ( shouldBe, it, Spec )
import qualified Data.ByteString.Lazy as B


ex1 :: Events Int
ex1 = [event (beginerval 10 0) (context Nothing (packConcepts ["enrollment"]))]

index:: (Ord a) =>
     Events a
  -> FeatureData (Interval a)
index es =
    case firstConceptOccurrence ["enrollment"] es of
        Nothing -> featureDataL (Other "No Enrollment")
        Just x  -> pure (getInterval x)


spec :: Spec
spec = do
    it "an Int event is parsed correctly" $
       encode (index ex1)  `shouldBe` "[{\"end\":10,\"begin\":0}]"