class_docstr: Tests for tf2_utils.create_variables method.
code: def test_multiple_inputs_and_outputs(self):
      def transformation(aa, bb, cc):
          return (
              tf.concat([aa, bb, cc], axis=-1),
              tf.concat([bb, cc], axis=-1),
          )
  
      model = tf2_utils.to_sonnet_module(transformation)
      dtype = np.float32
      input_spec = [
          specs.Array(shape=(2,), dtype=dtype),
          specs.Array(shape=(3,), dtype=dtype),
          specs.Array(shape=(4,), dtype=dtype),
      ]
      expected_output_spec = (
          tf.TensorSpec(shape=(9,), dtype=dtype),
          tf.TensorSpec(shape=(7,), dtype=dtype),
      )
      output_spec = tf2_utils.create_variables(model, input_spec)
      self.assertEqual(model.variables, ())
      self.assertEqual(output_spec, expected_output_spec)
  
imports: from typing import Sequence, Tuple
  from acme import specs
  from acme.tf import utils
  import numpy
  import sonnet
  import tensorflow
  from absl.testing import absltest
  from absl.testing import parameterized
label_desc: Use image node_id 6 for calling the CreateVariableTest obj's underlying member method code with example usage: obj.test_multiple_inputs_and_outputs() and returns: tf,  tf