code: def test_add(self, run_eagerly, dtype, x0, x1):
      expected = x0 + x1
  
      context = tf_execution_context(run_eagerly)
      with context.scope():
          ek, dk = paillier.gen_keypair()
  
          r0 = paillier.gen_randomness(ek, shape=x0.shape)
          c0 = paillier.encrypt(ek, x0, r0)
  
          r1 = paillier.gen_randomness(ek, shape=x1.shape)
          c1 = paillier.encrypt(ek, x1, r1)
  
          c = paillier.add(ek, c0, c1)
          y = paillier.decrypt(dk, c, dtype=dtype)
  
      np.testing.assert_equal(
          context.evaluate(y).astype(np.int32),
          expected.astype(np.int32),
      )
  
file_path: tf-encrypted/primitives/tf_encrypted/primitives/paillier/primitives_test.py
imports: import unittest
  import numpy
  import tensorflow
  from absl.testing import parameterized
  from tf_encrypted.primitives import paillier
  from tf_encrypted.test import tf_execution_context
label_desc: Use image node_id 4 for calling the EncryptionTest obj's underlying member method code with example usage: obj.test_add(run_eagerly, dtype, x0, x1) without return types