Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
 def setUp(self):
     st.init_attribute_store(reinit=True)