code: def test_video_text_single_tower_model(
      self, model_cls, task, expected_output_shape
  ):
      rng = random.PRNGKey(0)
      unloc = model_cls(
          config=None, dataset_meta_data={"num_classes": 10}
      )
      rng, init_rng = random.split(rng)
      init_model_state, init_params = flax.core.pop(
          unloc.flax_model.init(
              init_rng, self.inputs, task=task, train=False
          ),
          "params",
      )
  
      _, dropout_rng = random.split(rng)
      variables = {"params": init_params, **init_model_state}
      logits = unloc.flax_model.apply(
          variables,
          self.inputs,
          task=task,
          train=False,
          rngs={"dropout": dropout_rng},
      )
      self.assertEqual(logits.shape, expected_output_shape)
  
file_path: scenic/scenic/projects/unloc/model_test.py
imports: import copy
  from absl.testing import parameterized
  import flax
  from jax import random
  import jax.numpy
  import ml_collections
  from scenic.projects.unloc import model
  import tensorflow
label_desc: Use image node_id 3 for calling the ModelTest obj's underlying member method code with example usage: obj.test_video_text_single_tower_model(model_cls, task, expected_output_shape) without return types