code: def test_zoh(self):
      ac = np.eye(2)
      bc = np.full((2, 1), 0.5)
      cc = np.array([[0.75, 1.0], [1.0, 1.0], [1.0, 0.25]])
      dc = np.array([[0.0], [0.0], [-0.33]])
  
      ad_truth = 1.648721270700128 * np.eye(2)
      bd_truth = np.full((2, 1), 0.324360635350064)
      # c and d in discrete should be equal to their continuous counterparts
      dt_requested = 0.5
  
      ad, bd, cd, dd, dt = c2d(
          (ac, bc, cc, dc), dt_requested, method="zoh"
      )
  
      assert_array_almost_equal(ad_truth, ad)
      assert_array_almost_equal(bd_truth, bd)
      assert_array_almost_equal(cc, cd)
      assert_array_almost_equal(dc, dd)
      assert_almost_equal(dt_requested, dt)
  
imports: import numpy
  from numpy.testing import assert_array_almost_equal, assert_almost_equal, assert_allclose, assert_equal
  import pytest
  from scipy.signal import cont2discrete
  from scipy.signal import dlsim, ss2tf, ss2zpk, lsim, lti
  from scipy.signal import tf2ss, impulse, dimpulse, step, dstep
label_desc: Use image node_id 1 for calling the TestC2D obj's underlying member method code with example usage: obj.test_zoh() without return types