def METHOD_NAME(csv_file, row_index):
    row = _dfs[csv_file].iloc[row_index]
    input_arguments = {
        argument: converter(row[property_name])
        for property_name, (converter, argument) in _input_headers.items()
    }
    number_of_stages = input_arguments["number_of_stages"]
    model, results = run_lsrro_case(
        **input_arguments,
        has_NaCl_solubility_limit=True,
        permeate_quality_limit=1000e-6,
        has_calculated_concentration_polarization=True,
        has_calculated_ro_pressure_drop=True,
        A_value=5 / 3.6e11,
        B_max=None,
        number_of_RO_finite_elements=10
    )
    if check_optimal_termination(results):
        for property_name, flowsheet_attribute in _results_headers.items():
            assert value(model.find_component(flowsheet_attribute)) == pytest.approx(
                float(row[property_name]),
                rel=1e-2,
            )
    else:
        for property_name in _results_headers:
            assert math.isnan(float(row[property_name]))