code: def test_with_custom_var_structure(
      batch_shape,
      input_channels,
      output_channels,
      on_device,
      backend_fw,
  ):
      # smoke test
      if backend_fw == "numpy":
          # NumPy does not support gradients
          return
  
      with ivy.utils.backend.ContextManager(backend_fw):
          module = WithCustomVarStructure(
              input_channels, output_channels, device=on_device
          )
          assert "x" in module.v
          assert "y" in module.v
          assert "z" in module.v
  
imports: import os
  from hypothesis import given, strategies
  import numpy
  import ivy
  from ivy.functional.ivy.gradients import _variable
  import ivy_tests.test_ivy.helpers
label_desc: Use image node_id 11 for calling a global function with example usage: test_with_custom_var_structure(batch_shape, input_channels, output_channels, on_device, backend_fw) without return types