code: def test_pipeline_outputs_from_multiple_models():
      # Create models
      m1 = TestMakePipeline._make_model("x", 20, "y1", 10)
      m2 = TestMakePipeline._make_model("y1", 10, "y2", 2)
      m3 = TestMakePipeline._make_model("y1", 10, "y3", 4)
  
      # Get non-pipeline results
      x = np.random.rand(20)
      if _is_macos():
          y1 = m1.predict({"x": x})["y1"]
          y2 = m2.predict({"y1": y1})
          y3 = m3.predict({"y1": y1})
  
      pipeline_model = ct.utils.make_pipeline(m1, m2, m3)
      if _is_macos():
          y_pipeline = pipeline_model.predict({"x": x})
          assert len(y_pipeline) == 2
          np.testing.assert_allclose(y2["y2"], y_pipeline["y2"])
          np.testing.assert_allclose(y3["y3"], y_pipeline["y3"])
  
imports: import itertools
  import tempfile
  import unittest
  import numpy
  import pytest
  import coremltools
  from coremltools._deps import _HAS_LIBSVM, _HAS_SKLEARN
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Function, Program
  from coremltools.models.pipeline import PipelineClassifier, PipelineRegressor
  from coremltools.models.utils import _is_macos
label_desc: Use image node_id 5 for calling the TestMakePipeline obj's underlying member method code with example usage: obj.test_pipeline_outputs_from_multiple_models() without return types