code: def testGetDotGraph(self):
      a = nodes.apply_operation(
          _Constant, value="a", label="Constant[a]"
      )
      b = nodes.apply_operation(
          _Constant, value="b", label="Constant[b]"
      )
      b_copy, a_copy = nodes.apply_multi_output_operation(
          _Swap, a, b, label="Swap[0]"
      )
      b_copy2, unused_a_copy2 = nodes.apply_multi_output_operation(
          _Swap, a_copy, b_copy, label="Swap[1]"
      )
      dot_string = nodes.get_dot_graph([b_copy2]).to_string()
      self.WriteRenderedDotFile(dot_string)
  
      self.assertMultiLineEqual(
          dot_string,
          """\
  digraph G {
  directed=True;
  node [shape=Mrecord];
  "Constant[a]" [label="{_Constant|value: a|label: Constant[a]}"];
  "Constant[b]" [label="{_Constant|value: b|label: Constant[b]}"];
  "Swap[0]" [label="{_Swap|label: Swap[0]|{<0>0|<1>1}}"];
  "Constant[a]" -> "Swap[0]";
  "Constant[b]" -> "Swap[0]";
  "Swap[1]" [label="{_Swap|label: Swap[1]|{<0>0|<1>1}}"];
  "Swap[0]":1 -> "Swap[1]";
  "Swap[0]":0 -> "Swap[1]";
  }
  """,
          msg="Result dot graph is:\n{}".format(dot_string),
      )
  
imports: import tensorflow
  from tensorflow_transform import nodes
  from tensorflow_transform import test_case
  from tfx_bsl.types import tfx_namedtuple
label_desc: Use image node_id 11 for calling the NodesTest obj's underlying member method code with example usage: obj.testGetDotGraph() without return types