Merge pull request #615 from bnavigator/py39-float-tests · python-control/python-control@a6a5bee
@@ -89,10 +89,10 @@ def test_ss2io(self, tsys):
8989# Create an input/output system from the linear system
9090linsys = tsys.siso_linsys
9191iosys = ct.ss2io(linsys)
92-np.testing.assert_array_equal(linsys.A, iosys.A)
93-np.testing.assert_array_equal(linsys.B, iosys.B)
94-np.testing.assert_array_equal(linsys.C, iosys.C)
95-np.testing.assert_array_equal(linsys.D, iosys.D)
92+np.testing.assert_allclose(linsys.A, iosys.A)
93+np.testing.assert_allclose(linsys.B, iosys.B)
94+np.testing.assert_allclose(linsys.C, iosys.C)
95+np.testing.assert_allclose(linsys.D, iosys.D)
96969797# Try adding names to things
9898iosys_named = ct.ss2io(linsys, inputs='u', outputs='y',
@@ -104,10 +104,10 @@ def test_ss2io(self, tsys):
104104assert iosys_named.find_state('x0') is None
105105assert iosys_named.find_state('x1') == 0
106106assert iosys_named.find_state('x2') == 1
107-np.testing.assert_array_equal(linsys.A, iosys_named.A)
108-np.testing.assert_array_equal(linsys.B, iosys_named.B)
109-np.testing.assert_array_equal(linsys.C, iosys_named.C)
110-np.testing.assert_array_equal(linsys.D, iosys_named.D)
107+np.testing.assert_allclose(linsys.A, iosys_named.A)
108+np.testing.assert_allclose(linsys.B, iosys_named.B)
109+np.testing.assert_allclose(linsys.C, iosys_named.C)
110+np.testing.assert_allclose(linsys.D, iosys_named.D)
111111112112def test_iosys_unspecified(self, tsys):
113113"""System with unspecified inputs and outputs"""
@@ -1132,14 +1132,14 @@ def test_lineariosys_statespace(self, tsys):
11321132assert isinstance(iosys_siso, ct.StateSpace)
1133113311341134# Make sure that state space functions work for LinearIOSystems
1135-np.testing.assert_array_equal(
1135+np.testing.assert_allclose(
11361136iosys_siso.pole(), tsys.siso_linsys.pole())
11371137omega = np.logspace(.1, 10, 100)
11381138mag_io, phase_io, omega_io = iosys_siso.frequency_response(omega)
11391139mag_ss, phase_ss, omega_ss = tsys.siso_linsys.frequency_response(omega)
1140-np.testing.assert_array_equal(mag_io, mag_ss)
1141-np.testing.assert_array_equal(phase_io, phase_ss)
1142-np.testing.assert_array_equal(omega_io, omega_ss)
1140+np.testing.assert_allclose(mag_io, mag_ss)
1141+np.testing.assert_allclose(phase_io, phase_ss)
1142+np.testing.assert_allclose(omega_io, omega_ss)
1143114311441144# LinearIOSystem methods should override StateSpace methods
11451145io_mul = iosys_siso * iosys_siso2
@@ -1150,19 +1150,19 @@ def test_lineariosys_statespace(self, tsys):
1150115011511151# And make sure the systems match
11521152ss_series = tsys.siso_linsys * tsys.siso_linsys
1153-np.testing.assert_array_equal(io_mul.A, ss_series.A)
1154-np.testing.assert_array_equal(io_mul.B, ss_series.B)
1155-np.testing.assert_array_equal(io_mul.C, ss_series.C)
1156-np.testing.assert_array_equal(io_mul.D, ss_series.D)
1153+np.testing.assert_allclose(io_mul.A, ss_series.A)
1154+np.testing.assert_allclose(io_mul.B, ss_series.B)
1155+np.testing.assert_allclose(io_mul.C, ss_series.C)
1156+np.testing.assert_allclose(io_mul.D, ss_series.D)
1157115711581158# Make sure that series does the same thing
11591159io_series = ct.series(iosys_siso, iosys_siso2)
11601160assert isinstance(io_series, ct.InputOutputSystem)
11611161assert isinstance(io_series, ct.StateSpace)
1162-np.testing.assert_array_equal(io_series.A, ss_series.A)
1163-np.testing.assert_array_equal(io_series.B, ss_series.B)
1164-np.testing.assert_array_equal(io_series.C, ss_series.C)
1165-np.testing.assert_array_equal(io_series.D, ss_series.D)
1162+np.testing.assert_allclose(io_series.A, ss_series.A)
1163+np.testing.assert_allclose(io_series.B, ss_series.B)
1164+np.testing.assert_allclose(io_series.C, ss_series.C)
1165+np.testing.assert_allclose(io_series.D, ss_series.D)
1166116611671167# Test out feedback as well
11681168io_feedback = ct.feedback(iosys_siso, iosys_siso2)
@@ -1173,10 +1173,10 @@ def test_lineariosys_statespace(self, tsys):
1173117311741174# And make sure the systems match
11751175ss_feedback = ct.feedback(tsys.siso_linsys, tsys.siso_linsys)
1176-np.testing.assert_array_equal(io_feedback.A, ss_feedback.A)
1177-np.testing.assert_array_equal(io_feedback.B, ss_feedback.B)
1178-np.testing.assert_array_equal(io_feedback.C, ss_feedback.C)
1179-np.testing.assert_array_equal(io_feedback.D, ss_feedback.D)
1176+np.testing.assert_allclose(io_feedback.A, ss_feedback.A)
1177+np.testing.assert_allclose(io_feedback.B, ss_feedback.B)
1178+np.testing.assert_allclose(io_feedback.C, ss_feedback.C)
1179+np.testing.assert_allclose(io_feedback.D, ss_feedback.D)
1180118011811181# Make sure series interconnections are done in the right order
11821182ss_sys1 = ct.rss(2, 3, 2)
@@ -1190,10 +1190,10 @@ def test_lineariosys_statespace(self, tsys):
1190119011911191# While we are at it, check that the state space matrices match
11921192ss_series = ss_sys2 * ss_sys1
1193-np.testing.assert_array_equal(io_series.A, ss_series.A)
1194-np.testing.assert_array_equal(io_series.B, ss_series.B)
1195-np.testing.assert_array_equal(io_series.C, ss_series.C)
1196-np.testing.assert_array_equal(io_series.D, ss_series.D)
1193+np.testing.assert_allclose(io_series.A, ss_series.A)
1194+np.testing.assert_allclose(io_series.B, ss_series.B)
1195+np.testing.assert_allclose(io_series.C, ss_series.C)
1196+np.testing.assert_allclose(io_series.D, ss_series.D)
1197119711981198def test_docstring_example(self):
11991199P = ct.LinearIOSystem(