def diff_configurations(model_config, bench_config, model_bundle, bench_bundle):
diff_dict = LIVVDict()<EOL>model_data = model_bundle.parse_config(model_config)<EOL>bench_data = bench_bundle.parse_config(bench_config)<EOL>if model_data == {} and bench_data == {}:<EOL><INDENT>return elements.error("<STR_LIT>",<EOL>"<STR_LIT>" + model_config.split(os.path.sep)[-<NUM_LIT:1>])<EOL><DEDENT>model_sections = set(six.iterkeys(model_data))<EOL>bench_sections = set(six.iterkeys(bench_data))<EOL>all_sections = set(model_sections.union(bench_sections))<EOL>for s in all_sections:<EOL><INDENT>model_vars = set(six.iterkeys(model_data[s])) if s in model_sections else set()<EOL>bench_vars = set(six.iterkeys(bench_data[s])) if s in bench_sections else set()<EOL>all_vars = set(model_vars.union(bench_vars))<EOL>for v in all_vars:<EOL><INDENT>model_val = model_data[s][v] if s in model_sections and v in model_vars else '<STR_LIT>'<EOL>bench_val = bench_data[s][v] if s in bench_sections and v in bench_vars else '<STR_LIT>'<EOL>same = True if model_val == bench_val and model_val != '<STR_LIT>' else False<EOL>diff_dict[s][v] = (same, model_val, bench_val)<EOL><DEDENT><DEDENT>return elements.file_diff("<STR_LIT>", diff_dict)<EOL>
Description

Args:
    model_config: a dictionary with the model configuration data
    bench_config: a dictionary with the benchmark configuration data
    model_bundle: a LIVVkit model bundle object
    bench_bundle: a LIVVkit model bundle object

Returns:
    A dictionary created by the elements object corresponding to
    the results of the bit for bit testing