code: def test_univariate(self):
      # Real case
      a = np.array([[0.5]])
      q = np.array([[10.0]])
      actual = tools.solve_discrete_lyapunov(a, q)
      desired = solve_discrete_lyapunov(a, q)
      assert_allclose(actual, desired)
  
      # Complex case (where the Lyapunov equation is taken as a complex
      # function)
      a = np.array([[0.5 + 1j]])
      q = np.array([[10.0]])
      actual = tools.solve_discrete_lyapunov(a, q)
      desired = solve_discrete_lyapunov(a, q)
      assert_allclose(actual, desired)
  
      # Complex case (where the Lyapunov equation is taken as a real
      # function)
      a = np.array([[0.5 + 1j]])
      q = np.array([[10.0]])
      actual = tools.solve_discrete_lyapunov(a, q, complex_step=True)
      desired = self.solve_dicrete_lyapunov_direct(
          a, q, complex_step=True
      )
      assert_allclose(actual, desired)
  
imports: import pytest
  import numpy
  from numpy.testing import assert_allclose, assert_equal, assert_array_less, assert_array_equal, assert_almost_equal
  import pandas
  from scipy.linalg import solve_discrete_lyapunov
  from statsmodels.tsa.statespace import tools
  from statsmodels.tsa.stattools import acovf
label_desc: Use image node_id 2 for calling the TestSolveDiscreteLyapunov obj's underlying member method code with example usage: obj.test_univariate() without return types