code: def test_jax_duck_typing_binary_operators(self):
      API_LIST = [
          "__eq__",
          "__ne__",
          "__lt__",
          "__le__",
          "__gt__",
          "__ge__",
          "__add__",
          "__radd__",
          "__sub__",
          "__rsub__",
          "__mul__",
          "__rmul__",
          "__div__",
          "__rdiv__",
          "__truediv__",
          "__rtruediv__",
          "__floordiv__",
          "__rfloordiv__",
          "__divmod__",
          "__rdivmod__",
          "__mod__",
          "__rmod__",
          "__pow__",
          "__rpow__",
          "__and__",
          "__rand__",
          "__or__",
          "__ror__",
          "__xor__",
          "__rxor__",
          "__lshift__",
          "__rlshift__",
          "__rshift__",
          "__rrshift__",
          "__matmul__",
          "__rmatmul__",
      ]
      v1 = objax.TrainVar(jn.array([1, 2, 3, -4], dtype=jn.int32))
      v2 = objax.TrainVar(jn.array([1, -2, 5, -4], dtype=jn.int32))
      for name in API_LIST:
          expected = getattr(v1.value, name)(v2.value)
          actual = getattr(v1, name)(v2)
          np.testing.assert_allclose(expected, actual)
  
imports: import unittest
  import numpy
  import jax.numpy
  import objax
label_desc: Use image node_id 14 for calling the TestVariable obj's underlying member method code with example usage: obj.test_jax_duck_typing_binary_operators() without return types