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
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)
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)