code: def test_signature_without_apply_rng_transform_with_state(self):
      @multi_transform.without_apply_rng
      @transform.transform_with_state
      def f(pos, key=37) -> int:
          del pos, key
          return 2
  
      def expected_f_init(
          rng: Optional[Union[PRNGKey, int]], pos, key=37
      ) -> tuple[Params, State]:
          del rng, pos, key
          raise NotImplementedError
  
      def expected_f_apply(
          params: Optional[Params], state: Optional[State], pos, key=37
      ) -> tuple[int, State]:
          del params, state, pos, key
          raise NotImplementedError
  
      self.assertEqual(
          inspect.signature(f.init), inspect.signature(expected_f_init)
      )
      self.assertEqual(
          inspect.signature(f.apply),
          inspect.signature(expected_f_apply),
      )
  
imports: import inspect
  from typing import Optional, Union
  from absl.testing import absltest
  from absl.testing import parameterized
  from haiku._src import base
  from haiku._src import multi_transform
  from haiku._src import transform
  from haiku._src import typing
  import jax
  import jax.numpy
  import numpy
label_desc: Use image node_id 6 for calling the MultiTransformTest obj's underlying member method code with example usage: obj.test_signature_without_apply_rng_transform_with_state() and returns: int