if iter_keys1 != iter_keys2: print("Total PH Iteration Mismatch: %s != %s" % (len(iter_keys1), len(iter_keys2))) fail_flag = True valid_iters = set(iter_keys1).intersection(iter_keys2) valid_iters = sorted([int(v) for v in valid_iters]) valid_iters = [str(k) for k in valid_iters] no_key = object() start_diff_key = no_key for key in valid_iters: res1 = history1[key] res2 = history2[key] try: compare_repn(res1, res2, tolerance=_diff_tolerance) except: print("Differences begin at iteration %s" % (key)) start_diff_key = key fail_flag = True if start_diff_key is not no_key: break keys_to_compare = [] if start_diff_key is not no_key: start_idx = valid_iters.index(start_diff_key) keys_to_compare = valid_iters[start_idx:min(len(valid_iters), start_idx + 5)] for diff_key in keys_to_compare: print("\n")
if v and isinstance(v, collections.MutableMapping): items.extend(flatten(v, new_key).items()) else: items.append((new_key, v)) return dict(items) st1, r1 = load_solution(sys.argv[1]) st2, r2 = load_solution(sys.argv[2]) if st1 != st2: print("Scenario Tree Mismatch") fail_flag = True try: compare_repn(r1, r2, tolerance=_diff_tolerance) except (ValueError, AssertionError): print("Differences found in solutions. Message:\n") print(sys.exc_info()[1]) fail_flag = True if fail_flag: print("Inspecting flattened solutions") res1 = flatten(r1) res2 = flatten(r2) all_keys = set(res1.keys()).union(set(res2.keys())) res1_missing_keys = all_keys-set(res1.keys()) res2_missing_keys = all_keys-set(res2.keys()) if len(res1_missing_keys): print("Missing keys from results: %s" % (res1_missing_keys))
items.extend(flatten(v, new_key).items()) else: items.append((new_key, v)) return dict(items) st1, r1 = load_solution(sys.argv[1]) st2, r2 = load_solution(sys.argv[2]) if st1 != st2: print("Scenario Tree Mismatch") fail_flag = True try: compare_repn(r1, r2, tolerance=_diff_tolerance) except (ValueError, AssertionError): print("Differences found in solutions. Message:\n") print(sys.exc_info()[1]) fail_flag = True if fail_flag: print("Inspecting flattened solutions") res1 = flatten(r1) res2 = flatten(r2) all_keys = set(res1.keys()).union(set(res2.keys())) res1_missing_keys = all_keys - set(res1.keys()) res2_missing_keys = all_keys - set(res2.keys()) if len(res1_missing_keys): print("Missing keys from results: %s" % (res1_missing_keys)) if len(res2_missing_keys):
if iter_keys1 != iter_keys2: print("Total PH Iteration Mismatch: %s != %s" % (len(iter_keys1), len(iter_keys2))) fail_flag = True valid_iters = set(iter_keys1).intersection(iter_keys2) valid_iters = sorted([int(v) for v in valid_iters]) valid_iters = [str(k) for k in valid_iters] no_key = object() start_diff_key = no_key for key in valid_iters: res1 = history1[key] res2 = history2[key] try: compare_repn(res1, res2, tolerance=_diff_tolerance) except: print("Differences begin at iteration %s" % (key)) start_diff_key = key fail_flag = True if start_diff_key is not no_key: break keys_to_compare = [] if start_diff_key is not no_key: start_idx = valid_iters.index(start_diff_key) keys_to_compare = valid_iters[start_idx:min(len(valid_iters),start_idx+5)] for diff_key in keys_to_compare: print("\n")