code: def test_two_symbol_reshape(self):
      for i in range(1, 6):
          for j in range(1, 6):
              vi = Variable("i", 1, 5).bind(i)
              vj = Variable("j", 1, 5).bind(j)
              t = Tensor.rand(i, j).reshape(vi, vj)
              assert t.shape == (vi, vj)
              # NOTE: this is currently not allowed
              # t = t.reshape(1, vi*vj)
              # assert t.shape == (1, vi*vj)
              t = t.reshape(vj, vi)
              assert t.shape == (vj, vi)
  
imports: import unittest
  from tinygrad.shape.shapetracker import ShapeTracker, View
  from tinygrad.shape.symbolic import Variable, NumNode
  from tinygrad.tensor import Tensor
label_desc: Use image node_id 4 for calling the TestSymbolicReshape obj's underlying member method code with example usage: obj.test_two_symbol_reshape() without return types