code: def test_atomic_add(self, dtype):
      @jit.rawkernel()
      def f(x, index, out):
          tid = jit.blockDim.x * jit.blockIdx.x + jit.threadIdx.x
          jit.atomic_add(out, index[tid], x[tid])
  
      x = testing.shaped_random((1024,), dtype=dtype, seed=0)
      index = testing.shaped_random(
          (1024,), dtype=numpy.bool_, seed=1
      ).astype(numpy.int32)
      out = cupy.zeros((2,), dtype=dtype)
      f((32,), (32,), (x, index, out))
  
      expected = cupy.zeros((2,), dtype=dtype)
      cupy.add.at(expected, index, x)
      self._check(out, expected)
  
imports: import numpy
  import pytest
  import cupy
  from cupyx import jit
  from cupy import testing
  from cupy.cuda import device
  from cupy.cuda import runtime
label_desc: Use image node_id 27 for calling the TestRaw obj's underlying member method code with example usage: obj.test_atomic_add(dtype) without return types