code: def test_RandomVariable_bcast():
      rv = RandomVariable(
          "normal", 0, [0, 0], config.floatX, inplace=True
      )
  
      mu = tensor(dtype=config.floatX, shape=(1, None, None))
      mu.tag.test_value = np.zeros((1, 2, 3)).astype(config.floatX)
      sd = tensor(dtype=config.floatX, shape=(None, None))
      sd.tag.test_value = np.ones((2, 3)).astype(config.floatX)
  
      s1 = iscalar()
      s1.tag.test_value = 1
      s2 = iscalar()
      s2.tag.test_value = 2
      s3 = iscalar()
      s3.tag.test_value = 3
      s3 = Assert("testing")(s3, eq(s1, 1))
  
      res = rv(mu, sd, size=(s1, s2, s3))
      assert res.broadcastable == (False,) * 3
  
      size = pt.as_tensor((1, 2, 3), dtype=np.int32).astype(np.int64)
      res = rv(mu, sd, size=size)
      assert res.broadcastable == (True, False, False)
  
      res = rv(0, 1, size=pt.as_tensor(1, dtype=np.int64))
      assert res.broadcastable == (True,)
  
      res = rv(0, 1, size=(pt.as_tensor(1, dtype=np.int32), s3))
      assert res.broadcastable == (True, False)
  
imports: import numpy
  import pytest
  import pytensor.tensor
  from pytensor import config, function
  from pytensor.gradient import NullTypeGradError, grad
  from pytensor.graph.replace import vectorize_node
  from pytensor.raise_op import Assert
  from pytensor.tensor.math import eq
  from pytensor.tensor.random import normal
  from pytensor.tensor.random.op import RandomState, RandomVariable, default_rng
  from pytensor.tensor.shape import specify_shape
  from pytensor.tensor.type import all_dtypes, iscalar, tensor
label_desc: Use image node_id 3 for calling a global function with example usage: test_RandomVariable_bcast() without return types