def test_reset(excel): excel_compiler = ExcelCompiler(excel=excel) in_address = 'Sheet1!A1' out_address = 'Sheet1!D1' assert -0.02286 == round(excel_compiler.evaluate(out_address), 5) in_value = excel_compiler.cell_map[in_address].value excel_compiler._reset(excel_compiler.cell_map[in_address]) assert excel_compiler.cell_map[out_address].value is None excel_compiler._reset(excel_compiler.cell_map[in_address]) assert excel_compiler.cell_map[out_address].value is None excel_compiler.cell_map[in_address].value = in_value assert -0.02286 == round(excel_compiler.evaluate(out_address), 5) assert -0.02286 == round(excel_compiler.cell_map[out_address].value, 5)
def test_evaluate_from_non_cells(excel): excel_compiler = ExcelCompiler(excel=excel) input_addrs = ['Sheet1!A11'] output_addrs = ['Sheet1!A11:A13', 'Sheet1!D1', 'Sheet1!B11', ] old_values = excel_compiler.evaluate(output_addrs) excel_compiler.trim_graph(input_addrs, output_addrs) excel_compiler.to_file(file_types='yml') excel_compiler = ExcelCompiler.from_file(excel_compiler.filename) for expected, result in zip( old_values, excel_compiler.evaluate(output_addrs)): assert expected == pytest.approx(result) range_cell = excel_compiler.cell_map[output_addrs[0]] excel_compiler._reset(range_cell) range_value = excel_compiler.evaluate(range_cell.address) assert old_values[0] == range_value