MCPcopy Create free account
hub / github.com/apache/fory / _deep_equal

Function _deep_equal

python/pyfory/tests/test_cross_language.py:552–591  ·  view source on GitHub ↗
(left, right)

Source from the content-addressed store, hash-verified

550
551
552def _deep_equal(left, right):
553 if np is not None:
554 if isinstance(left, np.ndarray) or isinstance(right, np.ndarray):
555 if isinstance(left, np.ndarray) and isinstance(right, np.ndarray):
556 return np.array_equal(left, right)
557 if isinstance(left, np.ndarray) and isinstance(right, array.array):
558 return np.array_equal(left, np.array(right, dtype=left.dtype))
559 if isinstance(right, np.ndarray) and isinstance(left, array.array):
560 return np.array_equal(right, np.array(left, dtype=right.dtype))
561 if isinstance(left, array.array) and isinstance(right, array.array):
562 return left == right
563 if hasattr(left, "__dataclass_fields__") and hasattr(right, "__dataclass_fields__"):
564 if left.__class__ is not right.__class__:
565 return False
566 for field in left.__dataclass_fields__.keys():
567 if not _deep_equal(getattr(left, field), getattr(right, field)):
568 return False
569 return True
570 if isinstance(left, list) and isinstance(right, list):
571 if len(left) != len(right):
572 return False
573 for l_item, r_item in zip(left, right):
574 if not _deep_equal(l_item, r_item):
575 return False
576 return True
577 if isinstance(left, tuple) and isinstance(right, tuple):
578 if len(left) != len(right):
579 return False
580 for l_item, r_item in zip(left, right):
581 if not _deep_equal(l_item, r_item):
582 return False
583 return True
584 if isinstance(left, dict) and isinstance(right, dict):
585 if left.keys() != right.keys():
586 return False
587 for key in left.keys():
588 if not _deep_equal(left[key], right[key]):
589 return False
590 return True
591 return left == right
592
593
594def _assert_deep_equal(left, right, msg_prefix=""):

Callers 1

_assert_deep_equalFunction · 0.85

Calls 2

arrayMethod · 0.45
keysMethod · 0.45

Tested by

no test coverage detected