code: def test_clone(self):
      s1 = self.cls()
      for i in range(5):
          s1.push(i)
      s2 = s1.clone()
      assert s1 is not s2
      self.assertEqual(
          [s2.pop() for _ in range(len(s2))], [4, 3, 2, 1, 0]
      )
      self.assertEmpty(s2)
      self.assertEqual(
          [s1.pop() for _ in range(len(s1))], [4, 3, 2, 1, 0]
      )
      self.assertEmpty(s2)
  
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 7 for calling the StackTest obj's underlying member method code with example usage: obj.test_clone() without return types