Exemplo n.º 1
0
def test_grouper_edge_produces_correct_dagfile_lines(dag, writer):
    parent = dag.layer(name="parent", vars=[{}] * 6)
    child = parent.child_layer(name="child", vars=[{}] * 4, edge=dags.Grouper(3, 2))

    lines = dagfile_lines(writer)

    assert f"PARENT parent{s}0 parent{s}1 parent{s}2 CHILD __JOIN__{s}0" in lines
    assert f"PARENT parent{s}3 parent{s}4 parent{s}5 CHILD __JOIN__{s}1" in lines
    assert f"PARENT __JOIN__{s}0 CHILD child{s}0 child{s}1" in lines
    assert f"PARENT __JOIN__{s}1 CHILD child{s}2 child{s}3" in lines
Exemplo n.º 2
0
def test_compatible_grouper_edges(
    num_parent_vars, num_child_vars, parent_group_size, child_group_size, dag, writer
):
    parent = dag.layer(name="parent", vars=[{}] * num_parent_vars)
    child = parent.child_layer(
        name="child",
        vars=[{}] * num_child_vars,
        edge=dags.Grouper(parent_group_size, child_group_size),
    )

    dagfile_lines(writer)
Exemplo n.º 3
0
def test_incompatible_grouper_edges(
    num_parent_vars, num_child_vars, parent_group_size, child_group_size, dag, writer
):
    parent = dag.layer(name="parent", vars=[{}] * num_parent_vars)
    child = parent.child_layer(
        name="child",
        vars=[{}] * num_child_vars,
        edge=dags.Grouper(parent_group_size, child_group_size),
    )

    with pytest.raises(dags.exceptions.IncompatibleGrouper):
        dagfile_lines(writer)