Skip to content

sanity check failure #488

@jaypantone

Description

@jaypantone
import requests
from comb_spec_searcher import CombinatorialSpecification
from tilings.tilescope import TileScopePack

uri = "https://api.permpal.com/garpur_run/62bc859f67d0aaf5374f1e69"
data = requests.get(uri).json()
pack = TileScopePack.from_dict(data["pack"])
spec = CombinatorialSpecification.from_dict(data["specification"])
spec.sanity_check(0)
In [4]: spec.sanity_check(0)
[W 220629 15:49:37 specification:496] Can't sanity check the rule 855 -> (856,), which is
    swapping assumptions in cols 1 and 2
    +-+-+-+                                      +-+-+-+
    |\|1|2|                                   =  |\|1|2|
    +-+-+-+                                      +-+-+-+
    1: Av+(120)                                  1: Av+(120)
    2: Av(120)                                   2: Av(120)
    \: Av(01)                                    \: Av(01)
    Crossing obstructions:                       Crossing obstructions:
    120: (0, 0), (1, 0), (1, 0)                  120: (0, 0), (1, 0), (1, 0)
    120: (0, 0), (1, 0), (2, 0)                  120: (0, 0), (1, 0), (2, 0)
    120: (0, 0), (2, 0), (2, 0)                  120: (0, 0), (2, 0), (2, 0)
    120: (1, 0), (1, 0), (2, 0)                  120: (1, 0), (1, 0), (2, 0)
    120: (1, 0), (2, 0), (2, 0)                  120: (1, 0), (2, 0), (2, 0)
    Requirement 0:                               Requirement 0:
    0: (1, 0)                                    0: (1, 0)
    Assumption 0:                                Assumption 0:
    can count points in cells (0, 0), (2, 0)     can count points in cells (0, 0), (1, 0)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~/Dropbox/Research/Active/2017-44-ATRAP/repos/Tilings/tilings/tiling.py in get_assumption_parameter(self, assumption)
   1465         decreasing = set()
-> 1466         for ob in self.obstructions:
   1467             if ob.is_single_cell():

ValueError: tuple.index(x): x not in tuple

The above exception was the direct cause of the following exception:

ValueError                                Traceback (most recent call last)
<ipython-input-4-efb92228bbdf> in <module>
----> 1 spec.sanity_check(0)

~/Dropbox/Research/Active/2017-44-ATRAP/repos/comb_spec_searcher/comb_spec_searcher/specification.py in sanity_check(self, length)
    487             try:
    488                 for n in range(length + 1):
--> 489                     if not rule.sanity_check(n):
    490                         return False
    491             except NotImplementedError:

~/Dropbox/Research/Active/2017-44-ATRAP/repos/comb_spec_searcher/comb_spec_searcher/strategies/rule.py in sanity_check(self, n)
    521         try:
    522             return (
--> 523                 self._sanity_check_count(n)
    524                 and self._sanity_check_objects(n)
    525                 and self._sanity_check_random_sample(n)

~/Dropbox/Research/Active/2017-44-ATRAP/repos/comb_spec_searcher/comb_spec_searcher/strategies/rule.py in _sanity_check_count(self, n)
    537         temp_subterms = self.subterms
    538         self.subterms = tuple(child.get_terms for child in self.children)
--> 539         rule_terms = self.get_terms(n)
    540         self.subterms = temp_subterms
    541         if actual_terms != rule_terms:

~/Dropbox/Research/Active/2017-44-ATRAP/repos/comb_spec_searcher/comb_spec_searcher/strategies/rule.py in get_terms(self, n)
    226         Return the terms for the given n.
    227         """
--> 228         self._ensure_level(n)
    229         return self.terms_cache[n]
    230

~/Dropbox/Research/Active/2017-44-ATRAP/repos/comb_spec_searcher/comb_spec_searcher/strategies/rule.py in _ensure_level(self, n)
    476             raise RuntimeError("set_subrecs must be set first")
    477         while n >= len(self.terms_cache):
--> 478             terms = self.constructor.get_terms(
    479                 self.get_terms, self.subterms, len(self.terms_cache)
    480             )

~/Dropbox/Research/Active/2017-44-ATRAP/repos/comb_spec_searcher/comb_spec_searcher/strategies/rule.py in constructor(self)
    826             }
    827             for rule in self.rules:
--> 828                 original_constructor = rule.constructor
    829                 assert isinstance(original_constructor, (DisjointUnion, Complement))
    830                 rules_parameters = original_constructor.extra_parameters[0]

~/Dropbox/Research/Active/2017-44-ATRAP/repos/comb_spec_searcher/comb_spec_searcher/strategies/rule.py in constructor(self)
    396         if self._constructor is None:
    397             self._constructor = self.strategy.constructor(
--> 398                 self.comb_class, self.children
    399             )
    400             if self._constructor is None:

~/Dropbox/Research/Active/2017-44-ATRAP/repos/comb_spec_searcher/comb_spec_searcher/strategies/strategy.py in constructor(self, comb_class, children)
    563             comb_class,
    564             children,
--> 565             extra_parameters=self.extra_parameters(comb_class, children),
    566         )
    567

~/Dropbox/Research/Active/2017-44-ATRAP/repos/Tilings/tilings/strategies/point_jumping.py in extra_parameters(self, comb_class, children)
    165                     ass
    166                 ): child.get_assumption_parameter(self._swap_assumption(ass))
--> 167                 for ass in comb_class.assumptions
    168             },
    169         )

~/Dropbox/Research/Active/2017-44-ATRAP/repos/Tilings/tilings/strategies/point_jumping.py in <dictcomp>(.0)
    165                     ass
    166                 ): child.get_assumption_parameter(self._swap_assumption(ass))
--> 167                 for ass in comb_class.assumptions
    168             },
    169         )

~/Dropbox/Research/Active/2017-44-ATRAP/repos/Tilings/tilings/tiling.py in get_assumption_parameter(self, assumption)
   1468                 if ob.patt.is_increasing():
   1469                     increasing.add(ob.pos[0])
-> 1470                 if ob.patt.is_decreasing():
   1471                     decreasing.add(ob.pos[0])
   1472         return all(

ValueError: following assumption not on tiling: 'can count points in cells (0, 0), (1, 0)'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions