Skip to content

Commit 322816f

Browse files
committed
updated point placement tests
1 parent 37d5751 commit 322816f

File tree

6 files changed

+60
-21
lines changed

6 files changed

+60
-21
lines changed

tests/strategies/equivalence_strategies/test_point_placements.py

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
from permuta import Perm
22
from permuta.misc import DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIRS
33
from tilescopethree.strategies import point_placement, requirement_placement
4-
from tilescopethree.strategies.equivalence_strategies.point_placements import \
5-
place_point_of_requirement
64
from tilings import Obstruction, Requirement, Tiling
75

86
pytest_plugins = [
@@ -14,17 +12,19 @@
1412

1513

1614
def test_point_placement(diverse_tiling, no_point_tiling):
15+
print(no_point_tiling)
16+
print(no_point_tiling.positive_cells)
1717
strats = list(point_placement(diverse_tiling))
18-
assert len(strats) == 3 * len(DIRS)
19-
18+
assert len(strats) == 5 * len(DIRS)
2019
strats = list(requirement_placement(no_point_tiling))
21-
assert len(strats) == 3 * len(DIRS)
20+
assert len(strats) == 9 * len(DIRS)
2221
strats = list(point_placement(no_point_tiling))
23-
assert len(strats) == 0
22+
assert len(strats) == 3 * len(DIRS)
2423

2524

2625
def test_place_point_of_requirement_point_only(diverse_tiling):
27-
tiling = place_point_of_requirement(diverse_tiling, 0, 0, DIR_WEST)
26+
tiling = diverse_tiling.place_point_of_gridded_permutation(
27+
diverse_tiling.requirements[0][0], 0, DIR_WEST)
2828
assert tiling == Tiling(
2929
obstructions=[
3030
Obstruction(Perm((0,)), [(1, 0)]),
@@ -53,13 +53,43 @@ def test_place_point_of_requirement_point_only(diverse_tiling):
5353
Requirement(Perm((0, 2, 1)), [(0, 3), (0, 4), (1, 4)]),
5454
Requirement(Perm((0, 2, 1)), [(0, 3), (0, 4), (3, 4)])]])
5555

56-
assert tiling == place_point_of_requirement(diverse_tiling, 0, 0, DIR_EAST)
57-
assert tiling == place_point_of_requirement(
58-
diverse_tiling, 0, 0, DIR_NORTH)
59-
assert tiling == place_point_of_requirement(
60-
diverse_tiling, 0, 0, DIR_SOUTH)
56+
assert tiling == diverse_tiling.place_point_of_gridded_permutation(
57+
diverse_tiling.requirements[0][0], 0, DIR_EAST)
58+
assert tiling == diverse_tiling.place_point_of_gridded_permutation(
59+
diverse_tiling.requirements[0][0], 0, DIR_NORTH)
60+
assert tiling == diverse_tiling.place_point_of_gridded_permutation(
61+
diverse_tiling.requirements[0][0], 0, DIR_SOUTH)
6162

62-
tiling = place_point_of_requirement(diverse_tiling, 1, 0, DIR_WEST)
63+
print(Tiling(
64+
obstructions=[
65+
Obstruction(Perm((0,)), [(2, 0)]),
66+
Obstruction(Perm((0,)), [(2, 2)]),
67+
Obstruction(Perm((0, 1)), [(1, 0), (1, 0)]),
68+
Obstruction(Perm((0, 1)), [(1, 0), (1, 2)]),
69+
Obstruction(Perm((0, 1)), [(1, 2), (1, 2)]),
70+
Obstruction(Perm((0, 1)), [(3, 1), (3, 1)]),
71+
Obstruction(Perm((0, 1)), [(2, 3), (2, 3)]),
72+
Obstruction(Perm((0, 1)), [(2, 3), (4, 3)]),
73+
Obstruction(Perm((0, 1)), [(4, 3), (4, 3)]),
74+
Obstruction(Perm((1, 0)), [(1, 0), (1, 0)]),
75+
Obstruction(Perm((1, 0)), [(1, 2), (1, 0)]),
76+
Obstruction(Perm((1, 0)), [(1, 2), (1, 2)]),
77+
Obstruction(Perm((1, 0)), [(3, 1), (3, 1)]),
78+
Obstruction(Perm((1, 0)), [(2, 3), (2, 3)]),
79+
Obstruction(Perm((1, 0)), [(2, 3), (4, 3)]),
80+
Obstruction(Perm((1, 0)), [(4, 3), (4, 3)]),
81+
Obstruction(Perm((0, 1, 2)), [(0, 0), (1, 3), (1, 3)]),
82+
Obstruction(Perm((0, 2, 3, 1)), [(0, 2), (1, 3), (1, 3), (4, 2)])],
83+
requirements=[
84+
[Requirement(Perm((0,)), [(3, 1)])],
85+
[Requirement(Perm((0,)), [(1, 0)]),
86+
Requirement(Perm((0,)), [(1, 2)])],
87+
[Requirement(Perm((0,)), [(2, 3)]),
88+
Requirement(Perm((0,)), [(4, 3)])],
89+
[Requirement(Perm((1, 0)), [(0, 4), (0, 3)]),
90+
Requirement(Perm((0, 2, 1)), [(0, 3), (0, 4), (1, 4)])]]))
91+
tiling = diverse_tiling.place_point_of_gridded_permutation(
92+
diverse_tiling.requirements[1][0], 0, DIR_WEST)
6393
assert tiling == Tiling(
6494
obstructions=[
6595
Obstruction(Perm((0,)), [(2, 0)]),
@@ -90,14 +120,16 @@ def test_place_point_of_requirement_point_only(diverse_tiling):
90120
Requirement(Perm((0, 2, 1)), [(0, 3), (0, 4), (1, 4)])]])
91121

