code: def test_local_dimshuffle_subtensor():
      dimshuffle_subtensor = out2in(local_dimshuffle_subtensor)
  
      x = tensor.dtensor4("x")
      x = tensor.patternbroadcast(x, (False, True, False, False))
      i = tensor.iscalar("i")
  
      out = x[:, :, 10:30, ::i].dimshuffle(0, 2, 3)
  
      g = FunctionGraph([x, i], [out])
      dimshuffle_subtensor(g)
  
      topo = g.toposort()
      assert any([not isinstance(x, DimShuffle) for x in topo])
  
      # Test dimshuffle remove dimensions the subtensor don't "see".
      x = tensor.tensor(
          broadcastable=(False, True, False), dtype="float64"
      )
      out = x[i].dimshuffle(1)
  
      g = FunctionGraph([x, i], [out])
      dimshuffle_subtensor(g)
  
      topo = g.toposort()
      assert any([not isinstance(x, DimShuffle) for x in topo])
  
      # Test dimshuffle remove dimensions the subtensor don't "see" but
      # have in between dimensions.
      x = tensor.tensor(
          broadcastable=(False, True, False, True), dtype="float64"
      )
      out = x[i].dimshuffle(1)
  
      f = theano.function([x, i], out)
  
      topo = f.maker.fgraph.toposort()
      assert any([not isinstance(x, DimShuffle) for x in topo])
      assert f(np.random.rand(5, 1, 4, 1), 2).shape == (4,)
  
      # Test a corner case that had Theano return a bug.
      x = tensor.dtensor4("x")
      x = tensor.patternbroadcast(x, (False, True, False, False))
  
      assert x[:, :, 0:3, ::-1].dimshuffle(0, 2, 3).eval(
          {x: np.ones((5, 1, 6, 7))}
      ).shape == (5, 3, 7)
  
imports: from __future__ import absolute_import, print_function, division
  import unittest
  import numpy
  import theano
  from theano import function, config
  from theano import scalar
  from theano.gof import FunctionGraph
  from theano.gof.opt import out2in
  from theano.tensor.opt_uncanonicalize import local_alloc_dimshuffle, local_reshape_dimshuffle, local_dimshuffle_alloc, local_dimshuffle_subtensor
  import theano.tensor
  from theano.tensor.elemwise import CAReduce, Elemwise, DimShuffle
  from theano.tests import unittest_tools
label_desc: Use image node_id 4 for calling a global function with example usage: test_local_dimshuffle_subtensor() without return types