rest-rewrite-0.1: test/MultisetOrder.hs
module MultisetOrder where
import Prelude hiding (GT)
import Control.Monad.Identity
import Debug.Trace (trace)
import Language.REST.MultiSet as M
import Language.REST.MultisetOrder
import Language.REST.OrderingConstraints.Strict as SC
import Language.REST.OrderingConstraints as OC
import Language.REST.Types
compareChar :: ConstraintGen impl Char Char Identity
compareChar impl r oc c1 c2 = Identity $ intersectRelation impl oc (c1, c2, r)
existingOC = OC.intersectRelation strictOC' SC.noConstraints ('a', 'c', GTE)
ms = multisetOrder compareChar strictOC' GTE
multisetNext = ms existingOC (M.fromList "bac") (M.fromList "aaaa")
unsat :: Identity (StrictOC Char)
unsat = do
mn <- multisetNext
return $ OC.intersectRelation strictOC' mn ('c', 'a', GT)
tests :: [(String, Bool)]
tests = [
("Constraints",
(SC.noConstraints /=
(runIdentity $ ms SC.noConstraints (M.fromList "bc") (M.fromList "aa"))))
, ("Unsat", SC.isUnsatisfiable $ runIdentity unsat)
]