Skip to content

Commit dea719a

Browse files
committed
Improve Relations tests
1 parent 216e277 commit dea719a

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

test/Autotool/Solver/RelationsSpec.hs

+19-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Test.Hspec
55
import Data.Set (Set)
66
import Autotool.DAO (toValue)
77
import qualified Autotool.DAO.Set as DAO
8-
import Autotool.Data.RelOp ( (&), (+), (-), (*) )
8+
import Autotool.Data.RelOp ( (&), (+), (-), (*), inverse, transitiveClosure, reflexiveClosure )
99
import Autotool.Data.LazyTree ( Tree(Node), mkOp0 )
1010
import Autotool.TreeSearch (SearchMode(..))
1111
import Autotool.Solver.Relations (solve)
@@ -85,6 +85,24 @@ spec = do
8585
]
8686
]
8787
in solve (Parallel 10000) ops u t `shouldBe` result
88+
it "finds term w/ a target value from a set of relations and operations (including inverse, transitive_cl, reflexive_cl)" $
89+
let
90+
r = mkOp0 "r" $ readSet "{(1 , 2) , (4 , 3)}"
91+
s = mkOp0 "s" $ readSet "{(1 , 3) , (2 , 4)}"
92+
t = readSet "{(3 , 1)}"
93+
u = [1,2,3,4] :: [Int]
94+
ops = [ r, s, (+), (&), (-), (*), inverse, transitiveClosure, reflexiveClosure ]
95+
result =
96+
Node inverse [
97+
Node (*) [
98+
Node r [],
99+
Node (*) [
100+
Node s [],
101+
Node r []
102+
]
103+
]
104+
]
105+
in solve (Parallel 10000) ops u t `shouldBe` result
88106

89107
readSet :: String -> Set(Int,Int)
90108
readSet s = let dao = read s :: DAO.Set (Int,Int) in toValue dao

0 commit comments

Comments
 (0)