code: def test_encode_decode(self):
      # inter-change encode/decode using python codes and tf.operations
      self._test_encode()
      self._test_decode()
  
      encoded_list = list()
      encoded_list.append(tf_i128.encode(self._A * self.scale))
      encoded_list.append(tf_i128.encode(self._B * self.scale))
      encoded_list.append(tf_i128.encode(self._C * self.scale))
      encoded_list.append(tf_i128.encode(self._D * self.scale))
      ground_list = [self._A, self._B, self._C, self._D]
      for e, g in zip(encoded_list, ground_list):
          e = tf_i128.decode(e, self.scale)
          self.assertTrue(np.allclose(e, g), "wrong encode_decode")
  
imports: import unittest
  import numpy
  import tensorflow
  from tf_encrypted.operations import tf_i128
label_desc: Use image node_id 10 for calling the I128TestCase obj's underlying member method code with example usage: obj.test_encode_decode() without return types