code: def test_filter_custom_vjp_symbolic_zero():
      called = False
  
      @eqx.filter_custom_vjp
      def f(x__y, *, foo):
          x, y = x__y
          return x + y + foo, x, y, foo
  
      @f.def_fwd
      def f_fwd(perturbed, x__y, *, foo):
          p_x, p_y = perturbed
          assert p_x is True
          assert p_y is False
          x, y = x__y
          return f((x, y), foo=foo), None
  
      @f.def_bwd
      def f_bwd(res, ct, perturbed, x__y, *, foo):
          nonlocal called
          called = True
          p_x, p_y = perturbed
          assert p_x is True
          assert p_y is False
          ct1, ct2, ct3, ct4 = ct
          assert ct1 is not None
          assert ct2 is None
          assert ct3 is not None
          assert ct4 is None
          return ct1, ct3
  
      @jax.grad
      def run(x, y):
          out1, out2, out3, out4 = f((x, jnp.array(1.0)), foo=y)
          del out2, out4
          return out1 + out3
  
      run(1.0, 2.0)
      assert called
  
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 17 for calling a global function with example usage: test_filter_custom_vjp_symbolic_zero() and returns: unknown,  x,  y,  foo, f,  None, ct1,  ct3, unknown