92122
tiling = Tiling(requirements=[[Requirement(Perm((0,)), [(0, 0)])]])
93-
assert place_point_of_requirement(tiling, 0, 0, DIR_SOUTH) == Tiling(
123+
assert tiling.place_point_of_gridded_permutation(tiling.requirements[0][0],
124+
0, DIR_SOUTH) == Tiling(
94125
obstructions=[Obstruction(Perm((0, 1)), [(0, 0), (0, 0)]),
95126
Obstruction(Perm((1, 0)), [(0, 0), (0, 0)])],
96127
requirements=[[Requirement(Perm((0,)), [(0, 0)])]])
97128

98129

99130
def test_place_point_of_requirement(no_point_tiling):
100-
tiling = place_point_of_requirement(no_point_tiling, 2, 1, DIR_WEST)
131+
tiling = no_point_tiling.place_point_of_gridded_permutation(
132+
no_point_tiling.requirements[2][0], 1, DIR_WEST)
101133
tiling2 = Tiling(
102134
obstructions=[
103135
Obstruction(Perm((0, 1)), [(0, 1), (1, 3)]),

tilescopethree/strategies/batch_strategies/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
partial_row_and_col_placements,
99
partial_row_placements,
1010
requirement_list_placement,
11-
row_placements,
12-
row_and_col_placements)
11+
row_and_col_placements,
12+
row_placements)
1313
from .requirement_corroboration import requirement_corroboration
1414
from .targeted_cell_insertion import targeted_cell_insertion

tilescopethree/strategies/batch_strategies/list_requirement_placements.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,38 @@ def requirement_list_placement(tiling, **kwargs):
1515
req_placement._direction_string(direction),
1616
", ".join(str(r) for r in req)))
1717

18+
1819
def row_placements(tiling, **kwargs):
1920
yield from RequirementPlacement(tiling).all_row_placement_rules()
2021

22+
2123
def col_placements(tiling, **kwargs):
2224
yield from RequirementPlacement(tiling).all_col_placement_rules()
2325

26+
2427
def row_and_col_placements(tiling, **kwargs):
2528
req_placements = RequirementPlacement(tiling)
2629
yield from req_placements.all_row_placement_rules()
2730
yield from req_placements.all_col_placement_rules()
2831

32+
2933
def partial_row_placements(tiling, **kwargs):
3034
req_placements = (RequirementPlacement(tiling, own_row=False),
3135
RequirementPlacement(tiling, own_col=False))
3236
for req_placement in req_placements:
3337
yield from req_placement.all_row_placement_rules()
3438

39+
3540
def partial_col_placements(tiling, **kwargs):
3641
req_placements = (RequirementPlacement(tiling, own_row=False),
3742
RequirementPlacement(tiling, own_col=False))
3843
for req_placement in req_placements:
3944
yield from req_placement.all_col_placement_rules()
4045

46+
4147
def partial_row_and_col_placements(tiling, **kwargs):
4248
req_placements = (RequirementPlacement(tiling, own_row=False),
4349
RequirementPlacement(tiling, own_col=False))
4450
for req_placement in req_placements:
4551
yield from req_placement.all_row_placement_rules()
4652
yield from req_placement.all_col_placement_rules()
47-

tilescopethree/strategies/equivalence_strategies/isolate_points.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ def point_isolations(tiling, **kwargs):
99
if not tiling.only_cell_in_row_and_col():
1010
isolated_tiling = req_placement.place_point_in_cell(cell, DIR_WEST)
1111
yield EquivalenceRule("Isolate point at cell {}.".format(cell),
12-
isolated_tiling)
12+
isolated_tiling)

tilescopethree/strategies/equivalence_strategies/point_placements.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def point_placement(tiling, **kwargs):
2323
"""
2424
yield from RequirementPlacement(tiling).all_point_placement_rules()
2525

26+
2627
def all_placements(tiling, **kwargs):
2728
req_placements = (RequirementPlacement(tiling),
2829
RequirementPlacement(tiling, own_row=False),

tilescopethree/strategy_packs_v2.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
from comb_spec_searcher import StrategyPack
55
from comb_spec_searcher.utils import get_func_name
66
from tilescopethree.strategies import (all_cell_insertions, all_col_insertions,
7+
all_placements,
78
all_requirement_insertions,
89
all_row_insertions)
910
from tilescopethree.strategies import col_placements as col_placements_strat
10-
from tilescopethree.strategies import (all_placements, database_verified,
11-
elementary_verified, factor, fusion,
11+
from tilescopethree.strategies import (database_verified, elementary_verified,
12+
factor, fusion,
1213
fusion_with_interleaving,
1314
globally_verified,
1415
obstruction_transitivity,

0 commit comments

Comments
 (0)