code: def test_filter_custom_jvp_no_kwargs():
      @eqx.filter_custom_jvp
      def call(fn, x):
          return fn(x)
  
      was_called = False
  
      @call.def_jvp
      def call_jvp(primals, tangents):
          nonlocal was_called
          was_called = True
          fn, x = primals
          tfn, tx = tangents
          assert tfn is None
          primal_out = call(fn, x)
          tangent_out = tx**2
          return primal_out, tangent_out
  
      f = lambda a: a**2 + 1
      assert tree_allclose(call(f, 1), 2)
      assert tree_allclose(call(f, 1.0), 2.0)
      assert tree_allclose(call(f, jnp.array(1)), jnp.array(2))
      assert tree_allclose(call(f, jnp.array(1.0)), jnp.array(2.0))
  
      def jvpcall(x, tx):
          def _jvpcall(_x):
              return call(f, _x)
  
          return jax.jvp(_jvpcall, (x,), (tx,))
  
      primal_out, tangent_out = jvpcall(2.0, 3.0)
      assert was_called
      assert tree_allclose(primal_out, 5.0)
      assert tree_allclose(tangent_out, 9.0)
  
imports: import warnings
  from typing import Union
  import equinox
  import jax
  import jax.numpy
  import jax.random
  import jax.tree_util
  import numpy
  import pytest
  from .helpers import tree_allclose
label_desc: Use image node_id 12 for calling a global function with example usage: test_filter_custom_jvp_no_kwargs() and returns: fn, primal_out,  tangent_out, jax, call