code: def test_simple_add_group_expr(self):
      grp = Group(0)
  
      grp_expr1 = GroupExpression(MagicMock())
      grp_expr1.opr.is_logical = lambda: True
  
      grp_expr2 = GroupExpression(MagicMock())
      grp_expr2.opr.is_logical = lambda: False
  
      grp_expr3 = GroupExpression(MagicMock(), 0)
      grp_expr3.opr.is_logical = lambda: True
  
      grp.add_expr(grp_expr1)
      self.assertEquals(len(grp.logical_exprs), 1)
  
      grp.add_expr(grp_expr2)
      self.assertEquals(len(grp.logical_exprs), 1)
      self.assertEquals(len(grp.physical_exprs), 1)
  
      grp.add_expr(grp_expr3)
      self.assertEquals(len(grp.logical_exprs), 2)
      self.assertEquals(len(grp.physical_exprs), 1)
  
file_path: evadb/test/unit_tests/optimizer/test_group.py
imports: import unittest
  from mock import MagicMock
  from evadb.optimizer.group import Group
  from evadb.optimizer.group_expression import GroupExpression
  from evadb.optimizer.property import Property, PropertyType
label_desc: Use image node_id 1 for calling the TestGroup obj's underlying member method code with example usage: obj.test_simple_add_group_expr() without return types