code: def testPredicateDependentChannels(self):
      int1 = channel.Channel(type=standard_artifacts.Integer)
      int2 = channel.Channel(type=standard_artifacts.Integer)
      pred1 = int1.future().value == 1
      pred2 = int1.future().value == int2.future().value
      pred3 = ph.logical_not(pred1)
      pred4 = ph.logical_and(pred1, pred2)
  
      self.assertEqual(
          set(channel_utils.get_dependent_channels(pred1)), {int1}
      )
      self.assertEqual(
          set(channel_utils.get_dependent_channels(pred2)), {int1, int2}
      )
      self.assertEqual(
          set(channel_utils.get_dependent_channels(pred3)), {int1}
      )
      self.assertEqual(
          set(channel_utils.get_dependent_channels(pred4)), {int1, int2}
      )
  
file_path: tfx/tfx/types/channel_utils_test.py
imports: import tensorflow
  from tfx.dsl.placeholder import placeholder
  from tfx.types import artifact
  from tfx.types import channel
  from tfx.types import channel_utils
  from tfx.types import standard_artifacts
label_desc: Use image node_id 6 for calling the ChannelUtilsTest obj's underlying member method code with example usage: obj.testPredicateDependentChannels() without return types