docstr: Check user_configured_option_names after serialization.
  
  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","serialization",".","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_serialized(self, options: Dict):
      """Check user_configured_option_names after serialization.
  
      Args:
          options: Maps deployment option strings (e.g. "name",
              "num_replicas", etc.) to sample inputs. Pairs come from
              TestDeploymentOptions.deployment_options.
      """
  
      # init_kwargs requires independent serialization, so we omit it.
      if "init_kwargs" in options:
          del options["init_kwargs"]
  
      @serve.deployment(**options)
      def f():
          pass
  
      serialized_config = f._deployment_config.to_proto_bytes()
      deserialized_config = DeploymentConfig.from_proto_bytes(
          serialized_config
      )
  
      assert deserialized_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 3 for calling the TestDeploymentOptions obj's underlying member method code with example usage: obj.test_user_configured_option_names_serialized(options) without return types