コード例 #1
0
ファイル: test_set.py プロジェクト: phcerdan/wolfram_model
def test_set_constructor_throws_if_negative_initial_expressions(set_inputs_0):
    rule, initial_expressions, ordering, random_seed = set_inputs_0
    initial_expressions = [[-1, -2], [-2, -3]]
    with pytest.raises(ValueError) as excinfo:
        wm.set(rules=[rule],
               initial_expressions=initial_expressions,
               ordering=ordering,
               random_seed=random_seed)
    assert "initial_expressions must be" in str(excinfo.value)
コード例 #2
0
def wm0():
    # Rule: {{x, y}, {x, z}} -> {{x, y}, {x, w}, {y, w}, {z, w}}
    rule = wm.rule(inputs=[[-1, -2], [-1, -3]],
                   outputs=[[-1, -2], [-1, -4], [-2, -4], [-3, -4]])
    initial_expressions = [[1, 2], [1, 3]]
    order_function = wm.matcher.ordering_function.RuleID
    order_direction = wm.matcher.ordering_direction.Normal
    ordering = [[order_function, order_direction]]
    random_seed = 0

    step_spec = wm.set.step_spec()
    step_spec.max_events = 100
    step_spec.max_generations_local = 100
    step_spec.max_final_atoms = 100000
    step_spec.max_final_atom_degree = 100000
    step_spec.max_final_expressions = 100000

    rules = [rule]
    wms = wm.set(rules=rules,
                 initial_expressions=initial_expressions,
                 ordering=ordering,
                 random_seed=random_seed)
    substitutions_made = wms.replace(step_spec)

    return [
        wms, rules, step_spec, [initial_expressions, ordering, random_seed]
    ]
コード例 #3
0
ファイル: test_set.py プロジェクト: phcerdan/wolfram_model
def test_set_replace(set_inputs_0, step_spec0):
    rule, initial_expressions, ordering, random_seed = set_inputs_0
    step_spec = step_spec0
    wms = wm.set(rules=[rule],
                 initial_expressions=initial_expressions,
                 ordering=ordering,
                 random_seed=random_seed)
    substitutions_made = wms.replace(step_spec)
    termination_reason = wms.get_termination_reason()
    assert termination_reason == wm.set.termination_reason.MaxEvents
    assert substitutions_made == step_spec.max_events
    max_complete_generation = wms.max_complete_generation()
    assert max_complete_generation == step_spec.max_events

    substitution_made = wms.replaceOnce()
    assert not substitution_made, "Shouldn't advance when the termination_reason is MaxEvents"
    event_rule_ids = wms.event_rule_ids()
    assert event_rule_ids, "event_rule_ids is not empty"
コード例 #4
0
ファイル: test_set.py プロジェクト: phcerdan/wolfram_model
def test_set_constructor(set_inputs_0):
    rule, initial_expressions, ordering, random_seed = set_inputs_0
    wm.set(rules=[rule],
           initial_expressions=initial_expressions,
           ordering=ordering,
           random_seed=random_seed)