code: def setUp(self):
      class Restaurant:
          """
          Basic Restaurant class
          """
  
          def __init__(self, name, latlng):
              super().__init__()
              self.name = name
              self.latlng = latlng
  
      class Restaurant1(Restaurant):
          """
          Extends Restaurant with __geo_interface__ returning dict
          """
  
          @property
          def __geo_interface__(self):
              return {"type": "Point", "coordinates": self.latlng}
  
      class Restaurant2(Restaurant):
          """
          Extends Restaurant with __geo_interface__ returning another
          __geo_interface__ object
          """
  
          @property
          def __geo_interface__(self):
              return geojson.Point(self.latlng)
  
      class RestaurantFeature1(Restaurant):
          """
          Extends Restaurant with __geo_interface__ returning dict
          """
  
          @property
          def __geo_interface__(self):
              return {
                  "geometry": {
                      "type": "Point",
                      "coordinates": self.latlng,
                  },
                  "type": "Feature",
                  "properties": {
                      "name": self.name,
                  },
              }
  
      class RestaurantFeature2(Restaurant):
          """
          Extends Restaurant with __geo_interface__ returning another
          __geo_interface__ object
          """
  
          @property
          def __geo_interface__(self):
              return geojson.Feature(
                  geometry=geojson.Point(self.latlng),
                  properties={"name": self.name},
              )
  
      self.name = "In N Out Burger"
      self.latlng = [-54.0, 4.0]
  
      self.restaurant_nogeo = Restaurant(self.name, self.latlng)
  
      self.restaurant1 = Restaurant1(self.name, self.latlng)
      self.restaurant2 = Restaurant2(self.name, self.latlng)
  
      self.restaurant_str = (
          '{"coordinates": [-54.0, 4.0],' ' "type": "Point"}'
      )
  
      self.restaurant_feature1 = RestaurantFeature1(
          self.name, self.latlng
      )
      self.restaurant_feature2 = RestaurantFeature2(
          self.name, self.latlng
      )
  
      self.restaurant_feature_str = (
          '{"geometry":'
          ' {"coordinates": [-54.0, 4.0],'
          ' "type": "Point"},'
          ' "properties":'
          ' {"name": "In N Out Burger"},'
          ' "type": "Feature"}'
      )
  
file_path: geojson/tests/test_geo_interface.py
imports: import unittest
  import geojson
  from geojson.mapping import to_mapping
label_desc: Use image node_id 1 for calling the EncodingDecodingTest obj's underlying member method code with example usage: obj.setUp() and returns: dict, geojson, dict, geojson