| 36 | T = TypeVar("T", Dict[str, Any], float, str, int, list) |
| 37 | |
| 38 | def recursive_compare(obj_0: T, obj_1: T) -> None: |
| 39 | if isinstance(obj_0, float): |
| 40 | assert np.isclose(obj_0, obj_1, atol=1e-6) |
| 41 | elif isinstance(obj_0, str): |
| 42 | assert obj_0 == obj_1 |
| 43 | elif isinstance(obj_0, int): |
| 44 | assert obj_0 == obj_1 |
| 45 | elif isinstance(obj_0, dict): |
| 46 | for i in range(len(obj_0.items())): |
| 47 | assert list(obj_0.keys())[i] == list(obj_1.keys())[i] |
| 48 | if list(obj_0.keys())[i] != "missing": |
| 49 | recursive_compare(list(obj_0.values()), list(obj_1.values())) |
| 50 | else: |
| 51 | for i, lhs in enumerate(obj_0): |
| 52 | rhs = obj_1[i] |
| 53 | recursive_compare(lhs, rhs) |
| 54 | |
| 55 | assert len(dump_0) == len(dump_1) |
| 56 | |