code: def test_maximal_independent_set3(self):
      is_case = {"A", "C", "E", "G", "H"}
      edges = [("A", "B"), ("C", "D"), ("E", "F"), ("G", "H")]
      edges = [
          {
              "i": {"id": l, "is_case": l in is_case},
              "j": {"id": r, "is_case": r in is_case},
          }
          for l, r in edges
      ]
  
      t = hl.Table.parallelize(
          edges,
          hl.tstruct(
              i=hl.tstruct(id=hl.tstr, is_case=hl.tbool),
              j=hl.tstruct(id=hl.tstr, is_case=hl.tbool),
          ),
      )
  
      tiebreaker = lambda l, r: (
          hl.case()
          .when(l.is_case & (~r.is_case), -1)
          .when(~(l.is_case) & r.is_case, 1)
          .default(0)
      )
  
      mis = hl.maximal_independent_set(t.i, t.j, tie_breaker=tiebreaker)
  
      expected_sets = [{"A", "C", "E", "G"}, {"A", "C", "E", "H"}]
  
      self.assertTrue(mis.all(mis.node.is_case))
      self.assertTrue(
          set([row.id for row in mis.select(mis.node.id).collect()])
          in expected_sets
      )
  
imports: import unittest
  import hail
  from ..helpers import *
label_desc: Use image node_id 7 for calling the Tests obj's underlying member method code with example usage: obj.test_maximal_independent_set3() without return types