code: def test_pydotprint_long_name():
      # This is a REALLY PARTIAL TEST.
      # It prints a graph where there are variable and apply nodes whose long
      # names are different, but not the shortened names.
      # We should not merge those nodes in the dot graph.
      x = dvector()
      mode = pytensor.compile.mode.get_default_mode().excluding(
          "fusion"
      )
      f = pytensor.function([x], [x * 2, x + x], mode=mode)
      f([1, 2, 3, 4])
  
      pydotprint(f, max_label_size=5, print_output_file=False)
      pydotprint(
          [x * 2, x + x], max_label_size=5, print_output_file=False
      )
  
imports: import logging
  from io import StringIO
  from textwrap import dedent
  import numpy
  import pytest
  import pytensor
  from pytensor.compile.mode import get_mode
  from pytensor.compile.ops import deep_copy_op
  from pytensor.printing import PatternPrinter, PPrinter, Print, debugprint, default_printer, get_node_by_id, min_informative_str, pp, pydot_imported, pydotprint
  from pytensor.tensor import as_tensor_variable
  from pytensor.tensor.type import dmatrix, dvector, matrix
  from tests.graph.utils import MyInnerGraphOp, MyOp, MyVariable
label_desc: Use image node_id 3 for calling a global function with example usage: test_pydotprint_long_name() without return types