code: def test_custom_type():
      from plum import parametric
  
      @parametric
      class MyFourier(FourierSeries):
          params: jnp.ndarray
          domain: geometry.Domain
  
          @classmethod
          def __init_type_parameter__(cls, parameter):
              return parameter
  
          @classmethod
          def __infer_type_parameter__(cls, params, domain):
              return params.shape[-1]
  
      domain = geometry.Domain((1,), (1.0,))
      a = MyFourier(jnp.asarray([1.0]), domain)
  
      @operator
      def _test_operator(x: MyFourier[1], *, params=None):
          return x
  
      try:
          _test_operator(a)
      except TypeError:
          pytest.fail("Type inference failed for parametric type.")
  
file_path: jaxdf/tests/test_core.py
imports: import jax
  import numpy
  import pytest
  from jax import jit
  from jax import numpy
  from jaxdf import *
  from jaxdf.signatures import SignatureError
label_desc: Use image node_id 3 for calling a global function with example usage: test_custom_type() and returns: x, parameter, params