code: def test_input_types(self, x_dtype, eta_dtype, delta_dtype):
      stage = kashin.KashinHadamardEncodingStage(
          eta=tf.constant(0.9, eta_dtype),
          delta=tf.constant(1.0, delta_dtype),
      )
      x = tf.random.normal([3, 12], dtype=x_dtype)
      encode_params, decode_params = stage.get_params()
      encoded_x, decoded_x = self.encode_decode_x(
          stage, x, encode_params, decode_params
      )
      test_data = test_utils.TestData(x, encoded_x, decoded_x)
      test_data = self.evaluate_test_data(test_data)
      self.assertAllEqual(test_data.x.shape, test_data.decoded_x.shape)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import itertools
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_model_optimization.python.core.internal.tensor_encoding.stages.research import kashin
  from tensorflow_model_optimization.python.core.internal.tensor_encoding.testing import test_utils
label_desc: Use image node_id 13 for calling the KashinHadamardEncodingStageTest obj's underlying member method code with example usage: obj.test_input_types(x_dtype, eta_dtype, delta_dtype) without return types