def test_add_single_hit(self, parent_config, new_config): """Test if adding a dimension only touches the correct status""" del new_config['metadata']['user_args'][1] conflicts = detect_conflicts(parent_config, new_config) branch_builder = ExperimentBranchBuilder(conflicts, {}) branch_builder.add_dimension('w_d') assert len(conflicts.get()) == 3 assert not conflicts.get([ExperimentNameConflict])[0].is_resolved assert conflicts.get([NewDimensionConflict])[0].is_resolved assert not conflicts.get([MissingDimensionConflict])[0].is_resolved
def test_add_single_hit(self, parent_config, new_config): """Test if adding a dimension only touches the correct status""" del new_config["metadata"]["user_args"][2] backward.populate_space(new_config) conflicts = detect_conflicts(parent_config, new_config) branch_builder = ExperimentBranchBuilder(conflicts, manual_resolution=True) branch_builder.add_dimension("w_d") assert len(conflicts.get()) == 3 assert conflicts.get([ExperimentNameConflict])[0].is_resolved assert conflicts.get([NewDimensionConflict])[0].is_resolved assert not conflicts.get([MissingDimensionConflict])[0].is_resolved
def test_add_changed(self, parent_config, changed_config): """Test if adding a changed dimension solves the conflict""" conflicts = detect_conflicts(parent_config, changed_config) branch_builder = ExperimentBranchBuilder(conflicts, {}) branch_builder.add_dimension('y') assert len(conflicts.get()) == 2 assert len(conflicts.get_resolved()) == 1 conflict = conflicts.get_resolved()[0] assert conflict.is_resolved assert isinstance(conflict.resolution, conflict.ChangeDimensionResolution)
def test_add_new(self, parent_config, new_config): """Test if adding a new dimension solves the conflict""" conflicts = detect_conflicts(parent_config, new_config) branch_builder = ExperimentBranchBuilder(conflicts, manual_resolution=True) branch_builder.add_dimension("w_d") assert len(conflicts.get()) == 2 assert len(conflicts.get_resolved()) == 2 conflict = conflicts.get_resolved()[1] assert conflict.is_resolved assert isinstance(conflict.resolution, conflict.AddDimensionResolution)
def test_reset_dimension(self, parent_config, new_config): """Test if resetting a dimension unsolves the conflict""" conflicts = detect_conflicts(parent_config, new_config) branch_builder = ExperimentBranchBuilder(conflicts, {}) branch_builder.add_dimension('w_d') assert len(conflicts.get_resolved()) == 1 with pytest.raises(ValueError) as exc: branch_builder.reset('w_d~+') assert "'w_d~+' is not in list" in str(exc.value) assert len(conflicts.get_resolved()) == 1 branch_builder.reset('w_d~+norm(0, 1)') assert len(conflicts.get()) == 2 conflict = conflicts.get(dimension_name='w_d')[0] assert not conflict.is_resolved assert isinstance(conflict, NewDimensionConflict) assert len(conflicts.get_resolved()) == 0