code: def test_random_concrete_shape_subtensor_tuple():
      """JAX should compile when a tuple of concrete values is passed for the `size` parameter.
  
      This test ensures that the `MakeVector` `Op` used by PyTensor to turn tuple
      inputs into 1d vectors is replaced by an `Op` that turns a tuple of concrete
      scalar inputs into tuples of concrete values using the
      `jax_size_parameter_as_tuple` rewrite.
  
      """
      rng = shared(np.random.RandomState(123))
      x_pt = pt.dmatrix()
      out = pt.random.normal(0, 1, size=(x_pt.shape[0],), rng=rng)
      jax_fn = compile_random_function([x_pt], out, mode=jax_mode)
      assert jax_fn(np.ones((2, 3))).shape == (2,)
  
imports: import numpy
  import pytest
  import scipy.stats
  import pytensor
  import pytensor.tensor
  import pytensor.tensor.random.basic
  from pytensor.compile.function import function
  from pytensor.compile.sharedvalue import SharedVariable, shared
  from pytensor.graph.basic import Constant
  from pytensor.graph.fg import FunctionGraph
  from pytensor.tensor.random.basic import RandomVariable
  from pytensor.tensor.random.type import RandomType
  from pytensor.tensor.random.utils import RandomStream
  from tests.link.jax.test_basic import compare_jax_and_py, jax_mode, set_test_value
  from pytensor.link.jax.dispatch.random import numpyro_available
label_desc: Use image node_id 24 for calling a global function with example usage: test_random_concrete_shape_subtensor_tuple() without return types