11from unification import var
22
3- from kanren import eq , run
3+ from kanren import run
44
5- from symbolic_pymc .relations import lconj , lconj_seq , ldisj , ldisj_seq , conde , concat
5+ from symbolic_pymc .relations import concat
66
77
88def test_concat ():
@@ -11,81 +11,3 @@ def test_concat():
1111 assert not run (0 , q , concat ("a" , "b" , "bc" ))
1212 assert not run (0 , q , concat (1 , "b" , "bc" ))
1313 assert run (0 , q , concat (q , "b" , "bc" )) == (q ,)
14-
15-
16- def test_lconj_basics ():
17-
18- res = list (lconj (eq (1 , var ("a" )), eq (2 , var ("b" )))({}))
19- assert res == [{var ("a" ): 1 , var ("b" ): 2 }]
20-
21- res = list (lconj (eq (1 , var ("a" )))({}))
22- assert res == [{var ("a" ): 1 }]
23-
24- res = list (lconj_seq ([])({}))
25- assert res == []
26-
27- res = list (lconj (eq (1 , var ("a" )), eq (2 , var ("a" )))({}))
28- assert res == []
29-
30- res = list (lconj (eq (1 , 2 ))({}))
31- assert res == []
32-
33- res = list (lconj (eq (1 , 1 ))({}))
34- assert res == [{}]
35-
36-
37- def test_ldisj_basics ():
38-
39- res = list (ldisj (eq (1 , var ("a" )))({}))
40- assert res == [{var ("a" ): 1 }]
41-
42- res = list (ldisj (eq (1 , 2 ))({}))
43- assert res == []
44-
45- res = list (ldisj (eq (1 , 1 ))({}))
46- assert res == [{}]
47-
48- res = list (ldisj (eq (1 , var ("a" )), eq (1 , var ("a" )))({}))
49- assert res == [{var ("a" ): 1 }, {var ("a" ): 1 }]
50-
51- res = list (ldisj (eq (1 , var ("a" )), eq (2 , var ("a" )))({}))
52- assert res == [{var ("a" ): 1 }, {var ("a" ): 2 }]
53-
54- res = list (ldisj_seq ([])({}))
55- assert res == []
56-
57-
58- def test_conde_basics ():
59-
60- res = list (conde ([eq (1 , var ("a" )), eq (2 , var ("b" ))], [eq (1 , var ("b" )), eq (2 , var ("a" ))])({}))
61- assert res == [{var ("a" ): 1 , var ("b" ): 2 }, {var ("b" ): 1 , var ("a" ): 2 }]
62-
63- res = list (conde ([eq (1 , var ("a" )), eq (2 , 1 )], [eq (1 , var ("b" )), eq (2 , var ("a" ))])({}))
64- assert res == [{var ("b" ): 1 , var ("a" ): 2 }]
65-
66- res = list (
67- conde (
68- [eq (1 , var ("a" )), conde ([eq (11 , var ("aa" ))], [eq (12 , var ("ab" ))])],
69- [
70- eq (1 , var ("b" )),
71- conde ([eq (111 , var ("ba" )), eq (112 , var ("bb" ))], [eq (121 , var ("bc" ))]),
72- ],
73- )({})
74- )
75- assert res == [
76- {var ("a" ): 1 , var ("aa" ): 11 },
77- {var ("b" ): 1 , var ("ba" ): 111 , var ("bb" ): 112 },
78- {var ("a" ): 1 , var ("ab" ): 12 },
79- {var ("b" ): 1 , var ("bc" ): 121 },
80- ]
81-
82- res = list (conde ([eq (1 , 2 )], [eq (1 , 1 )])({}))
83- assert res == [{}]
84-
85- assert list (lconj (eq (1 , 1 ))({})) == [{}]
86-
87- res = list (lconj (conde ([eq (1 , 2 )], [eq (1 , 1 )]))({}))
88- assert res == [{}]
89-
90- res = list (lconj (conde ([eq (1 , 2 )], [eq (1 , 1 )]), conde ([eq (1 , 2 )], [eq (1 , 1 )]))({}))
91- assert res == [{}]
0 commit comments