def test_precheck(self): """Test function for simulateDSM_* preliminary 1/1""" from deltasigma._utils import _get_zpk zeros, poles, _ = _get_zpk(self.H) assert np.allclose(cplxpair(zeros), self.zeros, atol=1e-6, rtol=1e-4) assert np.allclose(cplxpair(poles), self.poles, atol=1e-6, rtol=1e-4) assert np.allclose(self.ABCD, self.ABCD_ref, atol=1e-5, rtol=1e-3) assert np.allclose(self.u, self.u_ref, atol=1e-5, rtol=1e-3)
def test_get_zpk(): """Test function for _get_zpk()""" from scipy.signal import zpk2ss z = (.4, ) p = (.9, .1 + .2j, .1 - .2j) k = .4 zt, pt, kt = _get_zpk(zpk2ss(z, p, k)) assert np.allclose(zt, z, atol=1e-8, rtol=1e-5) assert np.allclose(pt, p, atol=1e-8, rtol=1e-5) assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5) zt, pt, kt = _get_zpk(zpk2tf(z, p, k)) assert np.allclose(zt, z, atol=1e-8, rtol=1e-5) assert np.allclose(pt, p, atol=1e-8, rtol=1e-5) assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5) zt, pt, kt = _get_zpk(lti(z, p, k)) assert np.allclose(zt, z, atol=1e-8, rtol=1e-5) assert np.allclose(pt, p, atol=1e-8, rtol=1e-5) assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5)
def test_get_zpk(): """Test function for _get_zpk()""" from scipy.signal import zpk2ss z = (.4,) p = (.9, .1 + .2j, .1 - .2j) k = .4 zt, pt, kt = _get_zpk(zpk2ss(z, p, k)) assert np.allclose(zt, z, atol=1e-8, rtol=1e-5) assert np.allclose(pt, p, atol=1e-8, rtol=1e-5) assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5) zt, pt, kt = _get_zpk(zpk2tf(z, p, k)) assert np.allclose(zt, z, atol=1e-8, rtol=1e-5) assert np.allclose(pt, p, atol=1e-8, rtol=1e-5) assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5) zt, pt, kt = _get_zpk(lti(z, p, k)) assert np.allclose(zt, z, atol=1e-8, rtol=1e-5) assert np.allclose(pt, p, atol=1e-8, rtol=1e-5) assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5)
def test_minreal(): """Test function for minreal()""" from scipy.signal import zpk2ss z = np.array([0, 1]) p = np.array([1, .5 + .5j, .5 - .5j]) k = 1 zt = z[:-1] pt = p[1:] pt.sort() inobj = (z, p, k) ltiobj = minreal(inobj) zeros, poles, gain = _get_zpk(ltiobj) poles.sort() assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5) assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5) assert np.allclose((k, ), (gain, ), atol=1e-8, rtol=1e-5) inobj = zpk2tf(z, p, k) ltiobj = minreal(inobj) zeros, poles, gain = _get_zpk(ltiobj) poles.sort() assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5) assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5) assert np.allclose((k, ), (gain, ), atol=1e-8, rtol=1e-5) inobj = zpk2ss(z, p, k) ltiobj = minreal(inobj) zeros, poles, gain = _get_zpk(ltiobj) poles.sort() assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5) assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5) assert np.allclose((k, ), (gain, ), atol=1e-8, rtol=1e-5) inobj = lti(z, p, k) ltiobj = minreal(inobj) zeros, poles, gain = _get_zpk(ltiobj) poles.sort() assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5) assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5) assert np.allclose((k, ), (gain, ), atol=1e-8, rtol=1e-5)
def test_minreal(): """Test function for minreal()""" from scipy.signal import zpk2ss z = np.array([0, 1]) p = np.array([1, .5 + .5j, .5 - .5j]) k = 1 zt = z[:-1] pt = p[1:] pt.sort() inobj = (z, p, k) ltiobj = minreal(inobj) zeros, poles, gain = _get_zpk(ltiobj) poles.sort() assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5) assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5) assert np.allclose((k,), (gain,), atol=1e-8, rtol=1e-5) inobj = zpk2tf(z, p, k) ltiobj = minreal(inobj) zeros, poles, gain = _get_zpk(ltiobj) poles.sort() assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5) assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5) assert np.allclose((k,), (gain,), atol=1e-8, rtol=1e-5) inobj = zpk2ss(z, p, k) ltiobj = minreal(inobj) zeros, poles, gain = _get_zpk(ltiobj) poles.sort() assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5) assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5) assert np.allclose((k,), (gain,), atol=1e-8, rtol=1e-5) inobj = lti(z, p, k) ltiobj = minreal(inobj) zeros, poles, gain = _get_zpk(ltiobj) poles.sort() assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5) assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5) assert np.allclose((k,), (gain,), atol=1e-8, rtol=1e-5)