docstr: Check user_configured_option_names after schematization.
  
  Args:
      options: Maps deployment option strings (e.g. "name",
          "num_replicas", etc.) to sample inputs. Pairs come from
          TestDeploymentOptions.deployment_options.
docstr_tok: ["Check","user_configured_option_names","after","schematization",".","Args",":","options",":","Maps","deployment","option","strings","(","e.g",".","``","name","''",",","``","num_replicas","''",",","etc",".",")","to","sample","inputs",".","Pairs","come","from","TestDeploymentOptions.deployment_options","."]
code: def test_user_configured_option_names_schematized(
      self, options: Dict
  ):
      """Check user_configured_option_names after schematization.
  
      Args:
          options: Maps deployment option strings (e.g. "name",
              "num_replicas", etc.) to sample inputs. Pairs come from
              TestDeploymentOptions.deployment_options.
      """
  
      # Some options won't be considered user-configured after schematization
      # since the schema doesn't track them.
      untracked_options = [
          "name",
          "version",
          "init_args",
          "init_kwargs",
      ]
  
      for option in untracked_options:
          if option in options:
              del options[option]
  
      @serve.deployment(**options)
      def f():
          pass
  
      schematized_deployment = deployment_to_schema(f)
      deschematized_deployment = schema_to_deployment(
          schematized_deployment
      )
  
      # Don't track name in the deschematized deployment since it's optional
      # in deployment decorator but required in schema, leading to
      # inconsistent behavior.
      if (
          "name"
          in deschematized_deployment._deployment_config.user_configured_option_names
      ):
          deschematized_deployment._deployment_config.user_configured_option_names.remove(  # noqa: E501
              "name"
          )
  
      assert (
          deschematized_deployment._deployment_config.user_configured_option_names
          == set(options.keys())
      )
  
imports: import itertools
  import random
  import sys
  from typing import Dict, List
  import pytest
  from ray import serve
  from ray.serve._private.config import DeploymentConfig
  from ray.serve.deployment import deployment_to_schema, schema_to_deployment
label_desc: Use image node_id 2 for calling the TestDeploymentOptions obj's underlying member method code with example usage: obj.test_user_configured_option_names_schematized(options) without return types