Ejemplo n.º 1
0
    def __init__(
        self,
        data: Dict[str, Any],
        entry_point_cls: Optional[Dict[str, Callable[..., EntryPoint]]] = None,
        plan_ext: str = ".plan",
    ):
        """Initialize a new plan.

        :param data: a dictionary defining additional globals to push
            into plan associated module
        :param entry_point_cls: dict associating a list of decorator name
            with an entry point class
        :param plan_ext: plan extension, by default ".plan". This is used to
            detect whether a specific frame is in a plan or in our code. See
            PlanContext._add_action
        """
        self.mod = types.ModuleType("_anod_plan_")

        # Some additional user symbols
        for k, v in data.items():
            self.mod.__dict__[k] = v

        self.entry_points: Dict[str, EntryPoint] = {}

        if entry_point_cls is None:
            entry_point_cls = {}

        self.plan_ext = plan_ext

        self.mod.__dict__["machine"] = partial(entry_point, self.entry_points,
                                               Machine, "machine")

        for name, cls in entry_point_cls.items():
            self.mod.__dict__[name] = partial(entry_point, self.entry_points,
                                              cls, name)

        self.plan_date = datetime.now(timezone.utc)
        self.mod.__dict__["cond"] = self.cond
        self.toggleable_bool_group = ToggleableBooleanGroup()
Ejemplo n.º 2
0
def test_toggleable_bools():
    g = ToggleableBooleanGroup()
    for i, v in enumerate((True, True, False, True, False, False)):
        g.add(name="seed{}".format(i), value=v)

    result = []
    result.append([bool(c) for c in g])
    for series in g.shuffle():
        result.append([bool(c) for c in series])
        assert series == list(g)
        assert len(g) == 6

    assert result == [
        [True, True, False, True, False, False],
        [True, True, True, True, True, True],
        [True, True, True, True, True, False],
        [True, True, True, True, False, True],
        [True, True, True, True, False, False],
        [True, True, True, False, True, True],
        [True, True, True, False, True, False],
        [True, True, True, False, False, True],
        [True, True, True, False, False, False],
        [True, True, False, True, True, True],
        [True, True, False, True, True, False],
        [True, True, False, True, False, True],
        [True, True, False, False, True, True],
        [True, True, False, False, True, False],
        [True, True, False, False, False, True],
        [True, True, False, False, False, False],
        [True, False, True, True, True, True],
        [True, False, True, True, True, False],
        [True, False, True, True, False, True],
        [True, False, True, True, False, False],
        [True, False, True, False, True, True],
        [True, False, True, False, True, False],
        [True, False, True, False, False, True],
        [True, False, True, False, False, False],
        [True, False, False, True, True, True],
        [True, False, False, True, True, False],
        [True, False, False, True, False, True],
        [True, False, False, True, False, False],
        [True, False, False, False, True, True],
        [True, False, False, False, True, False],
        [True, False, False, False, False, True],
        [True, False, False, False, False, False],
        [False, True, True, True, True, True],
        [False, True, True, True, True, False],
        [False, True, True, True, False, True],
        [False, True, True, True, False, False],
        [False, True, True, False, True, True],
        [False, True, True, False, True, False],
        [False, True, True, False, False, True],
        [False, True, True, False, False, False],
        [False, True, False, True, True, True],
        [False, True, False, True, True, False],
        [False, True, False, True, False, True],
        [False, True, False, True, False, False],
        [False, True, False, False, True, True],
        [False, True, False, False, True, False],
        [False, True, False, False, False, True],
        [False, True, False, False, False, False],
        [False, False, True, True, True, True],
        [False, False, True, True, True, False],
        [False, False, True, True, False, True],
        [False, False, True, True, False, False],
        [False, False, True, False, True, True],
        [False, False, True, False, True, False],
        [False, False, True, False, False, True],
        [False, False, True, False, False, False],
        [False, False, False, True, True, True],
        [False, False, False, True, True, False],
        [False, False, False, True, False, True],
        [False, False, False, True, False, False],
        [False, False, False, False, True, True],
        [False, False, False, False, True, False],
        [False, False, False, False, False, True],
        [False, False, False, False, False, False],
    ]