def test_run_with_no_parameters_txt(test_file, expected_file): design2params.run( 1, "design_matrix.xlsx", "DesignSheet01", "DefaultValues", "new_parameters.txt", log_level=logging.DEBUG, ) assert filecmp.cmp(test_file, expected_file) with open(design2params._TARGET_FILE_TXT, "r") as status_file: status = status_file.read() assert status == "OK\n"
def test_pair_cell_values(cellvalues, expected_parameters_strs, tmpdir): """Test how a pair of values, one for each realization, go through the Excel input sheets and all the way to parameters.txt. This is to ensure that differing datatypes in a single Excel columns does not affect individual values.""" # pylint: disable=abstract-class-instantiated tmpdir.chdir() designsheet_df = pd.DataFrame(columns=["REAL", "SOMEKEY"], data=[[0, cellvalues[0]], [1, cellvalues[1]]]) defaultssheet_df = pd.DataFrame() writer = pd.ExcelWriter("design_matrix.xlsx") designsheet_df.to_excel(writer, sheet_name="DesignSheet01", index=False) defaultssheet_df.to_excel(writer, sheet_name="DefaultValues", index=False, header=None) writer.save() params_0 = "parameters0.txt" design2params.run( 0, "design_matrix.xlsx", "DesignSheet01", "DefaultValues", params_0, log_level=logging.DEBUG, ) params_1 = "parameters1.txt" design2params.run( 1, "design_matrix.xlsx", "DesignSheet01", "DefaultValues", params_1, log_level=logging.DEBUG, ) with open(params_0) as p_file: params_lines_0 = p_file.readlines() with open(params_1) as p_file: params_lines_1 = p_file.readlines() key_vals_real0 = extract_key_value(params_lines_0) key_vals_real1 = extract_key_value(params_lines_1) assert key_vals_real0["SOMEKEY"] == expected_parameters_strs[0] assert key_vals_real1["SOMEKEY"] == expected_parameters_strs[1]
def test_duplicated_designcolumns(paramset, tmpdir, caplog): """If the excel sheet contains duplicated column headers, pandas will happily read it but modify column names. This is most likely a user error, and a warning is issued""" tmpdir.chdir() write_design_xlsx( "design_matrix.xlsx", designdf=pd.DataFrame(columns=["REAL"] + paramset, data=[[0] + ["foo"] * len(paramset)]), ) design2params.run( 0, "design_matrix.xlsx", ) assert "are probably duplicated" in caplog.text
def test_single_cell_values(cellvalue, expected_parameters_str, tmpdir): """Test how certain single values go through the Excel input sheets and all the way to parameters.txt""" tmpdir.chdir() write_design_xlsx( "design_matrix.xlsx", designdf=pd.DataFrame(columns=["REAL", "SOMEKEY"], data=[[0, cellvalue]]), ) params_file = "parameters.txt" design2params.run( 0, "design_matrix.xlsx", parametersfilename=params_file, log_level=logging.DEBUG, ) with open(params_file) as p_file: params_lines = p_file.readlines() key_vals = extract_key_value(params_lines) assert key_vals["SOMEKEY"] == expected_parameters_str
def test_pair_cell_values(cellvalues, expected_parameters_strs, tmpdir): """Test how a pair of values, one for each realization, go through the Excel input sheets and all the way to parameters.txt. This is to ensure that differing datatypes in a single Excel columns does not affect individual values.""" tmpdir.chdir() write_design_xlsx( "design_matrix.xlsx", designdf=pd.DataFrame(columns=["REAL", "SOMEKEY"], data=[[0, cellvalues[0]], [1, cellvalues[1]]]), ) params_0 = "parameters0.txt" design2params.run( 0, "design_matrix.xlsx", parametersfilename=params_0, log_level=logging.DEBUG, ) params_1 = "parameters1.txt" design2params.run( 1, "design_matrix.xlsx", parametersfilename=params_1, log_level=logging.DEBUG, ) with open(params_0) as p_file: params_lines_0 = p_file.readlines() with open(params_1) as p_file: params_lines_1 = p_file.readlines() key_vals_real0 = extract_key_value(params_lines_0) key_vals_real1 = extract_key_value(params_lines_1) assert key_vals_real0["SOMEKEY"] == expected_parameters_strs[0] assert key_vals_real1["SOMEKEY"] == expected_parameters_strs[1]