code: def test_serial(self):
      p = ge.GEParser("Conv>Conv")
      self.assertTrue(isinstance(p.serial(), ge.SerialPattern))
  
      p = ge.GEParser("Conv > Conv[1x1]")
      self.assertTrue(isinstance(p.serial(), ge.SerialPattern))
  
      p = ge.GEParser("Conv > (Conv[1x1] > Conv)")
      self.assertTrue(isinstance(p.serial(), ge.SerialPattern))
  
      p = ge.GEParser("Conv > Conv[1x1] > Conv")
      self.assertTrue(isinstance(p.serial(), ge.SerialPattern))
      self.assertEqual(p.index, 23)
  
      p = ge.GEParser("(Conv > Conv[1x1])")
      self.assertTrue(isinstance(p.expression(), ge.SerialPattern))
  
imports: import unittest
  import hiddenlayer
  import hiddenlayer.ge
  import hiddenlayer.transforms
label_desc: Use image node_id 2 for calling the TestGEParser obj's underlying member method code with example usage: obj.test_serial() without return types