code: def test_deep_copy():
      m = Map()
      fg = FeatureGroup().add_to(m)
      Marker(location=(0, 0)).add_to(fg)
      m_copy = deep_copy(m)
  
      def check(item, item_copy):
          assert type(item) is type(item_copy)
          assert item._name == item_copy._name
          for attr in item.__dict__.keys():
              if not attr.startswith("_"):
                  assert getattr(item, attr) == getattr(item_copy, attr)
          assert item is not item_copy
          assert item._id != item_copy._id
          for child, child_copy in zip(
              item._children.values(), item_copy._children.values()
          ):
              check(child, child_copy)
  
      check(m, m_copy)
  
file_path: folium/tests/test_utilities.py
imports: import numpy
  import pandas
  import pytest
  from folium import FeatureGroup, Map, Marker, Popup
  from folium.utilities import _is_url, camelize, deep_copy, escape_double_quotes, get_obj_in_upper_tree, if_pandas_df_convert_to_numpy, javascript_identifier_path_to_array_notation, parse_options, validate_location, validate_locations, validate_multi_locations
label_desc: Use image node_id 8 for calling a global function with example usage: test_deep_copy() without return types