code: def testValues(self):
      num_reads = 2
      memory_size = 5
      word_size = 3
  
      # Random memory and weights (batch_size=1)
      mem = tf.random.uniform([1, memory_size, word_size])
      indices = np.random.randint(0, memory_size, size=num_reads)
      # One-hot representation
      read_weights = tf.constant(
          np.expand_dims(np.eye(memory_size)[indices], axis=0),
          dtype=tf.float32,
      )
  
      read_values = read.read(mem, read_weights, squash_op=tf.identity)
      self.assertAllClose(
          mem.numpy()[0, indices, :],
          read_values.numpy()[0, ...],
          atol=2e-3,
      )
  
imports: import numpy
  from sonnet.src import test_utils
  from sonnet.src.nets.dnc import read
  import tensorflow
label_desc: Use image node_id 2 for calling the ReadTest obj's underlying member method code with example usage: obj.testValues() without return types