code: def test_z_test_direct(trivariate_data, trend, bandwidth):
      y, x = trivariate_data
      y = np.asarray(y)
      x = np.asarray(x)
      z = np.column_stack([y, x])
      ref_z_a, ref_z_t = z_tests(z, bandwidth, trend)
      z_a = phillips_ouliaris(
          y, x, trend=trend, bandwidth=bandwidth, test_type="Za"
      )
      z_t = phillips_ouliaris(
          y, x, trend=trend, bandwidth=bandwidth, test_type="Zt"
      )
      assert_allclose(z_a.stat, ref_z_a)
      assert_allclose(z_t.stat, ref_z_t)
      assert isinstance(z_a.summary(), Summary)
      assert isinstance(z_t.summary(), Summary)
  
file_path: arch/arch/tests/unitroot/test_phillips_ouliaris.py
imports: import numpy
  from numpy.testing import assert_allclose
  import pytest
  from statsmodels.iolib.summary import Summary
  from arch.typing import Float64Array, UnitRootTrend
  from arch.unitroot._phillips_ouliaris import CriticalValueWarning, phillips_ouliaris_cv, phillips_ouliaris_pval
  from arch.unitroot.cointegration import phillips_ouliaris
  from arch.utility.timeseries import add_trend
label_desc: Use image node_id 5 for calling a global function with example usage: test_z_test_direct(trivariate_data, trend, bandwidth) without return types