Exemplo n.º 1
0
    def test1(self):

        a = 'asymh'
        pyyawt.dwtmode(a)
        ST = pyyawt.dwtmode('status','nodisp')
        b = (ST == a)

        x = np.random.randn(50)
        [cA,cD] = pyyawt.dwt(x,'db2')
        [caa,cdd] = pyyawt.dwt(x,'db2','mode',a)
        # x0 = pyyawt.idwt(cA,cD,'db2',len(x))

        np.testing.assert_almost_equal(cA, caa)
        np.testing.assert_almost_equal(cD, cdd)
        # np.testing.assert_almost_equal(x, x0)

        np.testing.assert_equal(b,True)

        a = 'sp1'
        pyyawt.dwtmode(a)
        ST = pyyawt.dwtmode('status','nodisp')
        b = (ST == a)
        x = np.random.randn(50)
        [cA,cD] = pyyawt.dwt(x,'db2')
        [caa,cdd] = pyyawt.dwt(x,'db2','mode',a)
        # x0=pyyawt.idwt(cA,cD,'db2',length(x))

        np.testing.assert_almost_equal(cA, caa)
        np.testing.assert_almost_equal(cD, cdd)
        # np.testing.assert_almost_equal(x, x0)

        np.testing.assert_equal(b,True)

        pyyawt.dwtmode("symh")
Exemplo n.º 2
0
    def test1(self):

        a = 'asymh'
        pyyawt.dwtmode(a)
        ST = pyyawt.dwtmode('status', 'nodisp')
        b = (ST == a)

        x = np.random.randn(50)
        [cA, cD] = pyyawt.dwt(x, 'db2')
        [caa, cdd] = pyyawt.dwt(x, 'db2', 'mode', a)
        # x0 = pyyawt.idwt(cA,cD,'db2',len(x))

        np.testing.assert_almost_equal(cA, caa)
        np.testing.assert_almost_equal(cD, cdd)
        # np.testing.assert_almost_equal(x, x0)

        np.testing.assert_equal(b, True)

        a = 'sp1'
        pyyawt.dwtmode(a)
        ST = pyyawt.dwtmode('status', 'nodisp')
        b = (ST == a)
        x = np.random.randn(50)
        [cA, cD] = pyyawt.dwt(x, 'db2')
        [caa, cdd] = pyyawt.dwt(x, 'db2', 'mode', a)
        # x0=pyyawt.idwt(cA,cD,'db2',length(x))

        np.testing.assert_almost_equal(cA, caa)
        np.testing.assert_almost_equal(cD, cdd)
        # np.testing.assert_almost_equal(x, x0)

        np.testing.assert_equal(b, True)

        pyyawt.dwtmode("symh")
Exemplo n.º 3
0
    def test_bior2(self):
        s1 = self.s1
        x1 = self.x1
        x2 = self.x2
        ST = pyyawt.dwtmode("status","nodisp")
        wnames = ['bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6',
                  'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9',
                  'bior4.4', 'bior5.5', 'bior6.8']
        for N in np.arange(len(wnames)):
            wname = wnames[N]
            [Lo_D,Hi_D,Lo_R,Hi_R] = pyyawt.wfilters(wname)
            [c,l] = pyyawt.wavedec(s1,3,wname)
            s0 = pyyawt.waverec(c,l,wname)
            [cA1,cD1] = pyyawt.dwt(s1,wname)
            [cA2,cD2] = pyyawt.dwt(cA1,wname)
            [cA3,cD3] = pyyawt.dwt(cA2,wname)
            ca2 = pyyawt.idwt(cA3,cD3,wname,np.size(cA2))
            ca1 = pyyawt.idwt(ca2,cD2,wname,np.size(cA1))
            a0 = pyyawt.idwt(ca1,cD1,wname,np.size(s1))
            np.testing.assert_almost_equal(a0, s0)

            Lo_D = np.random.randn(np.size(Lo_D))
            Hi_D = np.random.randn(np.size(Lo_D))
            ca2 = pyyawt.idwt(cA3,cD3,Lo_R,Hi_R,np.size(cA2))
            ca1 = pyyawt.idwt(ca2,cD2,Lo_R,Hi_R,np.size(cA1))
            a0 = pyyawt.idwt(ca1,cD1,Lo_R,Hi_R,np.size(s1))
            s0 = pyyawt.waverec(c,l,Lo_R,Hi_R)
            np.testing.assert_almost_equal(a0, s0)
