code: def test_addsub(self):
      ground_list = list()
      ground_list.append(self._A + self._B)
      ground_list.append(self._A + self._F)
      ground_list.append(self._F + self._A)
      ground_list.append(self._A + 10)
      ground_list.append(self._A + 11)
      ground_list.append(self._B + 10)
      ground_list.append(self._B + 11)
      ground_list.append(np.array([10 + 11]))
      ground_list.append(np.array([10 + 11]))
      ground_list.append(self._A + self._E)
      ground_list.append(self._E - self._A)
  
      ground_list.append(self._B - self._A)
      ground_list.append(self._E - self._A)
      ground_list.append(self._A - self._E)
      ground_list.append(10 - self._A)
      ground_list.append(11 - self._A)
      ground_list.append(self._B - 10)
      ground_list.append(self._B - 11)
      ground_list.append(np.array([10 - 11]))
      ground_list.append(np.array([11 - 10]))
  
      computed_list = list()
      computed_list.append(
          tf_i128.from_i128(tf_i128.add(self.A, self.B), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.add(self.A, self.F), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.add(self.F, self.A), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.add(
                  self.A, self._dim1_scalar * tf.constant(self.scale)
              ),
              self.scale,
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.add(
                  self.A, self._dim2_scalar * tf.constant(self.scale)
              ),
              self.scale,
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.add(
                  self._dim1_scalar * tf.constant(self.scale), self.B
              ),
              self.scale,
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.add(
                  self._dim2_scalar * tf.constant(self.scale), self.B
              ),
              self.scale,
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.add(self._dim1_scalar, self._dim2_scalar), 1
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.add(self._dim2_scalar, self._dim1_scalar), 1
          )
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.add(self.A, self.E), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.sub(self.E, self.A), self.scale)
      )
  
      computed_list.append(
          tf_i128.from_i128(tf_i128.sub(self.B, self.A), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.sub(self.E, self.A), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(tf_i128.sub(self.A, self.E), self.scale)
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.sub(
                  self._dim1_scalar * tf.constant(self.scale), self.A
              ),
              self.scale,
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.sub(
                  self._dim2_scalar * tf.constant(self.scale), self.A
              ),
              self.scale,
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.sub(
                  self.B, self._dim1_scalar * tf.constant(self.scale)
              ),
              self.scale,
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.sub(
                  self.B, self._dim2_scalar * tf.constant(self.scale)
              ),
              self.scale,
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.sub(self._dim1_scalar, self._dim2_scalar), 1
          )
      )
      computed_list.append(
          tf_i128.from_i128(
              tf_i128.sub(self._dim2_scalar, self._dim1_scalar), 1
          )
      )
  
      for c, g in zip(computed_list, ground_list):
          self.assertTrue(np.allclose(c, g), "wrong add_sub")
          self.assertTrue(c.shape == g.shape, "wrong add_sub shape")
  
imports: import unittest
  import numpy
  import tensorflow
  from tf_encrypted.operations import tf_i128
label_desc: Use image node_id 2 for calling the I128TestCase obj's underlying member method code with example usage: obj.test_addsub() without return types