code: def testFrameBuffer(self):
      fb = py_hashed_replay_buffer.FrameBuffer()
      a = np.random.randint(
          low=0, high=256, size=[84, 84, 1], dtype=np.uint8
      )
      h = fb.add_frame(a)
      fb.on_delete([h])
      self.assertEqual(0, len(fb))
  
      a = np.random.randint(
          low=0, high=256, size=[84, 84, 1], dtype=np.uint8
      )
      b = np.random.randint(
          low=0, high=256, size=[84, 84, 1], dtype=np.uint8
      )
      fb.add_frame(a)
      h = fb.add_frame(b)
      fb.on_delete([h])
      self.assertEqual(1, len(fb))
  
imports: from __future__ import division
  from __future__ import unicode_literals
  import os
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tf_agents.replay_buffers import py_hashed_replay_buffer
  from tf_agents.replay_buffers import py_uniform_replay_buffer
  from tf_agents.specs import array_spec
  from tf_agents.trajectories import policy_step
  from tf_agents.trajectories import time_step
  from tf_agents.trajectories import trajectory
  from tf_agents.utils import nest_utils
label_desc: Use image node_id 1 for calling the FrameBufferTest obj's underlying member method code with example usage: obj.testFrameBuffer() without return types