code: def test_basics(self):
      p = ge.GEParser(" (hello )")
      self.assertTrue(p.token("(") and p.re(r"\w+") and p.token(")"))
  
      p = ge.GEParser("[1x1]")
      self.assertTrue(p.condition() == "1x1" and p.index == 5)
  
      p = ge.GEParser(" [ 1x1 ] ")
      self.assertTrue(p.condition() == "1x1" and p.index == 9)
  
      p = ge.GEParser("[1x1")
      self.assertTrue(not p.condition() and p.index == 0)
  
      p = ge.GEParser("Conv[1x1]")
      self.assertTrue(isinstance(p.op(), ge.NodePattern))
  
      p = ge.GEParser("Conv[1x1]")
      self.assertTrue(isinstance(p.expression(), ge.NodePattern))
  
      p = ge.GEParser("(Conv[1x1])")
      self.assertTrue(isinstance(p.expression(), ge.NodePattern))
  
imports: import unittest
  import hiddenlayer
  import hiddenlayer.ge
  import hiddenlayer.transforms
label_desc: Use image node_id 1 for calling the TestGEParser obj's underlying member method code with example usage: obj.test_basics() without return types