code: def test_symbolic_expr_idxs(self):
      # taken from symbolic shape llama
      i = Variable("i", 1, 120)
      gidx0 = Variable("gidx0", 0, i)
      lidx1 = Variable("lidx1", 0, 7)
      idx = (gidx0, lidx1, NumNode(1))
      shape = (i + 1, 8, 4)
      strides = (1, (i * 4) + 4, i + 1)
      st = ShapeTracker((View.create(shape, strides),))
      idx, _valid = st.expr_idxs(idx)
      assert idx.render() == "((lidx1*((i*4)+4))+1+gidx0+i)"
  
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 1 for calling the TestSymbolicShapeExpr obj's underlying member method code with example usage: obj.test_symbolic_expr_idxs() without return types