code: def _assert_serializable_eq(my_serializable, my_serializable2):
      for field_name, field in my_serializable._FIELDS.items():
          if not hasattr(my_serializable, field.tag):
              continue
          expect_value = getattr(my_serializable, field_name)
          actual_value = getattr(my_serializable2, field_name)
          if isinstance(expect_value, np.ndarray):
              np.testing.assert_array_equal(expect_value, actual_value)
          elif isinstance(expect_value, pd.DataFrame):
              pd.testing.assert_frame_equal(expect_value, actual_value)
          elif isinstance(expect_value, pd.Series):
              pd.testing.assert_series_equal(expect_value, actual_value)
          elif isinstance(expect_value, pd.Index):
              pd.testing.assert_index_equal(expect_value, actual_value)
          elif isinstance(
              expect_value, pd.api.extensions.ExtensionArray
          ):
              pd.testing.assert_extension_array_equal(
                  expect_value, actual_value
              )
          elif isinstance(
              expect_value, (MySimpleSerializable, MySerializable)
          ):
              _assert_serializable_eq(expect_value, actual_value)
          elif callable(expect_value):
              assert expect_value(1) == actual_value(1)
          else:
              assert expect_value == actual_value
  
imports: import importlib
  import os
  from collections import namedtuple
  from datetime import timezone
  import numpy
  import pandas
  import pytest
  from ....core import EntityData
  from ....utils import no_default
  from ...None import serialize, deserialize
  from ..None import Serializable, FieldTypes, IdentityField, BoolField, AnyField, Int8Field, Int16Field, Int32Field, Int64Field, UInt8Field, UInt16Field, UInt32Field, UInt64Field, Float16Field, Float32Field, Float64Field, Complex64Field, Complex128Field, StringField, BytesField, KeyField, NDArrayField, Datetime64Field, Timedelta64Field, DataTypeField, IndexField, SeriesField, DataFrameField, IntervalArrayField, SliceField, FunctionField, NamedTupleField, TZInfoField, ListField, TupleField, DictField, ReferenceField, OneOfField
label_desc: Use image node_id 3 for calling a global function with example usage: _assert_serializable_eq(my_serializable, my_serializable2) without return types