コード例 #1
0
 def replace_list(strats):
     """
     Find subclass verification and alter its perms_to_check variable.
     """
     res = []
     for strategy in strats:
         if isinstance(strategy, strat.SubclassVerificationFactory):
             printed_log = False
             if strategy.perms_to_check is None:
                 new_perms_to_check = set()
                 cell_bases = set(
                     tuple(obs) for obs, _ in start_tiling.cell_basis().values()
                 )
                 max_length = (
                     max(max(len(b) for b in basis) for basis in cell_bases) - 1
                 )
                 perm_gen = Perm.up_to_length(max_length)
                 for perm in perm_gen:
                     if len(perm) == 0:
                         continue
                     if any(perm.avoids(*basis) for basis in cell_bases):
                         new_perms_to_check.add(perm)
                 res.append(strategy.change_perms(new_perms_to_check))
                 if start_tiling.dimensions == (1, 1):
                     logger.info(
                         "SubclassVerification set up to check the proper "
                         "principal subclasses of Av(%s)",
                         ", ".join(map(str, cell_bases.pop())),
                     )
                     printed_log = True
             if not printed_log:
                 logger.info(
                     "SubclassVerification set up to check the subclasses: "
                     "Av(%s)",
                     "), Av(".join(map(str, strategy.perms_to_check)),
                 )
         else:
             res.append(strategy)
     return res
コード例 #2
0
 ignoreparent(ElementaryVerificationStrategy) +
 ignoreparent(LocalVerificationStrategy) +
 ignoreparent(MonotoneTreeVerificationStrategy) +
 [ObstructionTransitivityFactory()] + [
     OneByOneVerificationStrategy(
         basis=[Perm((0, 1, 2)), Perm((2, 1, 0, 3))], ignore_parent=True),
     OneByOneVerificationStrategy(
         basis=[Perm((2, 1, 0, 3))], ignore_parent=False, symmetry=True),
     OneByOneVerificationStrategy(
         basis=[], ignore_parent=False, symmetry=False),
     OneByOneVerificationStrategy(
         basis=None, ignore_parent=False, symmetry=False),
 ] + [
     SubclassVerificationFactory(
         perms_to_check=[Perm((0, 1, 2)), Perm((1, 0))]),
     SubclassVerificationFactory(perms_to_check=list(Perm.up_to_length(3))),
     SubclassVerificationStrategy(
         subclass_basis=[Perm((0, 1, 2)), Perm((1, 0))
                         ], ignore_parent=True),
     SubclassVerificationStrategy(subclass_basis=list(Perm.up_to_length(3)),
                                  ignore_parent=False),
 ] + pointonly_partial_ignoreparent_dirs(PatternPlacementFactory) +
 ignoreparent(RequirementCorroborationFactory) +
 gps_ignoreparent(RequirementInsertionStrategy) +
 gps_ignoreparent_limited(RequirementInsertionFactory) +
 gps_indices_direction_owncol_ownrow_ignoreparent_includeempty(
     RequirementPlacementStrategy) +
 maxreqlen_extrabasis_ignoreparent_maxnumreq(RootInsertionFactory) +
 row_col_partial_ignoreparent_direction(RowAndColumnPlacementFactory) +
 use_symmetries(SlidingFactory) +
 sliding_strategy_arguments(SlidingStrategy) +