never executed always true always false
    1 module Conjure.Language.DomainSizeTest ( tests ) where
    2 
    3 -- conjure
    4 import Conjure.Prelude
    5 import Conjure.Language.Constant
    6 import Conjure.Language.Type
    7 import Conjure.Language.Domain
    8 import Conjure.Language.DomainSizeOf ( domainSizeOf )
    9 
   10 -- tasty
   11 import Test.Tasty ( TestTree, testGroup )
   12 import Test.Tasty.HUnit ( testCase, (@?=) )
   13 
   14 
   15 domainSizeConstant :: (MonadFailDoc m ) => Domain () Constant -> m Integer
   16 domainSizeConstant = domainSizeOf
   17 
   18 tests :: TestTree
   19 tests = testGroup "domainSize"
   20     [ testCase "domain size of bool is 2" $
   21         domainSizeConstant DomainBool @?= Right 2
   22     , testCase "domain size of int(1..100)" $
   23         domainSizeConstant (DomainInt TagInt [RangeBounded ((ConstantInt TagInt) 1) ((ConstantInt TagInt) 100)]) @?= Right 100
   24     , testCase "domain size of int(1,...,100)" $
   25         domainSizeConstant (DomainInt TagInt (map (RangeSingle . (ConstantInt TagInt)) [1 .. 100])) @?= Right 100
   26     , testCase "domain size of int(13)" $
   27         domainSizeConstant (DomainInt TagInt [RangeSingle ((ConstantInt TagInt) 13)]) @?= Right 1
   28     , testCase "domain size of int(13,1..100)" $
   29         domainSizeConstant (DomainInt TagInt [ RangeSingle ((ConstantInt TagInt) 13)
   30                                       , RangeBounded ((ConstantInt TagInt) 1) ((ConstantInt TagInt) 100)
   31                                       ]) @?= Right 100
   32     , testCase "domain size of int(113,1..100)" $
   33         domainSizeConstant (DomainInt TagInt [ RangeSingle ((ConstantInt TagInt) 113)
   34                                       , RangeBounded ((ConstantInt TagInt) 1) ((ConstantInt TagInt) 100)
   35                                       ]) @?= Right 101
   36     , testCase "domain size of set of bool #1" $
   37         domainSizeConstant (DomainSet () (SetAttr SizeAttr_None) DomainBool) @?= Right 4
   38     , testCase "domain size of set of bool #2" $
   39         let setOfSize n = DomainSet () (SetAttr (SizeAttr_Size n))
   40         in  domainSizeConstant (setOfSize ((ConstantInt TagInt) 2) DomainBool) @?= Right 1
   41     ]
   42