code: def test_cross_view_attention_encoder_block_same_layers(self):
      self.cross_view_fusion = ml_collections.ConfigDict(
          {
              "use_query_config": True,
              "fusion_layers": (0,),
          }
      )
      rngs = {"params": random.PRNGKey(0), "dropout": random.PRNGKey(1)}
      tokens = [jnp.ones((2, 8, 8)), jnp.ones((2, 16, 16))]
      outputs, vars_dict = model.CrossViewAttentionEncoderBlock(
          view_configs=self.view_configs,
          cross_view_fusion=self.cross_view_fusion,
      ).init_with_output(rngs, tokens, 0, deterministic=True)
      self.assertEqual(outputs[0].shape, (2, 8, 8))
      self.assertEqual(outputs[1].shape, (2, 16, 16))
      expected_keys = {
          "msa_ln_view0",
          "msa_ln_view1",
          "msa_view0",
          "msa_view1",
          "cross_attention_ln_view0",
          "cross_attention_ln_view1",
          "cross_attention_view0_1",
          "mlp_ln_view0",
          "mlp_ln_view1",
          "mlp_view0",
          "mlp_view1",
      }
      self.assertSetEqual(
          set(vars_dict["params"].keys()), expected_keys
      )
  
imports: from absl.testing import parameterized
  import flax
  from jax import random
  import jax.numpy
  import ml_collections
  from scenic.projects.mtv import model
  import tensorflow
label_desc: Use image node_id 2 for calling the ModelTest obj's underlying member method code with example usage: obj.test_cross_view_attention_encoder_block_same_layers() without return types