Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c9eab0f

Browse files
lucasmouranorvig
authored andcommitted
Add tests to CSP class (aimacode#299)
* Add tests to CSP class Add test for the following methods on CSP class: * assign * unassigns * nconflits * actions * Refactor some asserts in test_csp.py Some asserts were being done in the following way: assert (X is not None) == True Now, they are handled in the following way: assert X
1 parent ca893d7 commit c9eab0f

File tree

1 file changed

+55
-9
lines changed

1 file changed

+55
-9
lines changed

tests/test_csp.py

Lines changed: 55 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,62 @@
22
from csp import * #noqa
33

44

5+
def test_csp_assign():
6+
var = 10
7+
val = 5
8+
assignment = {}
9+
australia.assign(var, val, assignment)
10+
11+
assert australia.nassigns == 1
12+
assert assignment[var] == val
13+
14+
15+
def test_csp_unassign():
16+
var = 10
17+
assignment = {var: 5}
18+
australia.unassign(var, assignment)
19+
20+
assert var not in assignment
21+
22+
23+
def test_csp_nconflits():
24+
map_coloring_test = MapColoringCSP(list('RGB'), 'A: B C; B: C; C: ')
25+
assignment = {'A': 'R', 'B': 'G'}
26+
var = 'C'
27+
val = 'R'
28+
assert map_coloring_test.nconflicts(var, val, assignment) == 1
29+
30+
val = 'B'
31+
assert map_coloring_test.nconflicts(var, val, assignment) == 0
32+
33+
34+
def test_csp_actions():
35+
map_coloring_test = MapColoringCSP(list('123'), 'A: B C; B: C; C: ')
36+
37+
state = {'A': '1', 'B': '2', 'C': '3'}
38+
assert map_coloring_test.actions(state) == []
39+
40+
state = {'A': '1', 'B': '3'}
41+
assert map_coloring_test.actions(state) == [('C', '2')]
42+
43+
state = {'A': '1', 'C': '2'}
44+
assert map_coloring_test.actions(state) == [('B', '3')]
45+
46+
state = {'A': '1'}
47+
assert (map_coloring_test.actions(state) == [('C', '2'), ('C', '3')] or
48+
map_coloring_test.actions(state) == [('B', '2'), ('B', '3')])
49+
50+
551
def test_backtracking_search():
6-
assert (backtracking_search(australia) is not None) == True
7-
assert (backtracking_search(australia, select_unassigned_variable=mrv) is not None) == True
8-
assert (backtracking_search(australia, order_domain_values=lcv) is not None) == True
9-
assert (backtracking_search(australia, select_unassigned_variable=mrv,
10-
order_domain_values=lcv) is not None) == True
11-
assert (backtracking_search(australia, inference=forward_checking) is not None) == True
12-
assert (backtracking_search(australia, inference=mac) is not None) == True
13-
assert (backtracking_search(usa, select_unassigned_variable=mrv,
14-
order_domain_values=lcv, inference=mac) is not None) == True
52+
assert backtracking_search(australia)
53+
assert backtracking_search(australia, select_unassigned_variable=mrv)
54+
assert backtracking_search(australia, order_domain_values=lcv)
55+
assert backtracking_search(australia, select_unassigned_variable=mrv,
56+
order_domain_values=lcv)
57+
assert backtracking_search(australia, inference=forward_checking)
58+
assert backtracking_search(australia, inference=mac)
59+
assert backtracking_search(usa, select_unassigned_variable=mrv,
60+
order_domain_values=lcv, inference=mac)
1561

1662

1763
def test_universal_dict():

0 commit comments

Comments
 (0)