def test_dialsscalecrossvalidator(): """Test the methods of the dials.scale cross validator""" experiments = [] reflections = [] def mock_script(): script = mock.MagicMock() script.scaler.work_free_stats = [1.0, 2.0, 3.0, 4.0] return script # test get results from script crossvalidator = DialsScaleCrossValidator(experiments, reflections) script = mock_script() results = crossvalidator.get_results_from_script(script) assert results == [1.0, 2.0, 3.0, 4.0] params = generated_param() params.scaling_options.free_set_percentage = 20.0 # test get free set offset fsp = crossvalidator.get_free_set_percentage(params) assert fsp == 20.0 # test set free set offset params = crossvalidator.set_free_set_offset(params, 5) assert params.scaling_options.free_set_offset == 5 # test get/set parameters assert crossvalidator.get_parameter_type("model") == "choice" assert crossvalidator.get_parameter_type( "physical.absorption_correction") == "bool" assert crossvalidator.get_parameter_type("physical.lmax") == "int" assert crossvalidator.get_parameter_type( "physical.decay_interval") == "float" params = crossvalidator.set_parameter(params, "model", "physical") assert params.model == "physical" params = crossvalidator.set_parameter(params, "physical.decay_interval", 50.0) assert params.physical.decay_interval == 50.0 params = crossvalidator.set_parameter(params, "physical.lmax", 10) assert params.physical.lmax == 10 params = crossvalidator.set_parameter(params, "weighting.error_model.error_model", None) assert params.weighting.error_model.error_model is None params = crossvalidator.set_parameter(params, "cut_data.d_min", 1.8) assert params.cut_data.d_min == 1.8 params = crossvalidator.set_parameter(params, "scaling_options.outlier_zmax", 7.53) assert params.scaling_options.outlier_zmax == 7.53 with pytest.raises(ValueError): _ = crossvalidator.set_parameter(params, "bad_parameter", 7.53)
def test_dialsscalecrossvalidator(): """Test the methods of the dials.scale cross validator""" experiments = [] reflections = [] def mock_script(): script = mock.MagicMock() script.scaler.final_rmsds = [1.0, 2.0, 3.0, 4.0] return script # test get results from script crossvalidator = DialsScaleCrossValidator(experiments, reflections) script = mock_script() results = crossvalidator.get_results_from_script(script) assert results == [1.0, 2.0, 3.0, 4.0] params = generated_param() params.scaling_options.free_set_percentage = 20.0 # test get free set offset fsp = crossvalidator.get_free_set_percentage(params) assert fsp == 20.0 # test set free set offset params = crossvalidator.set_free_set_offset(params, 5) assert params.scaling_options.free_set_offset == 5 # test get/set parameters assert crossvalidator.get_parameter_type("model") == "choice" assert crossvalidator.get_parameter_type("absorption_term") == "bool" assert crossvalidator.get_parameter_type("lmax") == "int" assert crossvalidator.get_parameter_type("decay_interval") == "float" params = crossvalidator.set_parameter(params, "model", "KB") assert params.model == "KB" params = crossvalidator.set_parameter(params, "decay_interval", 50.0) assert params.parameterisation.decay_interval == 50.0 params = crossvalidator.set_parameter(params, "lmax", 10) assert params.parameterisation.lmax == 10 params = crossvalidator.set_parameter(params, "optimise_errors", False) assert params.weighting.optimise_errors is False params = crossvalidator.set_parameter(params, "d_min", 1.8) assert params.cut_data.d_min == 1.8 params = crossvalidator.set_parameter(params, "outlier_zmax", 7.53) assert params.scaling_options.outlier_zmax == 7.53 with pytest.raises(AssertionError): _ = crossvalidator.set_parameter(params, "bad_parameter", 7.53)