Exemplo n.º 4
0
    def test_bior2(self):
        s1 = self.s1
        x1 = self.x1
        x2 = self.x2
        ST = pyyawt.dwtmode("status", "nodisp")
        wnames = [
            'bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6',
            'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9',
            'bior4.4', 'bior5.5', 'bior6.8'
        ]
        for N in np.arange(len(wnames)):
            wname = wnames[N]
            [Lo_D, Hi_D, Lo_R, Hi_R] = pyyawt.wfilters(wname)
            [c, l] = pyyawt.wavedec(s1, 3, wname)
            s0 = pyyawt.waverec(c, l, wname)
            [cA1, cD1] = pyyawt.dwt(s1, wname)
            [cA2, cD2] = pyyawt.dwt(cA1, wname)
            [cA3, cD3] = pyyawt.dwt(cA2, wname)
            ca2 = pyyawt.idwt(cA3, cD3, wname, np.size(cA2))
            ca1 = pyyawt.idwt(ca2, cD2, wname, np.size(cA1))
            a0 = pyyawt.idwt(ca1, cD1, wname, np.size(s1))
            np.testing.assert_almost_equal(a0, s0)

            Lo_D = np.random.randn(np.size(Lo_D))
            Hi_D = np.random.randn(np.size(Lo_D))
            ca2 = pyyawt.idwt(cA3, cD3, Lo_R, Hi_R, np.size(cA2))
            ca1 = pyyawt.idwt(ca2, cD2, Lo_R, Hi_R, np.size(cA1))
            a0 = pyyawt.idwt(ca1, cD1, Lo_R, Hi_R, np.size(s1))
            s0 = pyyawt.waverec(c, l, Lo_R, Hi_R)
            np.testing.assert_almost_equal(a0, s0)
Exemplo n.º 5
0
 def test_bior3(self):
     s1 = self.s1
     x1 = self.x1
     x2 = self.x2
     ST = pyyawt.dwtmode("status","nodisp")
     wnames = ['bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6',
               'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9',
               'bior4.4', 'bior5.5', 'bior6.8']
     ST = pyyawt.dwtmode("status","nodisp")
     for N in np.arange(len(wnames)):
         wname = wnames[N]
         [c,l] = pyyawt.wavedec(s1,3,wname)
         pyyawt.dwtmode("symh")
         a0 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode("symw")
         a1 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode("asymh")
         a2 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode("asymw")
         a3 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode("zpd")
         a4 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode("sp0")
         a5 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode("sp1")
         a6 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode("ppd")
         a7 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode("per")
         a8 = pyyawt.waverec(c,l,wname)
         pyyawt.dwtmode(ST)
         np.testing.assert_almost_equal(a0, a1)
         np.testing.assert_almost_equal(a0, a2)
         np.testing.assert_almost_equal(a0, a3)
         np.testing.assert_almost_equal(a0, a4)
         np.testing.assert_almost_equal(a0, a5)
         np.testing.assert_almost_equal(a0, a6)
         np.testing.assert_almost_equal(a0, a7)
         np.testing.assert_almost_equal(a0, a8)
