packages feed

crdt-0.5: test/GSet.hs

{-# OPTIONS_GHC -Wno-orphans #-}

{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}

module GSet
    ( gSet
    ) where

import           Test.Tasty (TestTree, testGroup)
import           Test.Tasty.QuickCheck (testProperty, (==>))

import qualified CRDT.GSet.Cv as Cv

import           Laws (cvrdtLaws)

gSet :: TestTree
gSet = testGroup "GSet"
    [ testGroup "Cv"
        [ cvrdtLaws @(Cv.GSet Int)
        , testProperty "add" $
            \(set :: Cv.GSet Int) i ->
                not (Cv.query i set) ==> Cv.query i (Cv.add i set)
        ]
    ]