code: def test_push_peek_pop(self):
      s = self.cls()
      for i in range(3):
          s.push(i)
      self.assertEqual(s.peek(), 2)
      self.assertEqual(s.peek(-2), 1)
      self.assertEqual(s.peek(-3), 0)
      for i in range(3):
          self.assertEqual(s.peek(), 2 - i)
          self.assertEqual(s.pop(), 2 - i)
      self.assertEmpty(s)
  
imports: import collections
  import copy
  import pickle
  import threading
  from absl.testing import absltest
  from absl.testing import parameterized
  import cloudpickle
  import dill
  from haiku._src import data_structures
  import jax
  import tree
label_desc: Use image node_id 2 for calling the StackTest obj's underlying member method code with example usage: obj.test_push_peek_pop() without return types