def test_State_to_array(): G = State(1, 1, 1) H = State(5) with assert_raises(TypeError): G.to_array() assert_equal(H.to_array(), np.array([[5]])) H = State(np.ones((4, 4))) assert_equal(H.to_array(), np.ones((4, 4)))
def test_State_to_array(): G = State(1, 1, 1) H = State(5) with assert_raises(ValueError): G.to_array() assert_equal(H.to_array(), np.array([[5]])) H = State(np.ones((4, 4))) assert_equal(H.to_array(), np.ones((4, 4)))
def test_State_algebra_add_radd(): sta_siso = State(5) sta_mimo = State(2.0 * np.eye(3)) dyn_siso = State(haroldcompanion([1, 3, 3, 1]), e_i(3, -1), e_i(3, 1).T) dyn_mimo = State(haroldcompanion([1, 3, 3, 1]), e_i(3, [1, 2]), np.eye(3)) dyn_mimo_sq = State(haroldcompanion([1, 3, 3, 1]), np.eye(3), np.eye(3)) G = dyn_mimo + sta_siso assert_array_almost_equal(G.d, sta_siso.to_array() * np.ones(dyn_mimo.shape)) assert_raises(ValueError, dyn_mimo.__add__, sta_mimo) G = dyn_mimo_sq + sta_mimo assert_array_almost_equal(G.d, 2. * np.eye(3)) G = dyn_mimo + dyn_siso J = np.array([[0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 1., 0., 0., 0., 1., 0.], [-1., -3., -3., 0., 0., 0., 0., 1.], [0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., -1., -3., -3., 1., 1.], [1., 0., 0., 0., 1., 0., 0., 0.], [0., 1., 0., 0., 1., 0., 0., 0.], [0., 0., 1., 0., 1., 0., 0., 0.]]) assert_array_almost_equal(concatenate_state_matrices(G), J) assert_raises(ValueError, dyn_mimo.__add__, dyn_mimo_sq) assert_raises(ValueError, dyn_mimo.__sub__, dyn_mimo_sq) assert_raises(ValueError, dyn_mimo.__radd__, dyn_mimo_sq) assert_raises(ValueError, dyn_mimo.__rsub__, dyn_mimo_sq)
def test_State_algebra_add_radd(): sta_siso = State(5) sta_mimo = State(2.0*np.eye(3)) dyn_siso = State(haroldcompanion([1, 3, 3, 1]), e_i(3, -1), e_i(3, 1).T) dyn_mimo = State(haroldcompanion([1, 3, 3, 1]), e_i(3, [1, 2]), np.eye(3)) dyn_mimo_sq = State(haroldcompanion([1, 3, 3, 1]), np.eye(3), np.eye(3)) G = dyn_mimo + sta_siso assert_array_almost_equal(G.d, sta_siso.to_array()*np.ones(dyn_mimo.shape)) assert_raises(ValueError, dyn_mimo.__add__, sta_mimo) G = dyn_mimo_sq + sta_mimo assert_array_almost_equal(G.d, 2.*np.eye(3)) G = dyn_mimo + dyn_siso J = np.array([[0., 1., 0., 0., 0., 0., 0., 0.], [0., 0., 1., 0., 0., 0., 1., 0.], [-1., -3., -3., 0., 0., 0., 0., 1.], [0., 0., 0., 0., 1., 0., 0., 0.], [0., 0., 0., 0., 0., 1., 0., 0.], [0., 0., 0., -1., -3., -3., 1., 1.], [1., 0., 0., 0., 1., 0., 0., 0.], [0., 1., 0., 0., 1., 0., 0., 0.], [0., 0., 1., 0., 1., 0., 0., 0.]]) assert_array_almost_equal(concatenate_state_matrices(G), J) assert_raises(ValueError, dyn_mimo.__add__, dyn_mimo_sq) assert_raises(ValueError, dyn_mimo.__sub__, dyn_mimo_sq) assert_raises(ValueError, dyn_mimo.__radd__, dyn_mimo_sq) assert_raises(ValueError, dyn_mimo.__rsub__, dyn_mimo_sq)