code: def test_add(self):
      add_func = torch.ops.aten.add.Tensor
      a = torch.ones(5, 3, device="cuda")
      b = torch.randn(5, 3, device="cuda")
  
      argument_handler = csan.ArgumentHandler()
      argument_handler.parse_inputs(add_func._schema, (a, b), {})
      c = torch.add(a, b)
      argument_handler.parse_outputs(c)
  
      self.assertEqual(
          {a.data_ptr(), b.data_ptr()}, argument_handler.dataptrs_read
      )
      self.assertEqual(
          {c.data_ptr()}, argument_handler.dataptrs_written
      )
  
imports: import sys
  import textwrap
  import traceback
  from typing import List
  import torch
  import torch.cuda._sanitizer
  from torch.cuda._sanitizer import StreamId, DataPtr, EventId
  from torch.testing._internal.common_utils import TestCase, run_tests, NoTest, TEST_CUDA
label_desc: Use image node_id 1 for calling the TestArgumentHandler obj's underlying member method code with example usage: obj.test_add() without return types