Exemplo n.º 6
0
    def test_bior2(self):
        s1 = self.s1
        x1 = self.x1
        x2 = self.x2
        ST = pyyawt.dwtmode("status","nodisp")
        wnames = ['bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6',
                  'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9',
                  'bior4.4', 'bior5.5', 'bior6.8']
        for N in np.arange(len(wnames)):
            wname = wnames[N]
            [cA1,cD1] = pyyawt.dwt(s1,wname)
            [cA2,cD2] = pyyawt.dwt(cA1,wname)
            [cA3,cD3] = pyyawt.dwt(cA2,wname)
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("asymh")
            [cA1,cD1] = pyyawt.dwt(s1,wname,'mode','asymh')
            [cA2,cD2] = pyyawt.dwt(cA1,wname,'mode','asymh')
            [cA3,cD3] = pyyawt.dwt(cA2,wname,'mode','asymh')
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("symw")
            [cA1,cD1] = pyyawt.dwt(s1,wname,'mode','symw')
            [cA2,cD2] = pyyawt.dwt(cA1,wname,'mode','symw')
            [cA3,cD3] = pyyawt.dwt(cA2,wname,'mode','symw')
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("asymw")
            [cA1,cD1] = pyyawt.dwt(s1,wname,'mode','asymw')
            [cA2,cD2] = pyyawt.dwt(cA1,wname,'mode','asymw')
            [cA3,cD3] = pyyawt.dwt(cA2,wname,'mode','asymw')
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("zpd")
            [cA1,cD1] = pyyawt.dwt(s1,wname,'mode','zpd')
            [cA2,cD2] = pyyawt.dwt(cA1,wname,'mode','zpd')
            [cA3,cD3] = pyyawt.dwt(cA2,wname,'mode','zpd')
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("sp0")
            [cA1,cD1] = pyyawt.dwt(s1,wname,'mode','sp0')
            [cA2,cD2] = pyyawt.dwt(cA1,wname,'mode','sp0')
            [cA3,cD3] = pyyawt.dwt(cA2,wname,'mode','sp0')
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("sp1")
            [cA1,cD1] = pyyawt.dwt(s1,wname,'mode','sp1')
            [cA2,cD2] = pyyawt.dwt(cA1,wname,'mode','sp1')
            [cA3,cD3] = pyyawt.dwt(cA2,wname,'mode','sp1')
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("ppd")
            [cA1,cD1] = pyyawt.dwt(s1,wname,'mode','ppd')
            [cA2,cD2] = pyyawt.dwt(cA1,wname,'mode','ppd')
            [cA3,cD3] = pyyawt.dwt(cA2,wname,'mode','ppd')
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("per")
            [cA1,cD1] = pyyawt.dwt(s1,wname,'mode','per')
            [cA2,cD2] = pyyawt.dwt(cA1,wname,'mode','per')
            [cA3,cD3] = pyyawt.dwt(cA2,wname,'mode','per')
            Lo_D,Hi_D = pyyawt.wfilters(wname,'d')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [np.size(cA3), np.size(cD3), np.size(cD2), np.size(cD1), np.size(s1)]
            c, l = pyyawt.wavedec(s1,3,Lo_D,Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode(ST)
Exemplo n.º 7
0
 def test_bior3(self):
     s1 = self.s1
     x1 = self.x1
     x2 = self.x2
     ST = pyyawt.dwtmode("status", "nodisp")
     wnames = [
         'bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6',
         'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9',
         'bior4.4', 'bior5.5', 'bior6.8'
     ]
     ST = pyyawt.dwtmode("status", "nodisp")
     for N in np.arange(len(wnames)):
         wname = wnames[N]
         [c, l] = pyyawt.wavedec(s1, 3, wname)
         pyyawt.dwtmode("symh")
         a0 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode("symw")
         a1 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode("asymh")
         a2 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode("asymw")
         a3 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode("zpd")
         a4 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode("sp0")
         a5 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode("sp1")
         a6 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode("ppd")
         a7 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode("per")
         a8 = pyyawt.waverec(c, l, wname)
         pyyawt.dwtmode(ST)
         np.testing.assert_almost_equal(a0, a1)
         np.testing.assert_almost_equal(a0, a2)
         np.testing.assert_almost_equal(a0, a3)
         np.testing.assert_almost_equal(a0, a4)
         np.testing.assert_almost_equal(a0, a5)
         np.testing.assert_almost_equal(a0, a6)
         np.testing.assert_almost_equal(a0, a7)
         np.testing.assert_almost_equal(a0, a8)
Exemplo n.º 8
0
    def test_bior2(self):
        s1 = self.s1
        x1 = self.x1
        x2 = self.x2
        ST = pyyawt.dwtmode("status", "nodisp")
        wnames = [
            'bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6',
            'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9',
            'bior4.4', 'bior5.5', 'bior6.8'
        ]
        for N in np.arange(len(wnames)):
            wname = wnames[N]
            [cA1, cD1] = pyyawt.dwt(s1, wname)
            [cA2, cD2] = pyyawt.dwt(cA1, wname)
            [cA3, cD3] = pyyawt.dwt(cA2, wname)
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("asymh")
            [cA1, cD1] = pyyawt.dwt(s1, wname, 'mode', 'asymh')
            [cA2, cD2] = pyyawt.dwt(cA1, wname, 'mode', 'asymh')
            [cA3, cD3] = pyyawt.dwt(cA2, wname, 'mode', 'asymh')
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("symw")
            [cA1, cD1] = pyyawt.dwt(s1, wname, 'mode', 'symw')
            [cA2, cD2] = pyyawt.dwt(cA1, wname, 'mode', 'symw')
            [cA3, cD3] = pyyawt.dwt(cA2, wname, 'mode', 'symw')
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("asymw")
            [cA1, cD1] = pyyawt.dwt(s1, wname, 'mode', 'asymw')
            [cA2, cD2] = pyyawt.dwt(cA1, wname, 'mode', 'asymw')
            [cA3, cD3] = pyyawt.dwt(cA2, wname, 'mode', 'asymw')
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("zpd")
            [cA1, cD1] = pyyawt.dwt(s1, wname, 'mode', 'zpd')
            [cA2, cD2] = pyyawt.dwt(cA1, wname, 'mode', 'zpd')
            [cA3, cD3] = pyyawt.dwt(cA2, wname, 'mode', 'zpd')
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("sp0")
            [cA1, cD1] = pyyawt.dwt(s1, wname, 'mode', 'sp0')
            [cA2, cD2] = pyyawt.dwt(cA1, wname, 'mode', 'sp0')
            [cA3, cD3] = pyyawt.dwt(cA2, wname, 'mode', 'sp0')
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("sp1")
            [cA1, cD1] = pyyawt.dwt(s1, wname, 'mode', 'sp1')
            [cA2, cD2] = pyyawt.dwt(cA1, wname, 'mode', 'sp1')
            [cA3, cD3] = pyyawt.dwt(cA2, wname, 'mode', 'sp1')
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("ppd")
            [cA1, cD1] = pyyawt.dwt(s1, wname, 'mode', 'ppd')
            [cA2, cD2] = pyyawt.dwt(cA1, wname, 'mode', 'ppd')
            [cA3, cD3] = pyyawt.dwt(cA2, wname, 'mode', 'ppd')
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode("per")
            [cA1, cD1] = pyyawt.dwt(s1, wname, 'mode', 'per')
            [cA2, cD2] = pyyawt.dwt(cA1, wname, 'mode', 'per')
            [cA3, cD3] = pyyawt.dwt(cA2, wname, 'mode', 'per')
            Lo_D, Hi_D = pyyawt.wfilters(wname, 'd')
            c0 = np.concatenate([cA3, cD3, cD2, cD1])
            l0 = [
                np.size(cA3),
                np.size(cD3),
                np.size(cD2),
                np.size(cD1),
                np.size(s1)
            ]
            c, l = pyyawt.wavedec(s1, 3, Lo_D, Hi_D)
            np.testing.assert_almost_equal(c, c0)
            np.testing.assert_almost_equal(l, l0)

            pyyawt.dwtmode(ST)