code: def test_shift(self):
      computed_list = list()
      ground_list = list()
  
      def rshift(val, n):
          val = val.astype(object)
          mask = (1 << (128 - n)) - 1
          return ((val >> n) & mask).astype(np.double)
  
      computed_list.append(
          tf_i128.from_i128(tf_i128.left_shift(self.A, 50), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.left_shift(self.B, 50), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.right_shift(self.A, 10), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.right_shift(self.B, 10), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.logic_right_shift(self.D, 3))
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.logic_right_shift(self.D, 10))
      )
  
      ground_list.append(self._A * 2.0**50)
      ground_list.append(self._B * 2.0**50)
      ground_list.append(self._A / 2.0**10)
      ground_list.append(self._B / 2.0**10)
      ground_list.append(rshift(self._D.copy(), 3))
      ground_list.append(rshift(self._D.copy(), 10))
  
      for c, g in zip(computed_list, ground_list):
          np.testing.assert_allclose(c, g, rtol=1e-05, atol=1e-08)
          self.assertTrue(c.shape == g.shape, "wrong shift shape")
  
imports: import unittest
  import numpy
  import tensorflow
  from tf_encrypted.operations import tf_i128
label_desc: Use image node_id 8 for calling the I128TestCase obj's underlying member method code with example usage: obj.test_shift() and returns: unknown