code: def test_multiple_parameters(self):
      docstring = """\
  Parameters
  ----------
  x1, x2 : array_like
      Input arrays, description of ``x1``, ``x2``.
  
  """
  
      config = Config(napoleon_use_param=False)
      actual = str(NumpyDocstring(docstring, config))
      expected = """\
  :Parameters: **x1, x2** (*array_like*) -- Input arrays, description of ``x1``, ``x2``.
  """
      assert expected == actual
  
      config = Config(napoleon_use_param=True)
      actual = str(NumpyDocstring(dedent(docstring), config))
      expected = """\
  :param x1: Input arrays, description of ``x1``, ``x2``.
  :type x1: array_like
  :param x2: Input arrays, description of ``x1``, ``x2``.
  :type x2: array_like
  """
      assert expected == actual
  
imports: import re
  from collections import namedtuple
  from inspect import cleandoc
  from textwrap import dedent
  from unittest import mock
  import pytest
  from sphinx.ext.napoleon import Config
  from sphinx.ext.napoleon.docstring import GoogleDocstring, NumpyDocstring, _convert_numpy_type_spec, _recombine_set_tokens, _token_type, _tokenize_type_spec
  from tests.test_extensions.ext_napoleon_pep526_data_google import PEP526GoogleClass
  from tests.test_extensions.ext_napoleon_pep526_data_numpy import PEP526NumpyClass
label_desc: Use image node_id 5 for calling the TestNumpyDocstring obj's underlying member method code with example usage: obj.test_multiple_parameters() without return types