code: def test_matmul(self):
      x = cupy.array([3, 7])
      y = MockArray()
      assert x @ y == ("matmul", (x, y), {})
      assert y @ x == ("matmul", (y, x), {})
      y2 = y
      y2 @= x
      assert y2 == ("matmul", (y, x), {"out": y})
      with pytest.raises(TypeError):
          x @= y
  
imports: import contextlib
  import unittest
  import numpy
  import pytest
  import cupy
  from cupy import testing
  import cupyx
label_desc: Use image node_id 2 for calling the TestArrayUfunc obj's underlying member method code with example usage: obj.test_matmul() without return types