code: def test_object_to_and_from_dict():
      properties = []
      dict_prop = {}
      for data_type in DataType:
          properties.append(
              Property(f"name_{data_type.name}", data_type)
          )
          dict_prop[f"name_{data_type.name}"] = {
              "type": data_type.name,
              "required": True,
          }
      obj = Object(properties)
      assert obj.to_dict() == {
          "type": "object",
          "properties": dict(sorted(dict_prop.items())),
      }
      assert (
          Object.from_json_dict(**json.loads(json.dumps(obj.to_dict())))
          == obj
      )
  
imports: import datetime
  import json
  import math
  import re
  import numpy
  import pandas
  import pyspark
  import pyspark.sql.types
  import pytest
  from scipy.sparse import csc_matrix, csr_matrix
  from mlflow.exceptions import MlflowException
  from mlflow.models.utils import _enforce_tensor_spec
  from mlflow.pyfunc import _parse_spark_datatype
  from mlflow.types import DataType
  from mlflow.types.schema import Array, ColSpec, Object, ParamSchema, ParamSpec, Property, Schema, TensorSpec
  from mlflow.types.utils import _get_tensor_shape, _infer_colspec_type, _infer_param_schema, _infer_schema, _validate_input_dictionary_contains_only_strings_and_lists_of_strings
label_desc: Use image node_id 37 for calling a global function with example usage: test_object_to_and_from_dict() without return types