code: def test_multiple_outputs(self):
      x = pt.vector("x")
      y1 = x[0]
      y2 = x[-1]
  
      new_x = pt.matrix("new_x")
      [new_y1, new_y2] = vectorize_graph([y1, y2], {x: new_x})
  
      fn = function([new_x], [new_y1, new_y2])
      new_x_test = np.arange(9).reshape(3, 3).astype(config.floatX)
      new_y1_res, new_y2_res = fn(new_x_test)
      np.testing.assert_allclose(new_y1_res, [0, 3, 6])
      np.testing.assert_allclose(new_y2_res, [2, 5, 8])
  
imports: import numpy
  import pytest
  import scipy.special
  import pytensor.tensor
  from pytensor import config, function, shared
  from pytensor.graph.basic import equal_computations, graph_inputs
  from pytensor.graph.replace import clone_replace, graph_replace, vectorize_graph, vectorize_node
  from pytensor.tensor import dvector, fvector, vector
  from tests import unittest_tools
  from tests.graph.utils import MyOp, MyVariable, op_multiple_outputs
label_desc: Use image node_id 2 for calling the TestVectorizeGraph obj's underlying member method code with example usage: obj.test_multiple_outputs() without return types