Example #1
0
 def check_parcur_against_dierckx(self):
     xa,xo = parcur_test['xa'], parcur_test['xo']
     k,s = parcur_test['k'], parcur_test['s']
     u = parcur_test['u']
     ub,ue = parcur_test['ub'], parcur_test['ue']
     iopt, res = parcur_test['iopt'], parcur_test['res']
     err, ipar = parcur_test['err'], parcur_test['ipar']
     knots = parcur_test['knots']
     sx, sy = parcur_test['sx'], parcur_test['sy']
     sp = parcur_test['sp']
     x = array([xa, xo])
     for i in range(len(k)):
         if iopt[i] != -1:
             if ipar[i] == 1:
                 tcku,fp,ier,msg = splprep(x,u=u,ub=ub,ue=ue,k=k[i],
                                task=iopt[i],s=s[i],full_output=True)
             else:
                 tcku,fp,ier,msg = splprep(x,ub=ub,ue=ue,k=k[i],
                                task=iopt[i],s=s[i],full_output=True)
         else:
             tcku,fp,ier,msg = splprep(x,ub=ub,ue=ue,t=knots[i],
                                k=k[i],task=iopt[i],full_output=True)
         tck,u = tcku
         tt,cc,kk = tck
         tt,cc = asarray(tt), asarray(cc)
         assert_almost_equal(ier,err[i])
         assert_almost_equal(fp,res[i],decimal=3)
         assert_array_almost_equal(tt,knots[i], decimal=3)
         assert_array_almost_equal(cc[0],sx[i], decimal=3)
         assert_array_almost_equal(cc[1],sy[i], decimal=3)
         y = asarray(splev(u,tck))
         yy = zeros(64, 'float')
         yy[0:-1:2] = y[0]
         yy[1::2] = y[1]
         assert_array_almost_equal(yy,sp[i], decimal=3)
Example #2
0
 def check_parcur(self):
     f=f1; per=0; s=0; a=0; b=2*pi;
     N=[20,50]
     ia=0; ib=2*pi; dx=0.2*pi
     xb,xe=a,b
     for i in range(len(N)):
         x=a+(b-a)*arange(N[i]+1,dtype=float)/float(N[i])
         x1=a+(b-a)*arange(1,N[i],dtype=float)/float(N[i]-1) # mid points
         v,v1=f(x),f(x1)
         for k in range(1,6):
             tckp,u=splprep([x,v],s=s,per=per,k=k)
             tck=splrep(x,v,s=s,per=per,k=k)
             uv=splev(dx,tckp)
             assert_almost_equal(0.0, around(abs(uv[1]-f(uv[0])),2), 
                                                                 decimal=1)
             assert_almost_equal(0.0, 
                     around(abs(splev(uv[0],tck)-f(uv[0])),2),decimal=1)