def test_pickle_full_dump_and_load2(self): """ Test with non-sympy object """ xx = st.symb_vector("x1, x2, x3") xdot1, xdot2, xdot3 = xxd = st.time_deriv(xx, xx) y1, y2, y3 = yy = st.symb_vector("y1, y2, y3") yyd = st.time_deriv(yy, yy) yydd = st.time_deriv(yy, yy, order=2) pdata = st.Container() pdata.z1 = yy pdata.z2 = sin(yyd[2]) pdata.z3 = yydd pdata.abc = xxd pfname = "tmp_dump_test.pcl" st.pickle_full_dump(pdata, pfname) self.assertEqual(xdot1.difforder, 1) self.assertEqual(yydd[1].difforder, 2) # forget all difforder attributes st.init_attribute_store(reinit=True) self.assertEqual(xdot1.difforder, 0) self.assertEqual(yydd[1].difforder, 0) del xdot1, xdot2, xdot3, xxd, yydd, pdata pdata = st.pickle_full_load(pfname) xdot1, xdot2, xdot3 = xxd = pdata.abc yydd_new = pdata.z3 self.assertEqual(xdot1.difforder, 1) self.assertEqual(yydd_new[1].difforder, 2) with self.assertRaises(TypeError) as cm: st.pickle_full_dump([], pfname) with self.assertRaises(TypeError) as cm: st.pickle_full_dump(xdot1, pfname) with self.assertRaises(TypeError) as cm: st.pickle_full_dump(st.Container, pfname) os.remove(pfname)
def test_pickle_full_dump_and_load(self): xx = st.symb_vector("x1, x2, x3") xdot1, xdot2, xdot3 = xxd = st.time_deriv(xx, xx) y1, y2, y3 = yy = st.symb_vector("y1, y2, y3") yyd = st.time_deriv(yy, yy) yydd = st.time_deriv(yy, yy, order=2) # add custom information to data container xxd.data = st.Container() xxd.data.z1 = yy xxd.data.z2 = sin(yyd[2]) xxd.data.z3 = yydd pfname = "tmp_dump_test.pcl" st.pickle_full_dump(xxd, pfname) self.assertEqual(xdot1.difforder, 1) self.assertEqual(yydd[1].difforder, 2) # store assumptions to compare them later y1_assumptions = y1.assumptions0 # forget all difforder attributes st.init_attribute_store(reinit=True) self.assertEqual(xdot1.difforder, 0) self.assertEqual(yydd[1].difforder, 0) del xdot1, xdot2, xdot3, xxd, yydd xdot1, xdot2, xdot3 = xxd = st.pickle_full_load(pfname) yydd_new = xxd.data.z3 self.assertEqual(xdot1.difforder, 1) self.assertEqual(yydd_new[1].difforder, 2) new_y1_assumptions = xxd.data.z1[0].assumptions0 self.assertEqual(new_y1_assumptions, y1_assumptions) os.remove(pfname)
def setUp(self): st.init_attribute_store(reinit=True)