/[escript]/trunk/escript/py_src/test_util_slicing_with_tagged_data.py
ViewVC logotype

Diff of /trunk/escript/py_src/test_util_slicing_with_tagged_data.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 549 by gross, Tue Feb 14 02:25:02 2006 UTC revision 550 by gross, Wed Feb 22 02:14:38 2006 UTC
# Line 2885  class Test_util_slicing_with_tagged_data Line 2885  class Test_util_slicing_with_tagged_data
2885        self.failUnless(isinstance(res,Data),"wrong type of result.")        self.failUnless(isinstance(res,Data),"wrong type of result.")
2886        self.failUnlessEqual(res.getShape(),(3, 2, 3, 3),"wrong shape of result.")        self.failUnlessEqual(res.getShape(),(3, 2, 3, 3),"wrong shape of result.")
2887        self.failUnless(Lsup(res-ref)<=self.RES_TOL*Lsup(ref),"wrong result")        self.failUnless(Lsup(res-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2888       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2889       def test_setslice_constData_rank1_taggedData_L(self):
2890          arg=Data(numarray.array([8.0, 7.0, 4.0]),self.functionspace)
2891          val=Data(numarray.array([8.0]),self.functionspace)
2892          val.setTaggedValue(1,numarray.array([2.0]))
2893          arg[2:]=val
2894          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2895          ref=msk_ref*numarray.array([8.0, 7.0, 8.0])+(1.-msk_ref)*numarray.array([8.0, 7.0, 2.0])
2896          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2897       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2898       def test_setslice_constData_rank1_taggedData_C(self):
2899          arg=Data(numarray.array([1.0, 5.0, 5.0]),self.functionspace)
2900          val=Data(numarray.array([8.0, 7.0, 3.0]),self.functionspace)
2901          val.setTaggedValue(1,numarray.array([3.0, 3.0, 4.0]))
2902          arg[:]=val
2903          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2904          ref=msk_ref*numarray.array([8.0, 7.0, 3.0])+(1.-msk_ref)*numarray.array([3.0, 3.0, 4.0])
2905          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2906       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2907       def test_setslice_constData_rank1_taggedData_U(self):
2908          arg=Data(numarray.array([2.0, 3.0, 4.0]),self.functionspace)
2909          val=Data(numarray.array([6.0, 3.0]),self.functionspace)
2910          val.setTaggedValue(1,numarray.array([3.0, 7.0]))
2911          arg[:2]=val
2912          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2913          ref=msk_ref*numarray.array([6.0, 3.0, 4.0])+(1.-msk_ref)*numarray.array([3.0, 7.0, 4.0])
2914          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2915       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2916       def test_setslice_constData_rank1_taggedData_P(self):
2917          arg=Data(numarray.array([3.0, 6.0, 6.0]),self.functionspace)
2918          val=Data(1.0,self.functionspace)
2919          val.setTaggedValue(1,1.0)
2920          arg[1]=val
2921          ref=Data(numarray.array([3.0, 1.0, 6.0]),self.functionspace)
2922          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2923       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2924       def test_setslice_constData_rank1_taggedData_R(self):
2925          arg=Data(numarray.array([5.0, 7.0, 2.0]),self.functionspace)
2926          val=Data(numarray.array([7.0]),self.functionspace)
2927          val.setTaggedValue(1,numarray.array([6.0]))
2928          arg[1:2]=val
2929          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2930          ref=msk_ref*numarray.array([5.0, 7.0, 2.0])+(1.-msk_ref)*numarray.array([5.0, 6.0, 2.0])
2931          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2932       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2933       def test_setslice_constData_rank2_taggedData_UU(self):
2934          arg=Data(numarray.array([[1.0, 6.0, 1.0, 8.0], [4.0, 4.0, 5.0, 6.0], [4.0, 7.0, 5.0, 7.0]]),self.functionspace)
2935          val=Data(numarray.array([[7.0, 7.0, 5.0], [6.0, 3.0, 4.0]]),self.functionspace)
2936          val.setTaggedValue(1,numarray.array([[4.0, 4.0, 1.0], [5.0, 2.0, 6.0]]))
2937          arg[:2,:3]=val
2938          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2939          ref=msk_ref*numarray.array([[7.0, 7.0, 5.0, 8.0], [6.0, 3.0, 4.0, 6.0], [4.0, 7.0, 5.0, 7.0]])+(1.-msk_ref)*numarray.array([[4.0, 4.0, 1.0, 8.0], [5.0, 2.0, 6.0, 6.0], [4.0, 7.0, 5.0, 7.0]])
2940          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2941       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2942       def test_setslice_constData_rank2_taggedData_LC(self):
2943          arg=Data(numarray.array([[3.0, 8.0, 1.0, 4.0], [6.0, 1.0, 1.0, 2.0], [4.0, 2.0, 1.0, 7.0]]),self.functionspace)
2944          val=Data(numarray.array([[8.0, 2.0, 5.0, 4.0]]),self.functionspace)
2945          val.setTaggedValue(1,numarray.array([[4.0, 4.0, 7.0, 6.0]]))
2946          arg[2:,:]=val
2947          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2948          ref=msk_ref*numarray.array([[3.0, 8.0, 1.0, 4.0], [6.0, 1.0, 1.0, 2.0], [8.0, 2.0, 5.0, 4.0]])+(1.-msk_ref)*numarray.array([[3.0, 8.0, 1.0, 4.0], [6.0, 1.0, 1.0, 2.0], [4.0, 4.0, 7.0, 6.0]])
2949          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2950       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2951       def test_setslice_constData_rank2_taggedData_LP(self):
2952          arg=Data(numarray.array([[2.0, 2.0, 3.0, 4.0], [1.0, 6.0, 8.0, 8.0], [4.0, 3.0, 1.0, 1.0]]),self.functionspace)
2953          val=Data(numarray.array([5.0]),self.functionspace)
2954          val.setTaggedValue(1,numarray.array([7.0]))
2955          arg[2:,2]=val
2956          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2957          ref=msk_ref*numarray.array([[2.0, 2.0, 3.0, 4.0], [1.0, 6.0, 8.0, 8.0], [4.0, 3.0, 5.0, 1.0]])+(1.-msk_ref)*numarray.array([[2.0, 2.0, 3.0, 4.0], [1.0, 6.0, 8.0, 8.0], [4.0, 3.0, 7.0, 1.0]])
2958          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2959       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2960       def test_setslice_constData_rank2_taggedData_RU(self):
2961          arg=Data(numarray.array([[3.0, 5.0, 3.0, 3.0], [8.0, 1.0, 8.0, 5.0], [1.0, 4.0, 3.0, 1.0]]),self.functionspace)
2962          val=Data(numarray.array([[6.0, 8.0, 6.0]]),self.functionspace)
2963          val.setTaggedValue(1,numarray.array([[7.0, 7.0, 4.0]]))
2964          arg[1:2,:3]=val
2965          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2966          ref=msk_ref*numarray.array([[3.0, 5.0, 3.0, 3.0], [6.0, 8.0, 6.0, 5.0], [1.0, 4.0, 3.0, 1.0]])+(1.-msk_ref)*numarray.array([[3.0, 5.0, 3.0, 3.0], [7.0, 7.0, 4.0, 5.0], [1.0, 4.0, 3.0, 1.0]])
2967          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2968       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2969       def test_setslice_constData_rank2_taggedData_PN(self):
2970          arg=Data(numarray.array([[3.0, 7.0, 3.0, 8.0], [5.0, 2.0, 2.0, 6.0], [5.0, 8.0, 1.0, 6.0]]),self.functionspace)
2971          val=Data(numarray.array([5.0, 1.0, 7.0, 4.0]),self.functionspace)
2972          val.setTaggedValue(1,numarray.array([3.0, 5.0, 1.0, 8.0]))
2973          arg[1]=val
2974          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2975          ref=msk_ref*numarray.array([[3.0, 7.0, 3.0, 8.0], [5.0, 1.0, 7.0, 4.0], [5.0, 8.0, 1.0, 6.0]])+(1.-msk_ref)*numarray.array([[3.0, 7.0, 3.0, 8.0], [3.0, 5.0, 1.0, 8.0], [5.0, 8.0, 1.0, 6.0]])
2976          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2977       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2978       def test_setslice_constData_rank2_taggedData_UC(self):
2979          arg=Data(numarray.array([[4.0, 2.0, 6.0, 2.0], [8.0, 3.0, 1.0, 4.0], [3.0, 3.0, 5.0, 1.0]]),self.functionspace)
2980          val=Data(numarray.array([[3.0, 3.0, 6.0, 2.0], [7.0, 8.0, 4.0, 5.0]]),self.functionspace)
2981          val.setTaggedValue(1,numarray.array([[6.0, 7.0, 4.0, 4.0], [3.0, 1.0, 6.0, 3.0]]))
2982          arg[:2,:]=val
2983          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2984          ref=msk_ref*numarray.array([[3.0, 3.0, 6.0, 2.0], [7.0, 8.0, 4.0, 5.0], [3.0, 3.0, 5.0, 1.0]])+(1.-msk_ref)*numarray.array([[6.0, 7.0, 4.0, 4.0], [3.0, 1.0, 6.0, 3.0], [3.0, 3.0, 5.0, 1.0]])
2985          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2986       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2987       def test_setslice_constData_rank2_taggedData_CN(self):
2988          arg=Data(numarray.array([[3.0, 8.0, 8.0, 6.0], [4.0, 4.0, 5.0, 2.0], [3.0, 3.0, 7.0, 1.0]]),self.functionspace)
2989          val=Data(numarray.array([[4.0, 6.0, 4.0, 4.0], [6.0, 4.0, 7.0, 5.0], [1.0, 5.0, 7.0, 3.0]]),self.functionspace)
2990          val.setTaggedValue(1,numarray.array([[7.0, 5.0, 2.0, 3.0], [6.0, 7.0, 6.0, 3.0], [1.0, 4.0, 8.0, 4.0]]))
2991          arg[:]=val
2992          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
2993          ref=msk_ref*numarray.array([[4.0, 6.0, 4.0, 4.0], [6.0, 4.0, 7.0, 5.0], [1.0, 5.0, 7.0, 3.0]])+(1.-msk_ref)*numarray.array([[7.0, 5.0, 2.0, 3.0], [6.0, 7.0, 6.0, 3.0], [1.0, 4.0, 8.0, 4.0]])
2994          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
2995       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2996       def test_setslice_constData_rank2_taggedData_RR(self):
2997          arg=Data(numarray.array([[1.0, 8.0, 2.0, 1.0], [4.0, 4.0, 8.0, 4.0], [7.0, 7.0, 8.0, 4.0]]),self.functionspace)
2998          val=Data(numarray.array([[4.0, 2.0]]),self.functionspace)
2999          val.setTaggedValue(1,numarray.array([[7.0, 8.0]]))
3000          arg[1:2,1:3]=val
3001          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3002          ref=msk_ref*numarray.array([[1.0, 8.0, 2.0, 1.0], [4.0, 4.0, 2.0, 4.0], [7.0, 7.0, 8.0, 4.0]])+(1.-msk_ref)*numarray.array([[1.0, 8.0, 2.0, 1.0], [4.0, 7.0, 8.0, 4.0], [7.0, 7.0, 8.0, 4.0]])
3003          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3004       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3005       def test_setslice_constData_rank2_taggedData_LR(self):
3006          arg=Data(numarray.array([[5.0, 4.0, 8.0, 2.0], [5.0, 1.0, 2.0, 4.0], [4.0, 7.0, 6.0, 8.0]]),self.functionspace)
3007          val=Data(numarray.array([[1.0, 4.0]]),self.functionspace)
3008          val.setTaggedValue(1,numarray.array([[3.0, 4.0]]))
3009          arg[2:,1:3]=val
3010          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3011          ref=msk_ref*numarray.array([[5.0, 4.0, 8.0, 2.0], [5.0, 1.0, 2.0, 4.0], [4.0, 1.0, 4.0, 8.0]])+(1.-msk_ref)*numarray.array([[5.0, 4.0, 8.0, 2.0], [5.0, 1.0, 2.0, 4.0], [4.0, 3.0, 4.0, 8.0]])
3012          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3013       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3014       def test_setslice_constData_rank2_taggedData_PP(self):
3015          arg=Data(numarray.array([[4.0, 1.0, 4.0, 6.0], [3.0, 2.0, 2.0, 3.0], [4.0, 1.0, 6.0, 7.0]]),self.functionspace)
3016          val=Data(1.0,self.functionspace)
3017          val.setTaggedValue(1,1.0)
3018          arg[1,2]=val
3019          ref=Data(numarray.array([[4.0, 1.0, 4.0, 6.0], [3.0, 2.0, 1.0, 3.0], [4.0, 1.0, 6.0, 7.0]]),self.functionspace)
3020          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3021       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3022       def test_setslice_constData_rank2_taggedData_LL(self):
3023          arg=Data(numarray.array([[6.0, 6.0, 1.0, 7.0], [4.0, 6.0, 3.0, 2.0], [4.0, 7.0, 4.0, 5.0]]),self.functionspace)
3024          val=Data(numarray.array([[1.0, 3.0]]),self.functionspace)
3025          val.setTaggedValue(1,numarray.array([[2.0, 5.0]]))
3026          arg[2:,2:]=val
3027          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3028          ref=msk_ref*numarray.array([[6.0, 6.0, 1.0, 7.0], [4.0, 6.0, 3.0, 2.0], [4.0, 7.0, 1.0, 3.0]])+(1.-msk_ref)*numarray.array([[6.0, 6.0, 1.0, 7.0], [4.0, 6.0, 3.0, 2.0], [4.0, 7.0, 2.0, 5.0]])
3029          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3030       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3031       def test_setslice_constData_rank2_taggedData_PU(self):
3032          arg=Data(numarray.array([[2.0, 3.0, 1.0, 7.0], [1.0, 3.0, 3.0, 6.0], [7.0, 2.0, 2.0, 1.0]]),self.functionspace)
3033          val=Data(numarray.array([8.0, 8.0, 4.0]),self.functionspace)
3034          val.setTaggedValue(1,numarray.array([8.0, 8.0, 1.0]))
3035          arg[1,:3]=val
3036          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3037          ref=msk_ref*numarray.array([[2.0, 3.0, 1.0, 7.0], [8.0, 8.0, 4.0, 6.0], [7.0, 2.0, 2.0, 1.0]])+(1.-msk_ref)*numarray.array([[2.0, 3.0, 1.0, 7.0], [8.0, 8.0, 1.0, 6.0], [7.0, 2.0, 2.0, 1.0]])
3038          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3039       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3040       def test_setslice_constData_rank2_taggedData_RC(self):
3041          arg=Data(numarray.array([[8.0, 5.0, 8.0, 4.0], [5.0, 1.0, 6.0, 5.0], [7.0, 7.0, 1.0, 3.0]]),self.functionspace)
3042          val=Data(numarray.array([[8.0, 8.0, 7.0, 8.0]]),self.functionspace)
3043          val.setTaggedValue(1,numarray.array([[6.0, 3.0, 7.0, 7.0]]))
3044          arg[1:2,:]=val
3045          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3046          ref=msk_ref*numarray.array([[8.0, 5.0, 8.0, 4.0], [8.0, 8.0, 7.0, 8.0], [7.0, 7.0, 1.0, 3.0]])+(1.-msk_ref)*numarray.array([[8.0, 5.0, 8.0, 4.0], [6.0, 3.0, 7.0, 7.0], [7.0, 7.0, 1.0, 3.0]])
3047          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3048       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3049       def test_setslice_constData_rank2_taggedData_CP(self):
3050          arg=Data(numarray.array([[7.0, 2.0, 7.0, 4.0], [6.0, 3.0, 5.0, 8.0], [8.0, 8.0, 3.0, 2.0]]),self.functionspace)
3051          val=Data(numarray.array([4.0, 8.0, 5.0]),self.functionspace)
3052          val.setTaggedValue(1,numarray.array([3.0, 4.0, 6.0]))
3053          arg[:,2]=val
3054          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3055          ref=msk_ref*numarray.array([[7.0, 2.0, 4.0, 4.0], [6.0, 3.0, 8.0, 8.0], [8.0, 8.0, 5.0, 2.0]])+(1.-msk_ref)*numarray.array([[7.0, 2.0, 3.0, 4.0], [6.0, 3.0, 4.0, 8.0], [8.0, 8.0, 6.0, 2.0]])
3056          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3057       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3058       def test_setslice_constData_rank2_taggedData_LN(self):
3059          arg=Data(numarray.array([[8.0, 7.0, 8.0, 3.0], [2.0, 6.0, 1.0, 8.0], [2.0, 1.0, 7.0, 8.0]]),self.functionspace)
3060          val=Data(numarray.array([[8.0, 8.0, 5.0, 7.0]]),self.functionspace)
3061          val.setTaggedValue(1,numarray.array([[8.0, 2.0, 4.0, 3.0]]))
3062          arg[2:]=val
3063          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3064          ref=msk_ref*numarray.array([[8.0, 7.0, 8.0, 3.0], [2.0, 6.0, 1.0, 8.0], [8.0, 8.0, 5.0, 7.0]])+(1.-msk_ref)*numarray.array([[8.0, 7.0, 8.0, 3.0], [2.0, 6.0, 1.0, 8.0], [8.0, 2.0, 4.0, 3.0]])
3065          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3066       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3067       def test_setslice_constData_rank2_taggedData_PR(self):
3068          arg=Data(numarray.array([[6.0, 3.0, 3.0, 2.0], [5.0, 3.0, 6.0, 5.0], [1.0, 1.0, 4.0, 5.0]]),self.functionspace)
3069          val=Data(numarray.array([7.0, 2.0]),self.functionspace)
3070          val.setTaggedValue(1,numarray.array([4.0, 7.0]))
3071          arg[1,1:3]=val
3072          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3073          ref=msk_ref*numarray.array([[6.0, 3.0, 3.0, 2.0], [5.0, 7.0, 2.0, 5.0], [1.0, 1.0, 4.0, 5.0]])+(1.-msk_ref)*numarray.array([[6.0, 3.0, 3.0, 2.0], [5.0, 4.0, 7.0, 5.0], [1.0, 1.0, 4.0, 5.0]])
3074          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3075       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3076       def test_setslice_constData_rank2_taggedData_UL(self):
3077          arg=Data(numarray.array([[2.0, 3.0, 4.0, 8.0], [6.0, 6.0, 5.0, 4.0], [8.0, 4.0, 2.0, 8.0]]),self.functionspace)
3078          val=Data(numarray.array([[8.0, 8.0], [6.0, 8.0]]),self.functionspace)
3079          val.setTaggedValue(1,numarray.array([[8.0, 1.0], [7.0, 1.0]]))
3080          arg[:2,2:]=val
3081          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3082          ref=msk_ref*numarray.array([[2.0, 3.0, 8.0, 8.0], [6.0, 6.0, 6.0, 8.0], [8.0, 4.0, 2.0, 8.0]])+(1.-msk_ref)*numarray.array([[2.0, 3.0, 8.0, 1.0], [6.0, 6.0, 7.0, 1.0], [8.0, 4.0, 2.0, 8.0]])
3083          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3084       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3085       def test_setslice_constData_rank2_taggedData_CC(self):
3086          arg=Data(numarray.array([[2.0, 4.0, 8.0, 3.0], [8.0, 8.0, 6.0, 6.0], [1.0, 3.0, 5.0, 3.0]]),self.functionspace)
3087          val=Data(numarray.array([[5.0, 8.0, 5.0, 3.0], [7.0, 8.0, 5.0, 2.0], [1.0, 3.0, 3.0, 7.0]]),self.functionspace)
3088          val.setTaggedValue(1,numarray.array([[4.0, 3.0, 6.0, 1.0], [8.0, 5.0, 2.0, 3.0], [4.0, 4.0, 3.0, 2.0]]))
3089          arg[:,:]=val
3090          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3091          ref=msk_ref*numarray.array([[5.0, 8.0, 5.0, 3.0], [7.0, 8.0, 5.0, 2.0], [1.0, 3.0, 3.0, 7.0]])+(1.-msk_ref)*numarray.array([[4.0, 3.0, 6.0, 1.0], [8.0, 5.0, 2.0, 3.0], [4.0, 4.0, 3.0, 2.0]])
3092          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3093       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3094       def test_setslice_constData_rank2_taggedData_RN(self):
3095          arg=Data(numarray.array([[7.0, 1.0, 1.0, 4.0], [6.0, 3.0, 7.0, 4.0], [4.0, 5.0, 7.0, 1.0]]),self.functionspace)
3096          val=Data(numarray.array([[6.0, 5.0, 3.0, 2.0]]),self.functionspace)
3097          val.setTaggedValue(1,numarray.array([[8.0, 1.0, 2.0, 5.0]]))
3098          arg[1:2]=val
3099          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3100          ref=msk_ref*numarray.array([[7.0, 1.0, 1.0, 4.0], [6.0, 5.0, 3.0, 2.0], [4.0, 5.0, 7.0, 1.0]])+(1.-msk_ref)*numarray.array([[7.0, 1.0, 1.0, 4.0], [8.0, 1.0, 2.0, 5.0], [4.0, 5.0, 7.0, 1.0]])
3101          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3102       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3103       def test_setslice_constData_rank2_taggedData_UN(self):
3104          arg=Data(numarray.array([[6.0, 8.0, 7.0, 5.0], [2.0, 3.0, 8.0, 7.0], [1.0, 7.0, 6.0, 8.0]]),self.functionspace)
3105          val=Data(numarray.array([[3.0, 8.0, 7.0, 7.0], [8.0, 6.0, 6.0, 5.0]]),self.functionspace)
3106          val.setTaggedValue(1,numarray.array([[4.0, 3.0, 3.0, 4.0], [4.0, 7.0, 2.0, 2.0]]))
3107          arg[:2]=val
3108          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3109          ref=msk_ref*numarray.array([[3.0, 8.0, 7.0, 7.0], [8.0, 6.0, 6.0, 5.0], [1.0, 7.0, 6.0, 8.0]])+(1.-msk_ref)*numarray.array([[4.0, 3.0, 3.0, 4.0], [4.0, 7.0, 2.0, 2.0], [1.0, 7.0, 6.0, 8.0]])
3110          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3111       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3112       def test_setslice_constData_rank3_taggedData_LLL(self):
3113          arg=Data(numarray.array([[[8.0, 8.0, 2.0], [5.0, 7.0, 2.0], [6.0, 6.0, 3.0], [8.0, 6.0, 1.0]], [[2.0, 1.0, 3.0], [8.0, 7.0, 2.0], [3.0, 8.0, 3.0], [6.0, 5.0, 6.0]], [[1.0, 2.0, 6.0], [2.0, 8.0, 1.0], [3.0, 4.0, 4.0], [5.0, 5.0, 4.0]]]),self.functionspace)
3114          val=Data(numarray.array([[[5.0], [8.0]]]),self.functionspace)
3115          val.setTaggedValue(1,numarray.array([[[7.0], [3.0]]]))
3116          arg[2:,2:,2:]=val
3117          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3118          ref=msk_ref*numarray.array([[[8.0, 8.0, 2.0], [5.0, 7.0, 2.0], [6.0, 6.0, 3.0], [8.0, 6.0, 1.0]], [[2.0, 1.0, 3.0], [8.0, 7.0, 2.0], [3.0, 8.0, 3.0], [6.0, 5.0, 6.0]], [[1.0, 2.0, 6.0], [2.0, 8.0, 1.0], [3.0, 4.0, 5.0], [5.0, 5.0, 8.0]]])+(1.-msk_ref)*numarray.array([[[8.0, 8.0, 2.0], [5.0, 7.0, 2.0], [6.0, 6.0, 3.0], [8.0, 6.0, 1.0]], [[2.0, 1.0, 3.0], [8.0, 7.0, 2.0], [3.0, 8.0, 3.0], [6.0, 5.0, 6.0]], [[1.0, 2.0, 6.0], [2.0, 8.0, 1.0], [3.0, 4.0, 7.0], [5.0, 5.0, 3.0]]])
3119          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3120       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3121       def test_setslice_constData_rank3_taggedData_RCC(self):
3122          arg=Data(numarray.array([[[3.0, 6.0, 2.0], [2.0, 5.0, 3.0], [5.0, 3.0, 3.0], [2.0, 2.0, 6.0]], [[1.0, 1.0, 7.0], [6.0, 2.0, 5.0], [3.0, 6.0, 2.0], [3.0, 1.0, 6.0]], [[7.0, 4.0, 3.0], [3.0, 5.0, 7.0], [2.0, 4.0, 6.0], [6.0, 5.0, 7.0]]]),self.functionspace)
3123          val=Data(numarray.array([[[8.0, 7.0, 4.0], [6.0, 6.0, 4.0], [6.0, 2.0, 5.0], [1.0, 2.0, 2.0]]]),self.functionspace)
3124          val.setTaggedValue(1,numarray.array([[[2.0, 2.0, 3.0], [4.0, 1.0, 8.0], [3.0, 8.0, 5.0], [3.0, 8.0, 2.0]]]))
3125          arg[1:2,:,:]=val
3126          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3127          ref=msk_ref*numarray.array([[[3.0, 6.0, 2.0], [2.0, 5.0, 3.0], [5.0, 3.0, 3.0], [2.0, 2.0, 6.0]], [[8.0, 7.0, 4.0], [6.0, 6.0, 4.0], [6.0, 2.0, 5.0], [1.0, 2.0, 2.0]], [[7.0, 4.0, 3.0], [3.0, 5.0, 7.0], [2.0, 4.0, 6.0], [6.0, 5.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 6.0, 2.0], [2.0, 5.0, 3.0], [5.0, 3.0, 3.0], [2.0, 2.0, 6.0]], [[2.0, 2.0, 3.0], [4.0, 1.0, 8.0], [3.0, 8.0, 5.0], [3.0, 8.0, 2.0]], [[7.0, 4.0, 3.0], [3.0, 5.0, 7.0], [2.0, 4.0, 6.0], [6.0, 5.0, 7.0]]])
3128          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3129       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3130       def test_setslice_constData_rank3_taggedData_PPU(self):
3131          arg=Data(numarray.array([[[1.0, 2.0, 6.0], [2.0, 5.0, 8.0], [2.0, 2.0, 6.0], [4.0, 7.0, 6.0]], [[1.0, 2.0, 3.0], [6.0, 8.0, 5.0], [2.0, 4.0, 8.0], [8.0, 5.0, 1.0]], [[2.0, 1.0, 1.0], [6.0, 6.0, 8.0], [1.0, 2.0, 6.0], [1.0, 1.0, 3.0]]]),self.functionspace)
3132          val=Data(numarray.array([6.0, 6.0]),self.functionspace)
3133          val.setTaggedValue(1,numarray.array([2.0, 6.0]))
3134          arg[1,2,:2]=val
3135          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3136          ref=msk_ref*numarray.array([[[1.0, 2.0, 6.0], [2.0, 5.0, 8.0], [2.0, 2.0, 6.0], [4.0, 7.0, 6.0]], [[1.0, 2.0, 3.0], [6.0, 8.0, 5.0], [6.0, 6.0, 8.0], [8.0, 5.0, 1.0]], [[2.0, 1.0, 1.0], [6.0, 6.0, 8.0], [1.0, 2.0, 6.0], [1.0, 1.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[1.0, 2.0, 6.0], [2.0, 5.0, 8.0], [2.0, 2.0, 6.0], [4.0, 7.0, 6.0]], [[1.0, 2.0, 3.0], [6.0, 8.0, 5.0], [2.0, 6.0, 8.0], [8.0, 5.0, 1.0]], [[2.0, 1.0, 1.0], [6.0, 6.0, 8.0], [1.0, 2.0, 6.0], [1.0, 1.0, 3.0]]])
3137          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3138       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3139       def test_setslice_constData_rank3_taggedData_PLU(self):
3140          arg=Data(numarray.array([[[6.0, 7.0, 3.0], [7.0, 7.0, 8.0], [6.0, 7.0, 6.0], [5.0, 1.0, 1.0]], [[1.0, 3.0, 1.0], [1.0, 6.0, 7.0], [4.0, 3.0, 1.0], [4.0, 3.0, 5.0]], [[8.0, 3.0, 5.0], [3.0, 8.0, 7.0], [5.0, 8.0, 5.0], [1.0, 8.0, 3.0]]]),self.functionspace)
3141          val=Data(numarray.array([[7.0, 4.0], [8.0, 1.0]]),self.functionspace)
3142          val.setTaggedValue(1,numarray.array([[4.0, 8.0], [5.0, 3.0]]))
3143          arg[1,2:,:2]=val
3144          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3145          ref=msk_ref*numarray.array([[[6.0, 7.0, 3.0], [7.0, 7.0, 8.0], [6.0, 7.0, 6.0], [5.0, 1.0, 1.0]], [[1.0, 3.0, 1.0], [1.0, 6.0, 7.0], [7.0, 4.0, 1.0], [8.0, 1.0, 5.0]], [[8.0, 3.0, 5.0], [3.0, 8.0, 7.0], [5.0, 8.0, 5.0], [1.0, 8.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 7.0, 3.0], [7.0, 7.0, 8.0], [6.0, 7.0, 6.0], [5.0, 1.0, 1.0]], [[1.0, 3.0, 1.0], [1.0, 6.0, 7.0], [4.0, 8.0, 1.0], [5.0, 3.0, 5.0]], [[8.0, 3.0, 5.0], [3.0, 8.0, 7.0], [5.0, 8.0, 5.0], [1.0, 8.0, 3.0]]])
3146          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3147       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3148       def test_setslice_constData_rank3_taggedData_URN(self):
3149          arg=Data(numarray.array([[[2.0, 2.0, 5.0], [7.0, 3.0, 8.0], [8.0, 6.0, 2.0], [2.0, 2.0, 6.0]], [[6.0, 2.0, 6.0], [6.0, 5.0, 3.0], [8.0, 1.0, 7.0], [5.0, 1.0, 5.0]], [[3.0, 7.0, 6.0], [4.0, 2.0, 6.0], [3.0, 1.0, 4.0], [3.0, 5.0, 1.0]]]),self.functionspace)
3150          val=Data(numarray.array([[[4.0, 7.0, 6.0], [4.0, 4.0, 2.0]], [[7.0, 5.0, 7.0], [7.0, 1.0, 3.0]]]),self.functionspace)
3151          val.setTaggedValue(1,numarray.array([[[1.0, 5.0, 5.0], [5.0, 5.0, 6.0]], [[4.0, 8.0, 6.0], [7.0, 3.0, 5.0]]]))
3152          arg[:2,1:3]=val
3153          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3154          ref=msk_ref*numarray.array([[[2.0, 2.0, 5.0], [4.0, 7.0, 6.0], [4.0, 4.0, 2.0], [2.0, 2.0, 6.0]], [[6.0, 2.0, 6.0], [7.0, 5.0, 7.0], [7.0, 1.0, 3.0], [5.0, 1.0, 5.0]], [[3.0, 7.0, 6.0], [4.0, 2.0, 6.0], [3.0, 1.0, 4.0], [3.0, 5.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 2.0, 5.0], [1.0, 5.0, 5.0], [5.0, 5.0, 6.0], [2.0, 2.0, 6.0]], [[6.0, 2.0, 6.0], [4.0, 8.0, 6.0], [7.0, 3.0, 5.0], [5.0, 1.0, 5.0]], [[3.0, 7.0, 6.0], [4.0, 2.0, 6.0], [3.0, 1.0, 4.0], [3.0, 5.0, 1.0]]])
3155          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3156       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3157       def test_setslice_constData_rank3_taggedData_PLR(self):
3158          arg=Data(numarray.array([[[2.0, 7.0, 5.0], [4.0, 6.0, 8.0], [4.0, 8.0, 3.0], [7.0, 5.0, 5.0]], [[8.0, 1.0, 4.0], [3.0, 6.0, 3.0], [4.0, 3.0, 2.0], [3.0, 4.0, 6.0]], [[8.0, 6.0, 8.0], [5.0, 7.0, 4.0], [1.0, 1.0, 4.0], [3.0, 5.0, 4.0]]]),self.functionspace)
3159          val=Data(numarray.array([[3.0], [3.0]]),self.functionspace)
3160          val.setTaggedValue(1,numarray.array([[7.0], [6.0]]))
3161          arg[1,2:,1:2]=val
3162          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3163          ref=msk_ref*numarray.array([[[2.0, 7.0, 5.0], [4.0, 6.0, 8.0], [4.0, 8.0, 3.0], [7.0, 5.0, 5.0]], [[8.0, 1.0, 4.0], [3.0, 6.0, 3.0], [4.0, 3.0, 2.0], [3.0, 3.0, 6.0]], [[8.0, 6.0, 8.0], [5.0, 7.0, 4.0], [1.0, 1.0, 4.0], [3.0, 5.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 7.0, 5.0], [4.0, 6.0, 8.0], [4.0, 8.0, 3.0], [7.0, 5.0, 5.0]], [[8.0, 1.0, 4.0], [3.0, 6.0, 3.0], [4.0, 7.0, 2.0], [3.0, 6.0, 6.0]], [[8.0, 6.0, 8.0], [5.0, 7.0, 4.0], [1.0, 1.0, 4.0], [3.0, 5.0, 4.0]]])
3164          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3165       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3166       def test_setslice_constData_rank3_taggedData_UCL(self):
3167          arg=Data(numarray.array([[[4.0, 4.0, 8.0], [7.0, 6.0, 8.0], [8.0, 1.0, 8.0], [6.0, 1.0, 5.0]], [[4.0, 4.0, 5.0], [2.0, 6.0, 5.0], [3.0, 3.0, 1.0], [4.0, 3.0, 5.0]], [[1.0, 1.0, 4.0], [7.0, 1.0, 6.0], [2.0, 6.0, 6.0], [3.0, 7.0, 1.0]]]),self.functionspace)
3168          val=Data(numarray.array([[[8.0], [7.0], [8.0], [1.0]], [[7.0], [8.0], [8.0], [1.0]]]),self.functionspace)
3169          val.setTaggedValue(1,numarray.array([[[3.0], [2.0], [1.0], [4.0]], [[1.0], [8.0], [6.0], [5.0]]]))
3170          arg[:2,:,2:]=val
3171          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3172          ref=msk_ref*numarray.array([[[4.0, 4.0, 8.0], [7.0, 6.0, 7.0], [8.0, 1.0, 8.0], [6.0, 1.0, 1.0]], [[4.0, 4.0, 7.0], [2.0, 6.0, 8.0], [3.0, 3.0, 8.0], [4.0, 3.0, 1.0]], [[1.0, 1.0, 4.0], [7.0, 1.0, 6.0], [2.0, 6.0, 6.0], [3.0, 7.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[4.0, 4.0, 3.0], [7.0, 6.0, 2.0], [8.0, 1.0, 1.0], [6.0, 1.0, 4.0]], [[4.0, 4.0, 1.0], [2.0, 6.0, 8.0], [3.0, 3.0, 6.0], [4.0, 3.0, 5.0]], [[1.0, 1.0, 4.0], [7.0, 1.0, 6.0], [2.0, 6.0, 6.0], [3.0, 7.0, 1.0]]])
3173          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3174       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3175       def test_setslice_constData_rank3_taggedData_PUU(self):
3176          arg=Data(numarray.array([[[4.0, 2.0, 5.0], [2.0, 4.0, 1.0], [6.0, 5.0, 4.0], [3.0, 8.0, 3.0]], [[2.0, 1.0, 3.0], [8.0, 5.0, 8.0], [8.0, 4.0, 6.0], [6.0, 7.0, 2.0]], [[3.0, 1.0, 7.0], [8.0, 6.0, 4.0], [6.0, 8.0, 3.0], [1.0, 3.0, 4.0]]]),self.functionspace)
3177          val=Data(numarray.array([[5.0, 2.0], [1.0, 7.0], [7.0, 3.0]]),self.functionspace)
3178          val.setTaggedValue(1,numarray.array([[5.0, 7.0], [6.0, 2.0], [8.0, 1.0]]))
3179          arg[1,:3,:2]=val
3180          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3181          ref=msk_ref*numarray.array([[[4.0, 2.0, 5.0], [2.0, 4.0, 1.0], [6.0, 5.0, 4.0], [3.0, 8.0, 3.0]], [[5.0, 2.0, 3.0], [1.0, 7.0, 8.0], [7.0, 3.0, 6.0], [6.0, 7.0, 2.0]], [[3.0, 1.0, 7.0], [8.0, 6.0, 4.0], [6.0, 8.0, 3.0], [1.0, 3.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[4.0, 2.0, 5.0], [2.0, 4.0, 1.0], [6.0, 5.0, 4.0], [3.0, 8.0, 3.0]], [[5.0, 7.0, 3.0], [6.0, 2.0, 8.0], [8.0, 1.0, 6.0], [6.0, 7.0, 2.0]], [[3.0, 1.0, 7.0], [8.0, 6.0, 4.0], [6.0, 8.0, 3.0], [1.0, 3.0, 4.0]]])
3182          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3183       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3184       def test_setslice_constData_rank3_taggedData_ULR(self):
3185          arg=Data(numarray.array([[[8.0, 4.0, 1.0], [1.0, 5.0, 6.0], [7.0, 6.0, 4.0], [6.0, 6.0, 2.0]], [[3.0, 4.0, 2.0], [4.0, 4.0, 2.0], [3.0, 4.0, 6.0], [4.0, 1.0, 4.0]], [[2.0, 8.0, 3.0], [1.0, 7.0, 5.0], [7.0, 1.0, 3.0], [2.0, 3.0, 8.0]]]),self.functionspace)
3186          val=Data(numarray.array([[[2.0], [7.0]], [[4.0], [8.0]]]),self.functionspace)
3187          val.setTaggedValue(1,numarray.array([[[6.0], [5.0]], [[4.0], [7.0]]]))
3188          arg[:2,2:,1:2]=val
3189          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3190          ref=msk_ref*numarray.array([[[8.0, 4.0, 1.0], [1.0, 5.0, 6.0], [7.0, 2.0, 4.0], [6.0, 7.0, 2.0]], [[3.0, 4.0, 2.0], [4.0, 4.0, 2.0], [3.0, 4.0, 6.0], [4.0, 8.0, 4.0]], [[2.0, 8.0, 3.0], [1.0, 7.0, 5.0], [7.0, 1.0, 3.0], [2.0, 3.0, 8.0]]])+(1.-msk_ref)*numarray.array([[[8.0, 4.0, 1.0], [1.0, 5.0, 6.0], [7.0, 6.0, 4.0], [6.0, 5.0, 2.0]], [[3.0, 4.0, 2.0], [4.0, 4.0, 2.0], [3.0, 4.0, 6.0], [4.0, 7.0, 4.0]], [[2.0, 8.0, 3.0], [1.0, 7.0, 5.0], [7.0, 1.0, 3.0], [2.0, 3.0, 8.0]]])
3191          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3192       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3193       def test_setslice_constData_rank3_taggedData_RUU(self):
3194          arg=Data(numarray.array([[[7.0, 8.0, 2.0], [8.0, 6.0, 1.0], [1.0, 7.0, 8.0], [1.0, 4.0, 2.0]], [[8.0, 5.0, 8.0], [4.0, 8.0, 5.0], [6.0, 1.0, 4.0], [7.0, 8.0, 6.0]], [[7.0, 8.0, 1.0], [6.0, 2.0, 8.0], [4.0, 8.0, 1.0], [1.0, 3.0, 6.0]]]),self.functionspace)
3195          val=Data(numarray.array([[[2.0, 2.0], [7.0, 3.0], [5.0, 4.0]]]),self.functionspace)
3196          val.setTaggedValue(1,numarray.array([[[4.0, 4.0], [6.0, 8.0], [5.0, 7.0]]]))
3197          arg[1:2,:3,:2]=val
3198          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3199          ref=msk_ref*numarray.array([[[7.0, 8.0, 2.0], [8.0, 6.0, 1.0], [1.0, 7.0, 8.0], [1.0, 4.0, 2.0]], [[2.0, 2.0, 8.0], [7.0, 3.0, 5.0], [5.0, 4.0, 4.0], [7.0, 8.0, 6.0]], [[7.0, 8.0, 1.0], [6.0, 2.0, 8.0], [4.0, 8.0, 1.0], [1.0, 3.0, 6.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 8.0, 2.0], [8.0, 6.0, 1.0], [1.0, 7.0, 8.0], [1.0, 4.0, 2.0]], [[4.0, 4.0, 8.0], [6.0, 8.0, 5.0], [5.0, 7.0, 4.0], [7.0, 8.0, 6.0]], [[7.0, 8.0, 1.0], [6.0, 2.0, 8.0], [4.0, 8.0, 1.0], [1.0, 3.0, 6.0]]])
3200          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3201       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3202       def test_setslice_constData_rank3_taggedData_CRR(self):
3203          arg=Data(numarray.array([[[6.0, 4.0, 3.0], [4.0, 5.0, 4.0], [3.0, 3.0, 7.0], [1.0, 1.0, 5.0]], [[5.0, 6.0, 5.0], [4.0, 4.0, 2.0], [8.0, 7.0, 1.0], [8.0, 6.0, 3.0]], [[2.0, 1.0, 7.0], [4.0, 4.0, 2.0], [1.0, 8.0, 5.0], [7.0, 6.0, 1.0]]]),self.functionspace)
3204          val=Data(numarray.array([[[1.0], [1.0]], [[8.0], [7.0]], [[4.0], [2.0]]]),self.functionspace)
3205          val.setTaggedValue(1,numarray.array([[[3.0], [3.0]], [[1.0], [6.0]], [[6.0], [2.0]]]))
3206          arg[:,1:3,1:2]=val
3207          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3208          ref=msk_ref*numarray.array([[[6.0, 4.0, 3.0], [4.0, 1.0, 4.0], [3.0, 1.0, 7.0], [1.0, 1.0, 5.0]], [[5.0, 6.0, 5.0], [4.0, 8.0, 2.0], [8.0, 7.0, 1.0], [8.0, 6.0, 3.0]], [[2.0, 1.0, 7.0], [4.0, 4.0, 2.0], [1.0, 2.0, 5.0], [7.0, 6.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 4.0, 3.0], [4.0, 3.0, 4.0], [3.0, 3.0, 7.0], [1.0, 1.0, 5.0]], [[5.0, 6.0, 5.0], [4.0, 1.0, 2.0], [8.0, 6.0, 1.0], [8.0, 6.0, 3.0]], [[2.0, 1.0, 7.0], [4.0, 6.0, 2.0], [1.0, 2.0, 5.0], [7.0, 6.0, 1.0]]])
3209          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3210       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3211       def test_setslice_constData_rank3_taggedData_LRN(self):
3212          arg=Data(numarray.array([[[2.0, 1.0, 6.0], [7.0, 2.0, 7.0], [5.0, 2.0, 4.0], [2.0, 6.0, 5.0]], [[1.0, 5.0, 8.0], [6.0, 1.0, 4.0], [5.0, 6.0, 3.0], [1.0, 3.0, 7.0]], [[5.0, 7.0, 5.0], [4.0, 3.0, 2.0], [5.0, 6.0, 6.0], [6.0, 1.0, 2.0]]]),self.functionspace)
3213          val=Data(numarray.array([[[4.0, 8.0, 4.0], [1.0, 2.0, 5.0]]]),self.functionspace)
3214          val.setTaggedValue(1,numarray.array([[[6.0, 6.0, 4.0], [3.0, 6.0, 3.0]]]))
3215          arg[2:,1:3]=val
3216          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3217          ref=msk_ref*numarray.array([[[2.0, 1.0, 6.0], [7.0, 2.0, 7.0], [5.0, 2.0, 4.0], [2.0, 6.0, 5.0]], [[1.0, 5.0, 8.0], [6.0, 1.0, 4.0], [5.0, 6.0, 3.0], [1.0, 3.0, 7.0]], [[5.0, 7.0, 5.0], [4.0, 8.0, 4.0], [1.0, 2.0, 5.0], [6.0, 1.0, 2.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 1.0, 6.0], [7.0, 2.0, 7.0], [5.0, 2.0, 4.0], [2.0, 6.0, 5.0]], [[1.0, 5.0, 8.0], [6.0, 1.0, 4.0], [5.0, 6.0, 3.0], [1.0, 3.0, 7.0]], [[5.0, 7.0, 5.0], [6.0, 6.0, 4.0], [3.0, 6.0, 3.0], [6.0, 1.0, 2.0]]])
3218          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3219       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3220       def test_setslice_constData_rank3_taggedData_CRU(self):
3221          arg=Data(numarray.array([[[4.0, 2.0, 1.0], [5.0, 8.0, 6.0], [3.0, 8.0, 7.0], [8.0, 6.0, 5.0]], [[3.0, 2.0, 1.0], [4.0, 1.0, 8.0], [6.0, 8.0, 6.0], [8.0, 3.0, 7.0]], [[8.0, 4.0, 6.0], [4.0, 5.0, 7.0], [8.0, 8.0, 1.0], [8.0, 6.0, 1.0]]]),self.functionspace)
3222          val=Data(numarray.array([[[5.0, 2.0], [2.0, 8.0]], [[1.0, 8.0], [7.0, 1.0]], [[8.0, 2.0], [4.0, 1.0]]]),self.functionspace)
3223          val.setTaggedValue(1,numarray.array([[[2.0, 4.0], [8.0, 2.0]], [[2.0, 6.0], [3.0, 7.0]], [[2.0, 6.0], [7.0, 6.0]]]))
3224          arg[:,1:3,:2]=val
3225          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3226          ref=msk_ref*numarray.array([[[4.0, 2.0, 1.0], [5.0, 2.0, 6.0], [2.0, 8.0, 7.0], [8.0, 6.0, 5.0]], [[3.0, 2.0, 1.0], [1.0, 8.0, 8.0], [7.0, 1.0, 6.0], [8.0, 3.0, 7.0]], [[8.0, 4.0, 6.0], [8.0, 2.0, 7.0], [4.0, 1.0, 1.0], [8.0, 6.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[4.0, 2.0, 1.0], [2.0, 4.0, 6.0], [8.0, 2.0, 7.0], [8.0, 6.0, 5.0]], [[3.0, 2.0, 1.0], [2.0, 6.0, 8.0], [3.0, 7.0, 6.0], [8.0, 3.0, 7.0]], [[8.0, 4.0, 6.0], [2.0, 6.0, 7.0], [7.0, 6.0, 1.0], [8.0, 6.0, 1.0]]])
3227          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3228       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3229       def test_setslice_constData_rank3_taggedData_UCC(self):
3230          arg=Data(numarray.array([[[8.0, 5.0, 8.0], [8.0, 4.0, 3.0], [6.0, 8.0, 3.0], [3.0, 3.0, 1.0]], [[2.0, 4.0, 2.0], [7.0, 5.0, 3.0], [5.0, 5.0, 4.0], [5.0, 8.0, 2.0]], [[4.0, 6.0, 4.0], [3.0, 1.0, 7.0], [5.0, 6.0, 7.0], [3.0, 3.0, 4.0]]]),self.functionspace)
3231          val=Data(numarray.array([[[6.0, 4.0, 8.0], [6.0, 3.0, 5.0], [4.0, 2.0, 1.0], [8.0, 4.0, 2.0]], [[6.0, 3.0, 5.0], [7.0, 1.0, 5.0], [4.0, 8.0, 6.0], [1.0, 3.0, 2.0]]]),self.functionspace)
3232          val.setTaggedValue(1,numarray.array([[[8.0, 3.0, 7.0], [4.0, 6.0, 5.0], [1.0, 5.0, 6.0], [8.0, 3.0, 3.0]], [[1.0, 5.0, 3.0], [7.0, 7.0, 7.0], [4.0, 5.0, 1.0], [4.0, 3.0, 6.0]]]))
3233          arg[:2,:,:]=val
3234          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3235          ref=msk_ref*numarray.array([[[6.0, 4.0, 8.0], [6.0, 3.0, 5.0], [4.0, 2.0, 1.0], [8.0, 4.0, 2.0]], [[6.0, 3.0, 5.0], [7.0, 1.0, 5.0], [4.0, 8.0, 6.0], [1.0, 3.0, 2.0]], [[4.0, 6.0, 4.0], [3.0, 1.0, 7.0], [5.0, 6.0, 7.0], [3.0, 3.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[8.0, 3.0, 7.0], [4.0, 6.0, 5.0], [1.0, 5.0, 6.0], [8.0, 3.0, 3.0]], [[1.0, 5.0, 3.0], [7.0, 7.0, 7.0], [4.0, 5.0, 1.0], [4.0, 3.0, 6.0]], [[4.0, 6.0, 4.0], [3.0, 1.0, 7.0], [5.0, 6.0, 7.0], [3.0, 3.0, 4.0]]])
3236          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3237       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3238       def test_setslice_constData_rank3_taggedData_CPN(self):
3239          arg=Data(numarray.array([[[4.0, 6.0, 4.0], [1.0, 7.0, 1.0], [7.0, 1.0, 8.0], [5.0, 2.0, 8.0]], [[2.0, 4.0, 2.0], [4.0, 4.0, 1.0], [1.0, 4.0, 7.0], [4.0, 7.0, 2.0]], [[2.0, 4.0, 1.0], [4.0, 1.0, 1.0], [4.0, 8.0, 5.0], [7.0, 7.0, 4.0]]]),self.functionspace)
3240          val=Data(numarray.array([[4.0, 6.0, 7.0], [3.0, 2.0, 8.0], [1.0, 2.0, 3.0]]),self.functionspace)
3241          val.setTaggedValue(1,numarray.array([[6.0, 2.0, 2.0], [8.0, 4.0, 2.0], [4.0, 6.0, 8.0]]))
3242          arg[:,2]=val
3243          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3244          ref=msk_ref*numarray.array([[[4.0, 6.0, 4.0], [1.0, 7.0, 1.0], [4.0, 6.0, 7.0], [5.0, 2.0, 8.0]], [[2.0, 4.0, 2.0], [4.0, 4.0, 1.0], [3.0, 2.0, 8.0], [4.0, 7.0, 2.0]], [[2.0, 4.0, 1.0], [4.0, 1.0, 1.0], [1.0, 2.0, 3.0], [7.0, 7.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[4.0, 6.0, 4.0], [1.0, 7.0, 1.0], [6.0, 2.0, 2.0], [5.0, 2.0, 8.0]], [[2.0, 4.0, 2.0], [4.0, 4.0, 1.0], [8.0, 4.0, 2.0], [4.0, 7.0, 2.0]], [[2.0, 4.0, 1.0], [4.0, 1.0, 1.0], [4.0, 6.0, 8.0], [7.0, 7.0, 4.0]]])
3245          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3246       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3247       def test_setslice_constData_rank3_taggedData_PCL(self):
3248          arg=Data(numarray.array([[[7.0, 1.0, 6.0], [7.0, 6.0, 4.0], [1.0, 7.0, 8.0], [4.0, 7.0, 1.0]], [[7.0, 4.0, 6.0], [7.0, 5.0, 2.0], [4.0, 5.0, 1.0], [2.0, 4.0, 2.0]], [[8.0, 1.0, 6.0], [2.0, 3.0, 4.0], [5.0, 2.0, 2.0], [1.0, 4.0, 4.0]]]),self.functionspace)
3249          val=Data(numarray.array([[6.0], [5.0], [6.0], [4.0]]),self.functionspace)
3250          val.setTaggedValue(1,numarray.array([[4.0], [7.0], [8.0], [4.0]]))
3251          arg[1,:,2:]=val
3252          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3253          ref=msk_ref*numarray.array([[[7.0, 1.0, 6.0], [7.0, 6.0, 4.0], [1.0, 7.0, 8.0], [4.0, 7.0, 1.0]], [[7.0, 4.0, 6.0], [7.0, 5.0, 5.0], [4.0, 5.0, 6.0], [2.0, 4.0, 4.0]], [[8.0, 1.0, 6.0], [2.0, 3.0, 4.0], [5.0, 2.0, 2.0], [1.0, 4.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 1.0, 6.0], [7.0, 6.0, 4.0], [1.0, 7.0, 8.0], [4.0, 7.0, 1.0]], [[7.0, 4.0, 4.0], [7.0, 5.0, 7.0], [4.0, 5.0, 8.0], [2.0, 4.0, 4.0]], [[8.0, 1.0, 6.0], [2.0, 3.0, 4.0], [5.0, 2.0, 2.0], [1.0, 4.0, 4.0]]])
3254          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3255       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3256       def test_setslice_constData_rank3_taggedData_RCL(self):
3257          arg=Data(numarray.array([[[7.0, 7.0, 4.0], [2.0, 4.0, 3.0], [2.0, 4.0, 7.0], [7.0, 3.0, 5.0]], [[6.0, 3.0, 3.0], [2.0, 4.0, 4.0], [2.0, 4.0, 3.0], [2.0, 4.0, 5.0]], [[4.0, 6.0, 1.0], [6.0, 7.0, 2.0], [3.0, 2.0, 6.0], [5.0, 1.0, 2.0]]]),self.functionspace)
3258          val=Data(numarray.array([[[3.0], [6.0], [8.0], [7.0]]]),self.functionspace)
3259          val.setTaggedValue(1,numarray.array([[[1.0], [7.0], [4.0], [8.0]]]))
3260          arg[1:2,:,2:]=val
3261          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3262          ref=msk_ref*numarray.array([[[7.0, 7.0, 4.0], [2.0, 4.0, 3.0], [2.0, 4.0, 7.0], [7.0, 3.0, 5.0]], [[6.0, 3.0, 3.0], [2.0, 4.0, 6.0], [2.0, 4.0, 8.0], [2.0, 4.0, 7.0]], [[4.0, 6.0, 1.0], [6.0, 7.0, 2.0], [3.0, 2.0, 6.0], [5.0, 1.0, 2.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 7.0, 4.0], [2.0, 4.0, 3.0], [2.0, 4.0, 7.0], [7.0, 3.0, 5.0]], [[6.0, 3.0, 1.0], [2.0, 4.0, 7.0], [2.0, 4.0, 4.0], [2.0, 4.0, 8.0]], [[4.0, 6.0, 1.0], [6.0, 7.0, 2.0], [3.0, 2.0, 6.0], [5.0, 1.0, 2.0]]])
3263          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3264       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3265       def test_setslice_constData_rank3_taggedData_PPN(self):
3266          arg=Data(numarray.array([[[6.0, 6.0, 1.0], [1.0, 1.0, 6.0], [2.0, 1.0, 5.0], [1.0, 7.0, 5.0]], [[8.0, 5.0, 3.0], [5.0, 1.0, 8.0], [4.0, 6.0, 4.0], [4.0, 4.0, 1.0]], [[8.0, 3.0, 6.0], [8.0, 4.0, 2.0], [8.0, 6.0, 7.0], [5.0, 5.0, 2.0]]]),self.functionspace)
3267          val=Data(numarray.array([2.0, 4.0, 2.0]),self.functionspace)
3268          val.setTaggedValue(1,numarray.array([8.0, 8.0, 1.0]))
3269          arg[1,2]=val
3270          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3271          ref=msk_ref*numarray.array([[[6.0, 6.0, 1.0], [1.0, 1.0, 6.0], [2.0, 1.0, 5.0], [1.0, 7.0, 5.0]], [[8.0, 5.0, 3.0], [5.0, 1.0, 8.0], [2.0, 4.0, 2.0], [4.0, 4.0, 1.0]], [[8.0, 3.0, 6.0], [8.0, 4.0, 2.0], [8.0, 6.0, 7.0], [5.0, 5.0, 2.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 6.0, 1.0], [1.0, 1.0, 6.0], [2.0, 1.0, 5.0], [1.0, 7.0, 5.0]], [[8.0, 5.0, 3.0], [5.0, 1.0, 8.0], [8.0, 8.0, 1.0], [4.0, 4.0, 1.0]], [[8.0, 3.0, 6.0], [8.0, 4.0, 2.0], [8.0, 6.0, 7.0], [5.0, 5.0, 2.0]]])
3272          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3273       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3274       def test_setslice_constData_rank3_taggedData_ULL(self):
3275          arg=Data(numarray.array([[[2.0, 7.0, 3.0], [4.0, 8.0, 2.0], [8.0, 2.0, 5.0], [3.0, 6.0, 8.0]], [[1.0, 2.0, 2.0], [3.0, 7.0, 6.0], [1.0, 8.0, 3.0], [5.0, 5.0, 2.0]], [[7.0, 3.0, 6.0], [8.0, 7.0, 4.0], [2.0, 3.0, 2.0], [5.0, 5.0, 1.0]]]),self.functionspace)
3276          val=Data(numarray.array([[[4.0], [1.0]], [[5.0], [8.0]]]),self.functionspace)
3277          val.setTaggedValue(1,numarray.array([[[3.0], [8.0]], [[7.0], [7.0]]]))
3278          arg[:2,2:,2:]=val
3279          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3280          ref=msk_ref*numarray.array([[[2.0, 7.0, 3.0], [4.0, 8.0, 2.0], [8.0, 2.0, 4.0], [3.0, 6.0, 1.0]], [[1.0, 2.0, 2.0], [3.0, 7.0, 6.0], [1.0, 8.0, 5.0], [5.0, 5.0, 8.0]], [[7.0, 3.0, 6.0], [8.0, 7.0, 4.0], [2.0, 3.0, 2.0], [5.0, 5.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 7.0, 3.0], [4.0, 8.0, 2.0], [8.0, 2.0, 3.0], [3.0, 6.0, 8.0]], [[1.0, 2.0, 2.0], [3.0, 7.0, 6.0], [1.0, 8.0, 7.0], [5.0, 5.0, 7.0]], [[7.0, 3.0, 6.0], [8.0, 7.0, 4.0], [2.0, 3.0, 2.0], [5.0, 5.0, 1.0]]])
3281          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3282       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3283       def test_setslice_constData_rank3_taggedData_UUC(self):
3284          arg=Data(numarray.array([[[1.0, 7.0, 7.0], [4.0, 2.0, 4.0], [4.0, 1.0, 5.0], [3.0, 8.0, 2.0]], [[1.0, 1.0, 6.0], [4.0, 8.0, 1.0], [5.0, 1.0, 2.0], [3.0, 7.0, 5.0]], [[4.0, 5.0, 8.0], [8.0, 2.0, 8.0], [6.0, 5.0, 3.0], [2.0, 3.0, 2.0]]]),self.functionspace)
3285          val=Data(numarray.array([[[4.0, 6.0, 6.0], [8.0, 2.0, 2.0], [7.0, 3.0, 3.0]], [[5.0, 2.0, 1.0], [5.0, 1.0, 3.0], [8.0, 7.0, 8.0]]]),self.functionspace)
3286          val.setTaggedValue(1,numarray.array([[[2.0, 8.0, 1.0], [7.0, 6.0, 5.0], [4.0, 3.0, 4.0]], [[7.0, 7.0, 8.0], [2.0, 3.0, 1.0], [1.0, 1.0, 2.0]]]))
3287          arg[:2,:3,:]=val
3288          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3289          ref=msk_ref*numarray.array([[[4.0, 6.0, 6.0], [8.0, 2.0, 2.0], [7.0, 3.0, 3.0], [3.0, 8.0, 2.0]], [[5.0, 2.0, 1.0], [5.0, 1.0, 3.0], [8.0, 7.0, 8.0], [3.0, 7.0, 5.0]], [[4.0, 5.0, 8.0], [8.0, 2.0, 8.0], [6.0, 5.0, 3.0], [2.0, 3.0, 2.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 8.0, 1.0], [7.0, 6.0, 5.0], [4.0, 3.0, 4.0], [3.0, 8.0, 2.0]], [[7.0, 7.0, 8.0], [2.0, 3.0, 1.0], [1.0, 1.0, 2.0], [3.0, 7.0, 5.0]], [[4.0, 5.0, 8.0], [8.0, 2.0, 8.0], [6.0, 5.0, 3.0], [2.0, 3.0, 2.0]]])
3290          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3291       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3292       def test_setslice_constData_rank3_taggedData_PRC(self):
3293          arg=Data(numarray.array([[[1.0, 2.0, 2.0], [3.0, 7.0, 6.0], [8.0, 6.0, 1.0], [2.0, 6.0, 5.0]], [[3.0, 6.0, 1.0], [6.0, 7.0, 5.0], [1.0, 8.0, 1.0], [3.0, 4.0, 1.0]], [[3.0, 4.0, 8.0], [7.0, 7.0, 1.0], [4.0, 3.0, 8.0], [7.0, 8.0, 3.0]]]),self.functionspace)
3294          val=Data(numarray.array([[7.0, 3.0, 1.0], [8.0, 5.0, 1.0]]),self.functionspace)
3295          val.setTaggedValue(1,numarray.array([[1.0, 6.0, 1.0], [4.0, 2.0, 7.0]]))
3296          arg[1,1:3,:]=val
3297          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3298          ref=msk_ref*numarray.array([[[1.0, 2.0, 2.0], [3.0, 7.0, 6.0], [8.0, 6.0, 1.0], [2.0, 6.0, 5.0]], [[3.0, 6.0, 1.0], [7.0, 3.0, 1.0], [8.0, 5.0, 1.0], [3.0, 4.0, 1.0]], [[3.0, 4.0, 8.0], [7.0, 7.0, 1.0], [4.0, 3.0, 8.0], [7.0, 8.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[1.0, 2.0, 2.0], [3.0, 7.0, 6.0], [8.0, 6.0, 1.0], [2.0, 6.0, 5.0]], [[3.0, 6.0, 1.0], [1.0, 6.0, 1.0], [4.0, 2.0, 7.0], [3.0, 4.0, 1.0]], [[3.0, 4.0, 8.0], [7.0, 7.0, 1.0], [4.0, 3.0, 8.0], [7.0, 8.0, 3.0]]])
3299          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3300       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3301       def test_setslice_constData_rank3_taggedData_PPL(self):
3302          arg=Data(numarray.array([[[6.0, 5.0, 6.0], [8.0, 2.0, 8.0], [1.0, 2.0, 5.0], [3.0, 5.0, 3.0]], [[4.0, 8.0, 5.0], [4.0, 5.0, 1.0], [6.0, 6.0, 7.0], [3.0, 8.0, 8.0]], [[5.0, 1.0, 3.0], [7.0, 2.0, 7.0], [6.0, 8.0, 1.0], [6.0, 3.0, 3.0]]]),self.functionspace)
3303          val=Data(numarray.array([3.0]),self.functionspace)
3304          val.setTaggedValue(1,numarray.array([7.0]))
3305          arg[1,2,2:]=val
3306          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3307          ref=msk_ref*numarray.array([[[6.0, 5.0, 6.0], [8.0, 2.0, 8.0], [1.0, 2.0, 5.0], [3.0, 5.0, 3.0]], [[4.0, 8.0, 5.0], [4.0, 5.0, 1.0], [6.0, 6.0, 3.0], [3.0, 8.0, 8.0]], [[5.0, 1.0, 3.0], [7.0, 2.0, 7.0], [6.0, 8.0, 1.0], [6.0, 3.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 5.0, 6.0], [8.0, 2.0, 8.0], [1.0, 2.0, 5.0], [3.0, 5.0, 3.0]], [[4.0, 8.0, 5.0], [4.0, 5.0, 1.0], [6.0, 6.0, 7.0], [3.0, 8.0, 8.0]], [[5.0, 1.0, 3.0], [7.0, 2.0, 7.0], [6.0, 8.0, 1.0], [6.0, 3.0, 3.0]]])
3308          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3309       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3310       def test_setslice_constData_rank3_taggedData_RLR(self):
3311          arg=Data(numarray.array([[[3.0, 3.0, 1.0], [4.0, 5.0, 8.0], [1.0, 7.0, 2.0], [7.0, 4.0, 8.0]], [[4.0, 5.0, 4.0], [1.0, 8.0, 8.0], [8.0, 2.0, 2.0], [5.0, 4.0, 1.0]], [[2.0, 6.0, 7.0], [6.0, 6.0, 4.0], [8.0, 2.0, 8.0], [3.0, 4.0, 5.0]]]),self.functionspace)
3312          val=Data(numarray.array([[[4.0], [2.0]]]),self.functionspace)
3313          val.setTaggedValue(1,numarray.array([[[5.0], [6.0]]]))
3314          arg[1:2,2:,1:2]=val
3315          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3316          ref=msk_ref*numarray.array([[[3.0, 3.0, 1.0], [4.0, 5.0, 8.0], [1.0, 7.0, 2.0], [7.0, 4.0, 8.0]], [[4.0, 5.0, 4.0], [1.0, 8.0, 8.0], [8.0, 4.0, 2.0], [5.0, 2.0, 1.0]], [[2.0, 6.0, 7.0], [6.0, 6.0, 4.0], [8.0, 2.0, 8.0], [3.0, 4.0, 5.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 3.0, 1.0], [4.0, 5.0, 8.0], [1.0, 7.0, 2.0], [7.0, 4.0, 8.0]], [[4.0, 5.0, 4.0], [1.0, 8.0, 8.0], [8.0, 5.0, 2.0], [5.0, 6.0, 1.0]], [[2.0, 6.0, 7.0], [6.0, 6.0, 4.0], [8.0, 2.0, 8.0], [3.0, 4.0, 5.0]]])
3317          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3318       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3319       def test_setslice_constData_rank3_taggedData_URR(self):
3320          arg=Data(numarray.array([[[1.0, 2.0, 8.0], [2.0, 8.0, 4.0], [1.0, 5.0, 8.0], [3.0, 2.0, 5.0]], [[7.0, 2.0, 6.0], [6.0, 6.0, 1.0], [6.0, 7.0, 1.0], [4.0, 2.0, 5.0]], [[1.0, 7.0, 6.0], [8.0, 6.0, 6.0], [8.0, 1.0, 4.0], [3.0, 4.0, 2.0]]]),self.functionspace)
3321          val=Data(numarray.array([[[6.0], [3.0]], [[7.0], [8.0]]]),self.functionspace)
3322          val.setTaggedValue(1,numarray.array([[[3.0], [6.0]], [[3.0], [8.0]]]))
3323          arg[:2,1:3,1:2]=val
3324          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3325          ref=msk_ref*numarray.array([[[1.0, 2.0, 8.0], [2.0, 6.0, 4.0], [1.0, 3.0, 8.0], [3.0, 2.0, 5.0]], [[7.0, 2.0, 6.0], [6.0, 7.0, 1.0], [6.0, 8.0, 1.0], [4.0, 2.0, 5.0]], [[1.0, 7.0, 6.0], [8.0, 6.0, 6.0], [8.0, 1.0, 4.0], [3.0, 4.0, 2.0]]])+(1.-msk_ref)*numarray.array([[[1.0, 2.0, 8.0], [2.0, 3.0, 4.0], [1.0, 6.0, 8.0], [3.0, 2.0, 5.0]], [[7.0, 2.0, 6.0], [6.0, 3.0, 1.0], [6.0, 8.0, 1.0], [4.0, 2.0, 5.0]], [[1.0, 7.0, 6.0], [8.0, 6.0, 6.0], [8.0, 1.0, 4.0], [3.0, 4.0, 2.0]]])
3326          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3327       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3328       def test_setslice_constData_rank3_taggedData_PRP(self):
3329          arg=Data(numarray.array([[[6.0, 8.0, 8.0], [7.0, 2.0, 7.0], [1.0, 7.0, 5.0], [4.0, 4.0, 4.0]], [[7.0, 8.0, 4.0], [1.0, 8.0, 2.0], [8.0, 2.0, 7.0], [3.0, 4.0, 2.0]], [[1.0, 3.0, 2.0], [1.0, 6.0, 5.0], [6.0, 7.0, 8.0], [2.0, 8.0, 1.0]]]),self.functionspace)
3330          val=Data(numarray.array([8.0, 5.0]),self.functionspace)
3331          val.setTaggedValue(1,numarray.array([4.0, 2.0]))
3332          arg[1,1:3,1]=val
3333          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3334          ref=msk_ref*numarray.array([[[6.0, 8.0, 8.0], [7.0, 2.0, 7.0], [1.0, 7.0, 5.0], [4.0, 4.0, 4.0]], [[7.0, 8.0, 4.0], [1.0, 8.0, 2.0], [8.0, 5.0, 7.0], [3.0, 4.0, 2.0]], [[1.0, 3.0, 2.0], [1.0, 6.0, 5.0], [6.0, 7.0, 8.0], [2.0, 8.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 8.0, 8.0], [7.0, 2.0, 7.0], [1.0, 7.0, 5.0], [4.0, 4.0, 4.0]], [[7.0, 8.0, 4.0], [1.0, 4.0, 2.0], [8.0, 2.0, 7.0], [3.0, 4.0, 2.0]], [[1.0, 3.0, 2.0], [1.0, 6.0, 5.0], [6.0, 7.0, 8.0], [2.0, 8.0, 1.0]]])
3335          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3336       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3337       def test_setslice_constData_rank3_taggedData_UUU(self):
3338          arg=Data(numarray.array([[[4.0, 4.0, 3.0], [2.0, 3.0, 4.0], [1.0, 7.0, 7.0], [2.0, 8.0, 4.0]], [[7.0, 2.0, 2.0], [1.0, 6.0, 3.0], [8.0, 5.0, 4.0], [5.0, 6.0, 5.0]], [[2.0, 6.0, 2.0], [6.0, 5.0, 3.0], [8.0, 8.0, 8.0], [4.0, 7.0, 6.0]]]),self.functionspace)
3339          val=Data(numarray.array([[[3.0, 8.0], [7.0, 3.0], [5.0, 6.0]], [[3.0, 2.0], [1.0, 2.0], [7.0, 3.0]]]),self.functionspace)
3340          val.setTaggedValue(1,numarray.array([[[1.0, 4.0], [6.0, 8.0], [2.0, 7.0]], [[8.0, 5.0], [5.0, 1.0], [2.0, 4.0]]]))
3341          arg[:2,:3,:2]=val
3342          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3343          ref=msk_ref*numarray.array([[[3.0, 8.0, 3.0], [7.0, 3.0, 4.0], [5.0, 6.0, 7.0], [2.0, 8.0, 4.0]], [[3.0, 2.0, 2.0], [1.0, 2.0, 3.0], [7.0, 3.0, 4.0], [5.0, 6.0, 5.0]], [[2.0, 6.0, 2.0], [6.0, 5.0, 3.0], [8.0, 8.0, 8.0], [4.0, 7.0, 6.0]]])+(1.-msk_ref)*numarray.array([[[1.0, 4.0, 3.0], [6.0, 8.0, 4.0], [2.0, 7.0, 7.0], [2.0, 8.0, 4.0]], [[8.0, 5.0, 2.0], [5.0, 1.0, 3.0], [2.0, 4.0, 4.0], [5.0, 6.0, 5.0]], [[2.0, 6.0, 2.0], [6.0, 5.0, 3.0], [8.0, 8.0, 8.0], [4.0, 7.0, 6.0]]])
3344          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3345       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3346       def test_setslice_constData_rank3_taggedData_PRU(self):
3347          arg=Data(numarray.array([[[3.0, 1.0, 5.0], [3.0, 2.0, 2.0], [2.0, 5.0, 3.0], [7.0, 4.0, 6.0]], [[7.0, 2.0, 3.0], [8.0, 4.0, 3.0], [8.0, 6.0, 7.0], [2.0, 6.0, 8.0]], [[6.0, 3.0, 7.0], [4.0, 4.0, 7.0], [3.0, 8.0, 6.0], [2.0, 8.0, 7.0]]]),self.functionspace)
3348          val=Data(numarray.array([[8.0, 6.0], [2.0, 7.0]]),self.functionspace)
3349          val.setTaggedValue(1,numarray.array([[2.0, 5.0], [1.0, 6.0]]))
3350          arg[1,1:3,:2]=val
3351          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3352          ref=msk_ref*numarray.array([[[3.0, 1.0, 5.0], [3.0, 2.0, 2.0], [2.0, 5.0, 3.0], [7.0, 4.0, 6.0]], [[7.0, 2.0, 3.0], [8.0, 6.0, 3.0], [2.0, 7.0, 7.0], [2.0, 6.0, 8.0]], [[6.0, 3.0, 7.0], [4.0, 4.0, 7.0], [3.0, 8.0, 6.0], [2.0, 8.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 1.0, 5.0], [3.0, 2.0, 2.0], [2.0, 5.0, 3.0], [7.0, 4.0, 6.0]], [[7.0, 2.0, 3.0], [2.0, 5.0, 3.0], [1.0, 6.0, 7.0], [2.0, 6.0, 8.0]], [[6.0, 3.0, 7.0], [4.0, 4.0, 7.0], [3.0, 8.0, 6.0], [2.0, 8.0, 7.0]]])
3353          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3354       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3355       def test_setslice_constData_rank3_taggedData_LPC(self):
3356          arg=Data(numarray.array([[[5.0, 8.0, 7.0], [4.0, 2.0, 2.0], [8.0, 8.0, 4.0], [2.0, 7.0, 8.0]], [[1.0, 8.0, 2.0], [2.0, 3.0, 3.0], [2.0, 5.0, 7.0], [7.0, 2.0, 3.0]], [[4.0, 4.0, 3.0], [5.0, 5.0, 6.0], [4.0, 3.0, 7.0], [6.0, 6.0, 3.0]]]),self.functionspace)
3357          val=Data(numarray.array([[7.0, 4.0, 2.0]]),self.functionspace)
3358          val.setTaggedValue(1,numarray.array([[8.0, 3.0, 7.0]]))
3359          arg[2:,2,:]=val
3360          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3361          ref=msk_ref*numarray.array([[[5.0, 8.0, 7.0], [4.0, 2.0, 2.0], [8.0, 8.0, 4.0], [2.0, 7.0, 8.0]], [[1.0, 8.0, 2.0], [2.0, 3.0, 3.0], [2.0, 5.0, 7.0], [7.0, 2.0, 3.0]], [[4.0, 4.0, 3.0], [5.0, 5.0, 6.0], [7.0, 4.0, 2.0], [6.0, 6.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[5.0, 8.0, 7.0], [4.0, 2.0, 2.0], [8.0, 8.0, 4.0], [2.0, 7.0, 8.0]], [[1.0, 8.0, 2.0], [2.0, 3.0, 3.0], [2.0, 5.0, 7.0], [7.0, 2.0, 3.0]], [[4.0, 4.0, 3.0], [5.0, 5.0, 6.0], [8.0, 3.0, 7.0], [6.0, 6.0, 3.0]]])
3362          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3363       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3364       def test_setslice_constData_rank3_taggedData_UCN(self):
3365          arg=Data(numarray.array([[[4.0, 3.0, 4.0], [4.0, 5.0, 7.0], [1.0, 2.0, 6.0], [5.0, 6.0, 6.0]], [[2.0, 1.0, 2.0], [1.0, 1.0, 3.0], [6.0, 4.0, 1.0], [2.0, 1.0, 3.0]], [[4.0, 7.0, 1.0], [6.0, 2.0, 4.0], [1.0, 8.0, 4.0], [7.0, 5.0, 8.0]]]),self.functionspace)
3366          val=Data(numarray.array([[[6.0, 5.0, 1.0], [5.0, 5.0, 3.0], [3.0, 7.0, 3.0], [8.0, 2.0, 4.0]], [[4.0, 3.0, 2.0], [6.0, 2.0, 6.0], [7.0, 4.0, 1.0], [4.0, 5.0, 4.0]]]),self.functionspace)
3367          val.setTaggedValue(1,numarray.array([[[3.0, 5.0, 3.0], [5.0, 6.0, 7.0], [7.0, 7.0, 8.0], [8.0, 1.0, 2.0]], [[1.0, 5.0, 6.0], [8.0, 7.0, 7.0], [8.0, 5.0, 6.0], [2.0, 7.0, 7.0]]]))
3368          arg[:2,:]=val
3369          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3370          ref=msk_ref*numarray.array([[[6.0, 5.0, 1.0], [5.0, 5.0, 3.0], [3.0, 7.0, 3.0], [8.0, 2.0, 4.0]], [[4.0, 3.0, 2.0], [6.0, 2.0, 6.0], [7.0, 4.0, 1.0], [4.0, 5.0, 4.0]], [[4.0, 7.0, 1.0], [6.0, 2.0, 4.0], [1.0, 8.0, 4.0], [7.0, 5.0, 8.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 5.0, 3.0], [5.0, 6.0, 7.0], [7.0, 7.0, 8.0], [8.0, 1.0, 2.0]], [[1.0, 5.0, 6.0], [8.0, 7.0, 7.0], [8.0, 5.0, 6.0], [2.0, 7.0, 7.0]], [[4.0, 7.0, 1.0], [6.0, 2.0, 4.0], [1.0, 8.0, 4.0], [7.0, 5.0, 8.0]]])
3371          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3372       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3373       def test_setslice_constData_rank3_taggedData_RUL(self):
3374          arg=Data(numarray.array([[[6.0, 1.0, 2.0], [3.0, 3.0, 2.0], [5.0, 3.0, 8.0], [5.0, 8.0, 7.0]], [[7.0, 3.0, 2.0], [3.0, 5.0, 1.0], [7.0, 7.0, 4.0], [5.0, 1.0, 1.0]], [[8.0, 8.0, 6.0], [1.0, 7.0, 7.0], [8.0, 5.0, 1.0], [3.0, 7.0, 3.0]]]),self.functionspace)
3375          val=Data(numarray.array([[[3.0], [4.0], [5.0]]]),self.functionspace)
3376          val.setTaggedValue(1,numarray.array([[[4.0], [1.0], [3.0]]]))
3377          arg[1:2,:3,2:]=val
3378          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3379          ref=msk_ref*numarray.array([[[6.0, 1.0, 2.0], [3.0, 3.0, 2.0], [5.0, 3.0, 8.0], [5.0, 8.0, 7.0]], [[7.0, 3.0, 3.0], [3.0, 5.0, 4.0], [7.0, 7.0, 5.0], [5.0, 1.0, 1.0]], [[8.0, 8.0, 6.0], [1.0, 7.0, 7.0], [8.0, 5.0, 1.0], [3.0, 7.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 1.0, 2.0], [3.0, 3.0, 2.0], [5.0, 3.0, 8.0], [5.0, 8.0, 7.0]], [[7.0, 3.0, 4.0], [3.0, 5.0, 1.0], [7.0, 7.0, 3.0], [5.0, 1.0, 1.0]], [[8.0, 8.0, 6.0], [1.0, 7.0, 7.0], [8.0, 5.0, 1.0], [3.0, 7.0, 3.0]]])
3380          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3381       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3382       def test_setslice_constData_rank3_taggedData_ULU(self):
3383          arg=Data(numarray.array([[[7.0, 1.0, 3.0], [5.0, 3.0, 3.0], [7.0, 6.0, 2.0], [3.0, 4.0, 8.0]], [[2.0, 3.0, 6.0], [3.0, 6.0, 7.0], [1.0, 5.0, 6.0], [6.0, 5.0, 6.0]], [[4.0, 5.0, 4.0], [5.0, 1.0, 7.0], [8.0, 5.0, 3.0], [7.0, 4.0, 4.0]]]),self.functionspace)
3384          val=Data(numarray.array([[[2.0, 4.0], [2.0, 1.0]], [[7.0, 5.0], [7.0, 8.0]]]),self.functionspace)
3385          val.setTaggedValue(1,numarray.array([[[6.0, 2.0], [1.0, 5.0]], [[3.0, 5.0], [7.0, 3.0]]]))
3386          arg[:2,2:,:2]=val
3387          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3388          ref=msk_ref*numarray.array([[[7.0, 1.0, 3.0], [5.0, 3.0, 3.0], [2.0, 4.0, 2.0], [2.0, 1.0, 8.0]], [[2.0, 3.0, 6.0], [3.0, 6.0, 7.0], [7.0, 5.0, 6.0], [7.0, 8.0, 6.0]], [[4.0, 5.0, 4.0], [5.0, 1.0, 7.0], [8.0, 5.0, 3.0], [7.0, 4.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 1.0, 3.0], [5.0, 3.0, 3.0], [6.0, 2.0, 2.0], [1.0, 5.0, 8.0]], [[2.0, 3.0, 6.0], [3.0, 6.0, 7.0], [3.0, 5.0, 6.0], [7.0, 3.0, 6.0]], [[4.0, 5.0, 4.0], [5.0, 1.0, 7.0], [8.0, 5.0, 3.0], [7.0, 4.0, 4.0]]])
3389          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3390       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3391       def test_setslice_constData_rank3_taggedData_RRP(self):
3392          arg=Data(numarray.array([[[7.0, 3.0, 6.0], [7.0, 6.0, 6.0], [6.0, 6.0, 5.0], [5.0, 3.0, 8.0]], [[3.0, 4.0, 6.0], [1.0, 2.0, 2.0], [1.0, 8.0, 5.0], [7.0, 3.0, 8.0]], [[1.0, 6.0, 1.0], [4.0, 6.0, 1.0], [3.0, 1.0, 7.0], [4.0, 4.0, 7.0]]]),self.functionspace)
3393          val=Data(numarray.array([[4.0, 2.0]]),self.functionspace)
3394          val.setTaggedValue(1,numarray.array([[8.0, 3.0]]))
3395          arg[1:2,1:3,1]=val
3396          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3397          ref=msk_ref*numarray.array([[[7.0, 3.0, 6.0], [7.0, 6.0, 6.0], [6.0, 6.0, 5.0], [5.0, 3.0, 8.0]], [[3.0, 4.0, 6.0], [1.0, 4.0, 2.0], [1.0, 2.0, 5.0], [7.0, 3.0, 8.0]], [[1.0, 6.0, 1.0], [4.0, 6.0, 1.0], [3.0, 1.0, 7.0], [4.0, 4.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 3.0, 6.0], [7.0, 6.0, 6.0], [6.0, 6.0, 5.0], [5.0, 3.0, 8.0]], [[3.0, 4.0, 6.0], [1.0, 8.0, 2.0], [1.0, 3.0, 5.0], [7.0, 3.0, 8.0]], [[1.0, 6.0, 1.0], [4.0, 6.0, 1.0], [3.0, 1.0, 7.0], [4.0, 4.0, 7.0]]])
3398          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3399       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3400       def test_setslice_constData_rank3_taggedData_RPN(self):
3401          arg=Data(numarray.array([[[8.0, 5.0, 4.0], [1.0, 7.0, 5.0], [2.0, 1.0, 6.0], [4.0, 3.0, 1.0]], [[8.0, 5.0, 6.0], [6.0, 1.0, 2.0], [6.0, 2.0, 8.0], [4.0, 2.0, 1.0]], [[5.0, 7.0, 5.0], [6.0, 5.0, 8.0], [4.0, 2.0, 1.0], [2.0, 8.0, 4.0]]]),self.functionspace)
3402          val=Data(numarray.array([[1.0, 6.0, 2.0]]),self.functionspace)
3403          val.setTaggedValue(1,numarray.array([[8.0, 5.0, 6.0]]))
3404          arg[1:2,2]=val
3405          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3406          ref=msk_ref*numarray.array([[[8.0, 5.0, 4.0], [1.0, 7.0, 5.0], [2.0, 1.0, 6.0], [4.0, 3.0, 1.0]], [[8.0, 5.0, 6.0], [6.0, 1.0, 2.0], [1.0, 6.0, 2.0], [4.0, 2.0, 1.0]], [[5.0, 7.0, 5.0], [6.0, 5.0, 8.0], [4.0, 2.0, 1.0], [2.0, 8.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[8.0, 5.0, 4.0], [1.0, 7.0, 5.0], [2.0, 1.0, 6.0], [4.0, 3.0, 1.0]], [[8.0, 5.0, 6.0], [6.0, 1.0, 2.0], [8.0, 5.0, 6.0], [4.0, 2.0, 1.0]], [[5.0, 7.0, 5.0], [6.0, 5.0, 8.0], [4.0, 2.0, 1.0], [2.0, 8.0, 4.0]]])
3407          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3408       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3409       def test_setslice_constData_rank3_taggedData_PRN(self):
3410          arg=Data(numarray.array([[[1.0, 6.0, 7.0], [8.0, 2.0, 5.0], [3.0, 1.0, 3.0], [1.0, 7.0, 2.0]], [[1.0, 8.0, 5.0], [4.0, 4.0, 5.0], [4.0, 6.0, 7.0], [5.0, 6.0, 4.0]], [[4.0, 1.0, 8.0], [7.0, 4.0, 6.0], [7.0, 4.0, 5.0], [8.0, 1.0, 3.0]]]),self.functionspace)
3411          val=Data(numarray.array([[1.0, 8.0, 4.0], [1.0, 2.0, 4.0]]),self.functionspace)
3412          val.setTaggedValue(1,numarray.array([[6.0, 5.0, 7.0], [1.0, 4.0, 2.0]]))
3413          arg[1,1:3]=val
3414          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3415          ref=msk_ref*numarray.array([[[1.0, 6.0, 7.0], [8.0, 2.0, 5.0], [3.0, 1.0, 3.0], [1.0, 7.0, 2.0]], [[1.0, 8.0, 5.0], [1.0, 8.0, 4.0], [1.0, 2.0, 4.0], [5.0, 6.0, 4.0]], [[4.0, 1.0, 8.0], [7.0, 4.0, 6.0], [7.0, 4.0, 5.0], [8.0, 1.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[1.0, 6.0, 7.0], [8.0, 2.0, 5.0], [3.0, 1.0, 3.0], [1.0, 7.0, 2.0]], [[1.0, 8.0, 5.0], [6.0, 5.0, 7.0], [1.0, 4.0, 2.0], [5.0, 6.0, 4.0]], [[4.0, 1.0, 8.0], [7.0, 4.0, 6.0], [7.0, 4.0, 5.0], [8.0, 1.0, 3.0]]])
3416          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3417       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3418       def test_setslice_constData_rank3_taggedData_LLR(self):
3419          arg=Data(numarray.array([[[3.0, 6.0, 1.0], [7.0, 8.0, 2.0], [5.0, 1.0, 8.0], [2.0, 7.0, 1.0]], [[6.0, 7.0, 2.0], [2.0, 8.0, 2.0], [3.0, 1.0, 4.0], [8.0, 5.0, 2.0]], [[7.0, 4.0, 3.0], [4.0, 7.0, 7.0], [2.0, 4.0, 2.0], [7.0, 3.0, 5.0]]]),self.functionspace)
3420          val=Data(numarray.array([[[2.0], [3.0]]]),self.functionspace)
3421          val.setTaggedValue(1,numarray.array([[[4.0], [7.0]]]))
3422          arg[2:,2:,1:2]=val
3423          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3424          ref=msk_ref*numarray.array([[[3.0, 6.0, 1.0], [7.0, 8.0, 2.0], [5.0, 1.0, 8.0], [2.0, 7.0, 1.0]], [[6.0, 7.0, 2.0], [2.0, 8.0, 2.0], [3.0, 1.0, 4.0], [8.0, 5.0, 2.0]], [[7.0, 4.0, 3.0], [4.0, 7.0, 7.0], [2.0, 2.0, 2.0], [7.0, 3.0, 5.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 6.0, 1.0], [7.0, 8.0, 2.0], [5.0, 1.0, 8.0], [2.0, 7.0, 1.0]], [[6.0, 7.0, 2.0], [2.0, 8.0, 2.0], [3.0, 1.0, 4.0], [8.0, 5.0, 2.0]], [[7.0, 4.0, 3.0], [4.0, 7.0, 7.0], [2.0, 4.0, 2.0], [7.0, 7.0, 5.0]]])
3425          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3426       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3427       def test_setslice_constData_rank3_taggedData_CCP(self):
3428          arg=Data(numarray.array([[[2.0, 1.0, 2.0], [2.0, 7.0, 6.0], [1.0, 4.0, 3.0], [4.0, 1.0, 4.0]], [[2.0, 1.0, 3.0], [8.0, 3.0, 8.0], [5.0, 1.0, 5.0], [6.0, 8.0, 4.0]], [[1.0, 2.0, 4.0], [5.0, 5.0, 3.0], [6.0, 7.0, 6.0], [8.0, 4.0, 5.0]]]),self.functionspace)
3429          val=Data(numarray.array([[5.0, 5.0, 2.0, 3.0], [2.0, 6.0, 6.0, 1.0], [3.0, 2.0, 6.0, 4.0]]),self.functionspace)
3430          val.setTaggedValue(1,numarray.array([[2.0, 4.0, 4.0, 3.0], [7.0, 4.0, 5.0, 4.0], [5.0, 2.0, 4.0, 7.0]]))
3431          arg[:,:,1]=val
3432          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3433          ref=msk_ref*numarray.array([[[2.0, 5.0, 2.0], [2.0, 5.0, 6.0], [1.0, 2.0, 3.0], [4.0, 3.0, 4.0]], [[2.0, 2.0, 3.0], [8.0, 6.0, 8.0], [5.0, 6.0, 5.0], [6.0, 1.0, 4.0]], [[1.0, 3.0, 4.0], [5.0, 2.0, 3.0], [6.0, 6.0, 6.0], [8.0, 4.0, 5.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 2.0, 2.0], [2.0, 4.0, 6.0], [1.0, 4.0, 3.0], [4.0, 3.0, 4.0]], [[2.0, 7.0, 3.0], [8.0, 4.0, 8.0], [5.0, 5.0, 5.0], [6.0, 4.0, 4.0]], [[1.0, 5.0, 4.0], [5.0, 2.0, 3.0], [6.0, 4.0, 6.0], [8.0, 7.0, 5.0]]])
3434          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3435       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3436       def test_setslice_constData_rank3_taggedData_UPR(self):
3437          arg=Data(numarray.array([[[6.0, 8.0, 7.0], [4.0, 3.0, 5.0], [1.0, 5.0, 5.0], [4.0, 6.0, 4.0]], [[5.0, 7.0, 3.0], [5.0, 3.0, 3.0], [7.0, 2.0, 6.0], [3.0, 1.0, 8.0]], [[1.0, 1.0, 4.0], [3.0, 4.0, 4.0], [1.0, 7.0, 7.0], [6.0, 3.0, 5.0]]]),self.functionspace)
3438          val=Data(numarray.array([[4.0], [1.0]]),self.functionspace)
3439          val.setTaggedValue(1,numarray.array([[2.0], [3.0]]))
3440          arg[:2,2,1:2]=val
3441          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3442          ref=msk_ref*numarray.array([[[6.0, 8.0, 7.0], [4.0, 3.0, 5.0], [1.0, 4.0, 5.0], [4.0, 6.0, 4.0]], [[5.0, 7.0, 3.0], [5.0, 3.0, 3.0], [7.0, 1.0, 6.0], [3.0, 1.0, 8.0]], [[1.0, 1.0, 4.0], [3.0, 4.0, 4.0], [1.0, 7.0, 7.0], [6.0, 3.0, 5.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 8.0, 7.0], [4.0, 3.0, 5.0], [1.0, 2.0, 5.0], [4.0, 6.0, 4.0]], [[5.0, 7.0, 3.0], [5.0, 3.0, 3.0], [7.0, 3.0, 6.0], [3.0, 1.0, 8.0]], [[1.0, 1.0, 4.0], [3.0, 4.0, 4.0], [1.0, 7.0, 7.0], [6.0, 3.0, 5.0]]])
3443          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3444       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3445       def test_setslice_constData_rank3_taggedData_PCN(self):
3446          arg=Data(numarray.array([[[1.0, 7.0, 7.0], [7.0, 8.0, 6.0], [3.0, 8.0, 5.0], [5.0, 1.0, 5.0]], [[3.0, 8.0, 6.0], [5.0, 6.0, 1.0], [3.0, 7.0, 1.0], [4.0, 2.0, 1.0]], [[2.0, 1.0, 7.0], [8.0, 5.0, 5.0], [1.0, 7.0, 4.0], [5.0, 2.0, 3.0]]]),self.functionspace)
3447          val=Data(numarray.array([[7.0, 5.0, 4.0], [4.0, 6.0, 5.0], [2.0, 5.0, 4.0], [4.0, 5.0, 5.0]]),self.functionspace)
3448          val.setTaggedValue(1,numarray.array([[6.0, 7.0, 6.0], [8.0, 3.0, 5.0], [7.0, 8.0, 2.0], [6.0, 2.0, 3.0]]))
3449          arg[1,:]=val
3450          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3451          ref=msk_ref*numarray.array([[[1.0, 7.0, 7.0], [7.0, 8.0, 6.0], [3.0, 8.0, 5.0], [5.0, 1.0, 5.0]], [[7.0, 5.0, 4.0], [4.0, 6.0, 5.0], [2.0, 5.0, 4.0], [4.0, 5.0, 5.0]], [[2.0, 1.0, 7.0], [8.0, 5.0, 5.0], [1.0, 7.0, 4.0], [5.0, 2.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[1.0, 7.0, 7.0], [7.0, 8.0, 6.0], [3.0, 8.0, 5.0], [5.0, 1.0, 5.0]], [[6.0, 7.0, 6.0], [8.0, 3.0, 5.0], [7.0, 8.0, 2.0], [6.0, 2.0, 3.0]], [[2.0, 1.0, 7.0], [8.0, 5.0, 5.0], [1.0, 7.0, 4.0], [5.0, 2.0, 3.0]]])
3452          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3453       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3454       def test_setslice_constData_rank3_taggedData_PPC(self):
3455          arg=Data(numarray.array([[[3.0, 7.0, 2.0], [8.0, 5.0, 1.0], [3.0, 5.0, 3.0], [8.0, 4.0, 4.0]], [[5.0, 6.0, 7.0], [2.0, 2.0, 7.0], [3.0, 5.0, 5.0], [1.0, 4.0, 3.0]], [[1.0, 7.0, 2.0], [2.0, 7.0, 6.0], [8.0, 1.0, 3.0], [5.0, 3.0, 5.0]]]),self.functionspace)
3456          val=Data(numarray.array([5.0, 2.0, 4.0]),self.functionspace)
3457          val.setTaggedValue(1,numarray.array([5.0, 2.0, 2.0]))
3458          arg[1,2,:]=val
3459          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3460          ref=msk_ref*numarray.array([[[3.0, 7.0, 2.0], [8.0, 5.0, 1.0], [3.0, 5.0, 3.0], [8.0, 4.0, 4.0]], [[5.0, 6.0, 7.0], [2.0, 2.0, 7.0], [5.0, 2.0, 4.0], [1.0, 4.0, 3.0]], [[1.0, 7.0, 2.0], [2.0, 7.0, 6.0], [8.0, 1.0, 3.0], [5.0, 3.0, 5.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 7.0, 2.0], [8.0, 5.0, 1.0], [3.0, 5.0, 3.0], [8.0, 4.0, 4.0]], [[5.0, 6.0, 7.0], [2.0, 2.0, 7.0], [5.0, 2.0, 2.0], [1.0, 4.0, 3.0]], [[1.0, 7.0, 2.0], [2.0, 7.0, 6.0], [8.0, 1.0, 3.0], [5.0, 3.0, 5.0]]])
3461          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3462       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3463       def test_setslice_constData_rank3_taggedData_CPU(self):
3464          arg=Data(numarray.array([[[5.0, 3.0, 2.0], [6.0, 2.0, 7.0], [8.0, 6.0, 1.0], [6.0, 8.0, 7.0]], [[3.0, 8.0, 4.0], [2.0, 4.0, 3.0], [8.0, 1.0, 7.0], [2.0, 8.0, 4.0]], [[2.0, 8.0, 8.0], [8.0, 8.0, 4.0], [7.0, 2.0, 1.0], [2.0, 8.0, 3.0]]]),self.functionspace)
3465          val=Data(numarray.array([[4.0, 6.0], [5.0, 5.0], [3.0, 1.0]]),self.functionspace)
3466          val.setTaggedValue(1,numarray.array([[8.0, 1.0], [6.0, 4.0], [2.0, 2.0]]))
3467          arg[:,2,:2]=val
3468          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3469          ref=msk_ref*numarray.array([[[5.0, 3.0, 2.0], [6.0, 2.0, 7.0], [4.0, 6.0, 1.0], [6.0, 8.0, 7.0]], [[3.0, 8.0, 4.0], [2.0, 4.0, 3.0], [5.0, 5.0, 7.0], [2.0, 8.0, 4.0]], [[2.0, 8.0, 8.0], [8.0, 8.0, 4.0], [3.0, 1.0, 1.0], [2.0, 8.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[5.0, 3.0, 2.0], [6.0, 2.0, 7.0], [8.0, 1.0, 1.0], [6.0, 8.0, 7.0]], [[3.0, 8.0, 4.0], [2.0, 4.0, 3.0], [6.0, 4.0, 7.0], [2.0, 8.0, 4.0]], [[2.0, 8.0, 8.0], [8.0, 8.0, 4.0], [2.0, 2.0, 1.0], [2.0, 8.0, 3.0]]])
3470          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3471       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3472       def test_setslice_constData_rank3_taggedData_CCL(self):
3473          arg=Data(numarray.array([[[5.0, 3.0, 7.0], [6.0, 5.0, 6.0], [1.0, 5.0, 2.0], [8.0, 5.0, 1.0]], [[6.0, 3.0, 1.0], [7.0, 4.0, 4.0], [3.0, 3.0, 5.0], [4.0, 4.0, 8.0]], [[1.0, 1.0, 2.0], [4.0, 5.0, 6.0], [4.0, 7.0, 2.0], [5.0, 3.0, 4.0]]]),self.functionspace)
3474          val=Data(numarray.array([[[3.0], [7.0], [1.0], [1.0]], [[5.0], [5.0], [2.0], [7.0]], [[5.0], [8.0], [5.0], [8.0]]]),self.functionspace)
3475          val.setTaggedValue(1,numarray.array([[[6.0], [7.0], [2.0], [3.0]], [[6.0], [7.0], [7.0], [8.0]], [[8.0], [2.0], [1.0], [8.0]]]))
3476          arg[:,:,2:]=val
3477          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3478          ref=msk_ref*numarray.array([[[5.0, 3.0, 3.0], [6.0, 5.0, 7.0], [1.0, 5.0, 1.0], [8.0, 5.0, 1.0]], [[6.0, 3.0, 5.0], [7.0, 4.0, 5.0], [3.0, 3.0, 2.0], [4.0, 4.0, 7.0]], [[1.0, 1.0, 5.0], [4.0, 5.0, 8.0], [4.0, 7.0, 5.0], [5.0, 3.0, 8.0]]])+(1.-msk_ref)*numarray.array([[[5.0, 3.0, 6.0], [6.0, 5.0, 7.0], [1.0, 5.0, 2.0], [8.0, 5.0, 3.0]], [[6.0, 3.0, 6.0], [7.0, 4.0, 7.0], [3.0, 3.0, 7.0], [4.0, 4.0, 8.0]], [[1.0, 1.0, 8.0], [4.0, 5.0, 2.0], [4.0, 7.0, 1.0], [5.0, 3.0, 8.0]]])
3479          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3480       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3481       def test_setslice_constData_rank3_taggedData_LCN(self):
3482          arg=Data(numarray.array([[[6.0, 6.0, 6.0], [4.0, 4.0, 8.0], [6.0, 5.0, 7.0], [6.0, 7.0, 7.0]], [[6.0, 6.0, 6.0], [8.0, 7.0, 1.0], [5.0, 8.0, 8.0], [4.0, 5.0, 2.0]], [[7.0, 4.0, 2.0], [8.0, 4.0, 1.0], [3.0, 1.0, 7.0], [6.0, 3.0, 2.0]]]),self.functionspace)
3483          val=Data(numarray.array([[[8.0, 3.0, 5.0], [1.0, 4.0, 5.0], [2.0, 6.0, 6.0], [3.0, 2.0, 2.0]]]),self.functionspace)
3484          val.setTaggedValue(1,numarray.array([[[8.0, 4.0, 2.0], [4.0, 8.0, 7.0], [8.0, 1.0, 3.0], [3.0, 7.0, 2.0]]]))
3485          arg[2:,:]=val
3486          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3487          ref=msk_ref*numarray.array([[[6.0, 6.0, 6.0], [4.0, 4.0, 8.0], [6.0, 5.0, 7.0], [6.0, 7.0, 7.0]], [[6.0, 6.0, 6.0], [8.0, 7.0, 1.0], [5.0, 8.0, 8.0], [4.0, 5.0, 2.0]], [[8.0, 3.0, 5.0], [1.0, 4.0, 5.0], [2.0, 6.0, 6.0], [3.0, 2.0, 2.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 6.0, 6.0], [4.0, 4.0, 8.0], [6.0, 5.0, 7.0], [6.0, 7.0, 7.0]], [[6.0, 6.0, 6.0], [8.0, 7.0, 1.0], [5.0, 8.0, 8.0], [4.0, 5.0, 2.0]], [[8.0, 4.0, 2.0], [4.0, 8.0, 7.0], [8.0, 1.0, 3.0], [3.0, 7.0, 2.0]]])
3488          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3489       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3490       def test_setslice_constData_rank3_taggedData_CPR(self):
3491          arg=Data(numarray.array([[[7.0, 6.0, 3.0], [6.0, 2.0, 2.0], [7.0, 7.0, 6.0], [4.0, 4.0, 5.0]], [[8.0, 2.0, 4.0], [5.0, 3.0, 1.0], [5.0, 3.0, 2.0], [4.0, 6.0, 2.0]], [[4.0, 1.0, 6.0], [4.0, 2.0, 6.0], [5.0, 1.0, 3.0], [1.0, 2.0, 8.0]]]),self.functionspace)
3492          val=Data(numarray.array([[3.0], [4.0], [6.0]]),self.functionspace)
3493          val.setTaggedValue(1,numarray.array([[5.0], [2.0], [6.0]]))
3494          arg[:,2,1:2]=val
3495          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3496          ref=msk_ref*numarray.array([[[7.0, 6.0, 3.0], [6.0, 2.0, 2.0], [7.0, 3.0, 6.0], [4.0, 4.0, 5.0]], [[8.0, 2.0, 4.0], [5.0, 3.0, 1.0], [5.0, 4.0, 2.0], [4.0, 6.0, 2.0]], [[4.0, 1.0, 6.0], [4.0, 2.0, 6.0], [5.0, 6.0, 3.0], [1.0, 2.0, 8.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 6.0, 3.0], [6.0, 2.0, 2.0], [7.0, 5.0, 6.0], [4.0, 4.0, 5.0]], [[8.0, 2.0, 4.0], [5.0, 3.0, 1.0], [5.0, 2.0, 2.0], [4.0, 6.0, 2.0]], [[4.0, 1.0, 6.0], [4.0, 2.0, 6.0], [5.0, 6.0, 3.0], [1.0, 2.0, 8.0]]])
3497          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3498       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3499       def test_setslice_constData_rank3_taggedData_UPN(self):
3500          arg=Data(numarray.array([[[6.0, 8.0, 2.0], [1.0, 8.0, 6.0], [4.0, 4.0, 2.0], [8.0, 8.0, 8.0]], [[4.0, 8.0, 8.0], [7.0, 5.0, 1.0], [3.0, 1.0, 8.0], [2.0, 2.0, 1.0]], [[4.0, 3.0, 1.0], [6.0, 8.0, 8.0], [7.0, 4.0, 1.0], [7.0, 3.0, 3.0]]]),self.functionspace)
3501          val=Data(numarray.array([[8.0, 1.0, 3.0], [7.0, 5.0, 6.0]]),self.functionspace)
3502          val.setTaggedValue(1,numarray.array([[3.0, 2.0, 4.0], [8.0, 2.0, 2.0]]))
3503          arg[:2,2]=val
3504          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3505          ref=msk_ref*numarray.array([[[6.0, 8.0, 2.0], [1.0, 8.0, 6.0], [8.0, 1.0, 3.0], [8.0, 8.0, 8.0]], [[4.0, 8.0, 8.0], [7.0, 5.0, 1.0], [7.0, 5.0, 6.0], [2.0, 2.0, 1.0]], [[4.0, 3.0, 1.0], [6.0, 8.0, 8.0], [7.0, 4.0, 1.0], [7.0, 3.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 8.0, 2.0], [1.0, 8.0, 6.0], [3.0, 2.0, 4.0], [8.0, 8.0, 8.0]], [[4.0, 8.0, 8.0], [7.0, 5.0, 1.0], [8.0, 2.0, 2.0], [2.0, 2.0, 1.0]], [[4.0, 3.0, 1.0], [6.0, 8.0, 8.0], [7.0, 4.0, 1.0], [7.0, 3.0, 3.0]]])
3506          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3507       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3508       def test_setslice_constData_rank3_taggedData_LUC(self):
3509          arg=Data(numarray.array([[[8.0, 1.0, 7.0], [7.0, 7.0, 8.0], [5.0, 2.0, 7.0], [2.0, 1.0, 7.0]], [[6.0, 1.0, 3.0], [8.0, 6.0, 8.0], [1.0, 8.0, 4.0], [3.0, 2.0, 6.0]], [[7.0, 1.0, 5.0], [6.0, 1.0, 6.0], [4.0, 4.0, 2.0], [7.0, 2.0, 7.0]]]),self.functionspace)
3510          val=Data(numarray.array([[[4.0, 1.0, 7.0], [1.0, 6.0, 5.0], [8.0, 3.0, 1.0]]]),self.functionspace)
3511          val.setTaggedValue(1,numarray.array([[[1.0, 7.0, 7.0], [5.0, 4.0, 5.0], [3.0, 3.0, 1.0]]]))
3512          arg[2:,:3,:]=val
3513          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3514          ref=msk_ref*numarray.array([[[8.0, 1.0, 7.0], [7.0, 7.0, 8.0], [5.0, 2.0, 7.0], [2.0, 1.0, 7.0]], [[6.0, 1.0, 3.0], [8.0, 6.0, 8.0], [1.0, 8.0, 4.0], [3.0, 2.0, 6.0]], [[4.0, 1.0, 7.0], [1.0, 6.0, 5.0], [8.0, 3.0, 1.0], [7.0, 2.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[8.0, 1.0, 7.0], [7.0, 7.0, 8.0], [5.0, 2.0, 7.0], [2.0, 1.0, 7.0]], [[6.0, 1.0, 3.0], [8.0, 6.0, 8.0], [1.0, 8.0, 4.0], [3.0, 2.0, 6.0]], [[1.0, 7.0, 7.0], [5.0, 4.0, 5.0], [3.0, 3.0, 1.0], [7.0, 2.0, 7.0]]])
3515          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3516       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3517       def test_setslice_constData_rank3_taggedData_LLN(self):
3518          arg=Data(numarray.array([[[8.0, 8.0, 4.0], [3.0, 6.0, 4.0], [8.0, 2.0, 2.0], [7.0, 3.0, 1.0]], [[6.0, 8.0, 2.0], [8.0, 1.0, 5.0], [6.0, 6.0, 7.0], [3.0, 8.0, 1.0]], [[6.0, 2.0, 8.0], [1.0, 4.0, 5.0], [4.0, 6.0, 6.0], [6.0, 2.0, 8.0]]]),self.functionspace)
3519          val=Data(numarray.array([[[4.0, 5.0, 8.0], [2.0, 2.0, 4.0]]]),self.functionspace)
3520          val.setTaggedValue(1,numarray.array([[[8.0, 2.0, 6.0], [6.0, 2.0, 1.0]]]))
3521          arg[2:,2:]=val
3522          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3523          ref=msk_ref*numarray.array([[[8.0, 8.0, 4.0], [3.0, 6.0, 4.0], [8.0, 2.0, 2.0], [7.0, 3.0, 1.0]], [[6.0, 8.0, 2.0], [8.0, 1.0, 5.0], [6.0, 6.0, 7.0], [3.0, 8.0, 1.0]], [[6.0, 2.0, 8.0], [1.0, 4.0, 5.0], [4.0, 5.0, 8.0], [2.0, 2.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[8.0, 8.0, 4.0], [3.0, 6.0, 4.0], [8.0, 2.0, 2.0], [7.0, 3.0, 1.0]], [[6.0, 8.0, 2.0], [8.0, 1.0, 5.0], [6.0, 6.0, 7.0], [3.0, 8.0, 1.0]], [[6.0, 2.0, 8.0], [1.0, 4.0, 5.0], [8.0, 2.0, 6.0], [6.0, 2.0, 1.0]]])
3524          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3525       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3526       def test_setslice_constData_rank3_taggedData_RPL(self):
3527          arg=Data(numarray.array([[[4.0, 2.0, 6.0], [1.0, 8.0, 7.0], [5.0, 3.0, 5.0], [1.0, 2.0, 6.0]], [[4.0, 4.0, 3.0], [6.0, 5.0, 5.0], [6.0, 1.0, 7.0], [4.0, 7.0, 3.0]], [[1.0, 4.0, 6.0], [8.0, 3.0, 7.0], [8.0, 8.0, 6.0], [5.0, 5.0, 3.0]]]),self.functionspace)
3528          val=Data(numarray.array([[3.0]]),self.functionspace)
3529          val.setTaggedValue(1,numarray.array([[5.0]]))
3530          arg[1:2,2,2:]=val
3531          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3532          ref=msk_ref*numarray.array([[[4.0, 2.0, 6.0], [1.0, 8.0, 7.0], [5.0, 3.0, 5.0], [1.0, 2.0, 6.0]], [[4.0, 4.0, 3.0], [6.0, 5.0, 5.0], [6.0, 1.0, 3.0], [4.0, 7.0, 3.0]], [[1.0, 4.0, 6.0], [8.0, 3.0, 7.0], [8.0, 8.0, 6.0], [5.0, 5.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[4.0, 2.0, 6.0], [1.0, 8.0, 7.0], [5.0, 3.0, 5.0], [1.0, 2.0, 6.0]], [[4.0, 4.0, 3.0], [6.0, 5.0, 5.0], [6.0, 1.0, 5.0], [4.0, 7.0, 3.0]], [[1.0, 4.0, 6.0], [8.0, 3.0, 7.0], [8.0, 8.0, 6.0], [5.0, 5.0, 3.0]]])
3533          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3534       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3535       def test_setslice_constData_rank3_taggedData_CLN(self):
3536          arg=Data(numarray.array([[[3.0, 2.0, 7.0], [8.0, 3.0, 1.0], [2.0, 4.0, 8.0], [5.0, 8.0, 7.0]], [[4.0, 8.0, 4.0], [1.0, 4.0, 7.0], [8.0, 8.0, 6.0], [7.0, 6.0, 2.0]], [[7.0, 8.0, 6.0], [8.0, 4.0, 3.0], [3.0, 4.0, 4.0], [1.0, 4.0, 8.0]]]),self.functionspace)
3537          val=Data(numarray.array([[[3.0, 8.0, 6.0], [2.0, 1.0, 3.0]], [[7.0, 8.0, 1.0], [3.0, 8.0, 2.0]], [[5.0, 7.0, 5.0], [4.0, 3.0, 6.0]]]),self.functionspace)
3538          val.setTaggedValue(1,numarray.array([[[7.0, 8.0, 4.0], [3.0, 2.0, 5.0]], [[4.0, 7.0, 5.0], [2.0, 5.0, 5.0]], [[7.0, 4.0, 8.0], [5.0, 3.0, 4.0]]]))
3539          arg[:,2:]=val
3540          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3541          ref=msk_ref*numarray.array([[[3.0, 2.0, 7.0], [8.0, 3.0, 1.0], [3.0, 8.0, 6.0], [2.0, 1.0, 3.0]], [[4.0, 8.0, 4.0], [1.0, 4.0, 7.0], [7.0, 8.0, 1.0], [3.0, 8.0, 2.0]], [[7.0, 8.0, 6.0], [8.0, 4.0, 3.0], [5.0, 7.0, 5.0], [4.0, 3.0, 6.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 2.0, 7.0], [8.0, 3.0, 1.0], [7.0, 8.0, 4.0], [3.0, 2.0, 5.0]], [[4.0, 8.0, 4.0], [1.0, 4.0, 7.0], [4.0, 7.0, 5.0], [2.0, 5.0, 5.0]], [[7.0, 8.0, 6.0], [8.0, 4.0, 3.0], [7.0, 4.0, 8.0], [5.0, 3.0, 4.0]]])
3542          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3543       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3544       def test_setslice_constData_rank3_taggedData_UCR(self):
3545          arg=Data(numarray.array([[[2.0, 5.0, 1.0], [2.0, 1.0, 5.0], [8.0, 2.0, 5.0], [5.0, 7.0, 7.0]], [[2.0, 1.0, 6.0], [6.0, 5.0, 1.0], [1.0, 7.0, 6.0], [3.0, 8.0, 6.0]], [[5.0, 5.0, 7.0], [2.0, 3.0, 5.0], [5.0, 6.0, 3.0], [2.0, 5.0, 3.0]]]),self.functionspace)
3546          val=Data(numarray.array([[[4.0], [5.0], [1.0], [6.0]], [[8.0], [8.0], [2.0], [2.0]]]),self.functionspace)
3547          val.setTaggedValue(1,numarray.array([[[2.0], [8.0], [8.0], [1.0]], [[3.0], [8.0], [7.0], [6.0]]]))
3548          arg[:2,:,1:2]=val
3549          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3550          ref=msk_ref*numarray.array([[[2.0, 4.0, 1.0], [2.0, 5.0, 5.0], [8.0, 1.0, 5.0], [5.0, 6.0, 7.0]], [[2.0, 8.0, 6.0], [6.0, 8.0, 1.0], [1.0, 2.0, 6.0], [3.0, 2.0, 6.0]], [[5.0, 5.0, 7.0], [2.0, 3.0, 5.0], [5.0, 6.0, 3.0], [2.0, 5.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 2.0, 1.0], [2.0, 8.0, 5.0], [8.0, 8.0, 5.0], [5.0, 1.0, 7.0]], [[2.0, 3.0, 6.0], [6.0, 8.0, 1.0], [1.0, 7.0, 6.0], [3.0, 6.0, 6.0]], [[5.0, 5.0, 7.0], [2.0, 3.0, 5.0], [5.0, 6.0, 3.0], [2.0, 5.0, 3.0]]])
3551          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3552       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3553       def test_setslice_constData_rank3_taggedData_ULN(self):
3554          arg=Data(numarray.array([[[3.0, 8.0, 4.0], [7.0, 7.0, 6.0], [6.0, 4.0, 6.0], [1.0, 5.0, 8.0]], [[5.0, 4.0, 7.0], [8.0, 4.0, 3.0], [7.0, 2.0, 4.0], [5.0, 3.0, 4.0]], [[6.0, 7.0, 5.0], [8.0, 2.0, 6.0], [8.0, 1.0, 1.0], [7.0, 1.0, 7.0]]]),self.functionspace)
3555          val=Data(numarray.array([[[6.0, 4.0, 4.0], [1.0, 4.0, 3.0]], [[3.0, 7.0, 3.0], [8.0, 6.0, 4.0]]]),self.functionspace)
3556          val.setTaggedValue(1,numarray.array([[[5.0, 7.0, 8.0], [5.0, 3.0, 2.0]], [[2.0, 8.0, 2.0], [5.0, 4.0, 8.0]]]))
3557          arg[:2,2:]=val
3558          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3559          ref=msk_ref*numarray.array([[[3.0, 8.0, 4.0], [7.0, 7.0, 6.0], [6.0, 4.0, 4.0], [1.0, 4.0, 3.0]], [[5.0, 4.0, 7.0], [8.0, 4.0, 3.0], [3.0, 7.0, 3.0], [8.0, 6.0, 4.0]], [[6.0, 7.0, 5.0], [8.0, 2.0, 6.0], [8.0, 1.0, 1.0], [7.0, 1.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 8.0, 4.0], [7.0, 7.0, 6.0], [5.0, 7.0, 8.0], [5.0, 3.0, 2.0]], [[5.0, 4.0, 7.0], [8.0, 4.0, 3.0], [2.0, 8.0, 2.0], [5.0, 4.0, 8.0]], [[6.0, 7.0, 5.0], [8.0, 2.0, 6.0], [8.0, 1.0, 1.0], [7.0, 1.0, 7.0]]])
3560          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3561       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3562       def test_setslice_constData_rank3_taggedData_PUN(self):
3563          arg=Data(numarray.array([[[2.0, 5.0, 4.0], [6.0, 7.0, 3.0], [1.0, 8.0, 4.0], [3.0, 7.0, 7.0]], [[3.0, 3.0, 5.0], [3.0, 2.0, 8.0], [3.0, 2.0, 8.0], [5.0, 8.0, 3.0]], [[5.0, 5.0, 6.0], [4.0, 8.0, 7.0], [2.0, 2.0, 8.0], [6.0, 5.0, 7.0]]]),self.functionspace)
3564          val=Data(numarray.array([[3.0, 3.0, 3.0], [7.0, 6.0, 4.0], [2.0, 5.0, 1.0]]),self.functionspace)
3565          val.setTaggedValue(1,numarray.array([[5.0, 7.0, 2.0], [1.0, 3.0, 5.0], [6.0, 8.0, 3.0]]))
3566          arg[1,:3]=val
3567          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3568          ref=msk_ref*numarray.array([[[2.0, 5.0, 4.0], [6.0, 7.0, 3.0], [1.0, 8.0, 4.0], [3.0, 7.0, 7.0]], [[3.0, 3.0, 3.0], [7.0, 6.0, 4.0], [2.0, 5.0, 1.0], [5.0, 8.0, 3.0]], [[5.0, 5.0, 6.0], [4.0, 8.0, 7.0], [2.0, 2.0, 8.0], [6.0, 5.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 5.0, 4.0], [6.0, 7.0, 3.0], [1.0, 8.0, 4.0], [3.0, 7.0, 7.0]], [[5.0, 7.0, 2.0], [1.0, 3.0, 5.0], [6.0, 8.0, 3.0], [5.0, 8.0, 3.0]], [[5.0, 5.0, 6.0], [4.0, 8.0, 7.0], [2.0, 2.0, 8.0], [6.0, 5.0, 7.0]]])
3569          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3570       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3571       def test_setslice_constData_rank3_taggedData_RCN(self):
3572          arg=Data(numarray.array([[[7.0, 3.0, 7.0], [5.0, 3.0, 3.0], [3.0, 7.0, 8.0], [7.0, 2.0, 3.0]], [[6.0, 7.0, 6.0], [2.0, 6.0, 1.0], [4.0, 8.0, 3.0], [6.0, 8.0, 8.0]], [[3.0, 6.0, 3.0], [5.0, 6.0, 6.0], [4.0, 2.0, 6.0], [4.0, 1.0, 4.0]]]),self.functionspace)
3573          val=Data(numarray.array([[[7.0, 8.0, 2.0], [6.0, 6.0, 4.0], [3.0, 1.0, 2.0], [1.0, 6.0, 2.0]]]),self.functionspace)
3574          val.setTaggedValue(1,numarray.array([[[7.0, 5.0, 5.0], [4.0, 3.0, 2.0], [8.0, 7.0, 5.0], [4.0, 3.0, 6.0]]]))
3575          arg[1:2,:]=val
3576          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3577          ref=msk_ref*numarray.array([[[7.0, 3.0, 7.0], [5.0, 3.0, 3.0], [3.0, 7.0, 8.0], [7.0, 2.0, 3.0]], [[7.0, 8.0, 2.0], [6.0, 6.0, 4.0], [3.0, 1.0, 2.0], [1.0, 6.0, 2.0]], [[3.0, 6.0, 3.0], [5.0, 6.0, 6.0], [4.0, 2.0, 6.0], [4.0, 1.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 3.0, 7.0], [5.0, 3.0, 3.0], [3.0, 7.0, 8.0], [7.0, 2.0, 3.0]], [[7.0, 5.0, 5.0], [4.0, 3.0, 2.0], [8.0, 7.0, 5.0], [4.0, 3.0, 6.0]], [[3.0, 6.0, 3.0], [5.0, 6.0, 6.0], [4.0, 2.0, 6.0], [4.0, 1.0, 4.0]]])
3578          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3579       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3580       def test_setslice_constData_rank3_taggedData_CRN(self):
3581          arg=Data(numarray.array([[[5.0, 3.0, 6.0], [2.0, 3.0, 8.0], [2.0, 6.0, 8.0], [8.0, 8.0, 4.0]], [[7.0, 2.0, 4.0], [7.0, 6.0, 3.0], [2.0, 8.0, 3.0], [4.0, 1.0, 1.0]], [[5.0, 3.0, 4.0], [4.0, 3.0, 1.0], [1.0, 1.0, 1.0], [7.0, 5.0, 2.0]]]),self.functionspace)
3582          val=Data(numarray.array([[[6.0, 1.0, 8.0], [5.0, 3.0, 5.0]], [[5.0, 6.0, 1.0], [5.0, 8.0, 3.0]], [[5.0, 8.0, 5.0], [5.0, 3.0, 7.0]]]),self.functionspace)
3583          val.setTaggedValue(1,numarray.array([[[6.0, 2.0, 8.0], [5.0, 7.0, 3.0]], [[4.0, 1.0, 1.0], [7.0, 1.0, 3.0]], [[5.0, 8.0, 3.0], [7.0, 4.0, 7.0]]]))
3584          arg[:,1:3]=val
3585          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3586          ref=msk_ref*numarray.array([[[5.0, 3.0, 6.0], [6.0, 1.0, 8.0], [5.0, 3.0, 5.0], [8.0, 8.0, 4.0]], [[7.0, 2.0, 4.0], [5.0, 6.0, 1.0], [5.0, 8.0, 3.0], [4.0, 1.0, 1.0]], [[5.0, 3.0, 4.0], [5.0, 8.0, 5.0], [5.0, 3.0, 7.0], [7.0, 5.0, 2.0]]])+(1.-msk_ref)*numarray.array([[[5.0, 3.0, 6.0], [6.0, 2.0, 8.0], [5.0, 7.0, 3.0], [8.0, 8.0, 4.0]], [[7.0, 2.0, 4.0], [4.0, 1.0, 1.0], [7.0, 1.0, 3.0], [4.0, 1.0, 1.0]], [[5.0, 3.0, 4.0], [5.0, 8.0, 3.0], [7.0, 4.0, 7.0], [7.0, 5.0, 2.0]]])
3587          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3588       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3589       def test_setslice_constData_rank3_taggedData_UUN(self):
3590          arg=Data(numarray.array([[[8.0, 4.0, 8.0], [2.0, 3.0, 3.0], [2.0, 1.0, 4.0], [3.0, 1.0, 1.0]], [[2.0, 3.0, 6.0], [3.0, 7.0, 3.0], [4.0, 7.0, 2.0], [6.0, 2.0, 3.0]], [[1.0, 3.0, 6.0], [2.0, 4.0, 4.0], [8.0, 2.0, 7.0], [2.0, 8.0, 3.0]]]),self.functionspace)
3591          val=Data(numarray.array([[[1.0, 8.0, 4.0], [4.0, 4.0, 5.0], [1.0, 2.0, 3.0]], [[7.0, 5.0, 3.0], [8.0, 2.0, 6.0], [4.0, 6.0, 5.0]]]),self.functionspace)
3592          val.setTaggedValue(1,numarray.array([[[4.0, 3.0, 3.0], [3.0, 3.0, 1.0], [1.0, 4.0, 1.0]], [[7.0, 5.0, 6.0], [6.0, 5.0, 2.0], [6.0, 7.0, 2.0]]]))
3593          arg[:2,:3]=val
3594          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3595          ref=msk_ref*numarray.array([[[1.0, 8.0, 4.0], [4.0, 4.0, 5.0], [1.0, 2.0, 3.0], [3.0, 1.0, 1.0]], [[7.0, 5.0, 3.0], [8.0, 2.0, 6.0], [4.0, 6.0, 5.0], [6.0, 2.0, 3.0]], [[1.0, 3.0, 6.0], [2.0, 4.0, 4.0], [8.0, 2.0, 7.0], [2.0, 8.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[4.0, 3.0, 3.0], [3.0, 3.0, 1.0], [1.0, 4.0, 1.0], [3.0, 1.0, 1.0]], [[7.0, 5.0, 6.0], [6.0, 5.0, 2.0], [6.0, 7.0, 2.0], [6.0, 2.0, 3.0]], [[1.0, 3.0, 6.0], [2.0, 4.0, 4.0], [8.0, 2.0, 7.0], [2.0, 8.0, 3.0]]])
3596          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3597       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3598       def test_setslice_constData_rank3_taggedData_UCP(self):
3599          arg=Data(numarray.array([[[5.0, 6.0, 4.0], [6.0, 4.0, 3.0], [7.0, 1.0, 2.0], [8.0, 2.0, 6.0]], [[6.0, 4.0, 1.0], [8.0, 1.0, 4.0], [7.0, 4.0, 2.0], [3.0, 6.0, 8.0]], [[1.0, 1.0, 4.0], [8.0, 6.0, 3.0], [6.0, 3.0, 4.0], [6.0, 2.0, 1.0]]]),self.functionspace)
3600          val=Data(numarray.array([[2.0, 4.0, 2.0, 7.0], [1.0, 3.0, 1.0, 6.0]]),self.functionspace)
3601          val.setTaggedValue(1,numarray.array([[3.0, 7.0, 1.0, 5.0], [7.0, 3.0, 7.0, 7.0]]))
3602          arg[:2,:,1]=val
3603          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3604          ref=msk_ref*numarray.array([[[5.0, 2.0, 4.0], [6.0, 4.0, 3.0], [7.0, 2.0, 2.0], [8.0, 7.0, 6.0]], [[6.0, 1.0, 1.0], [8.0, 3.0, 4.0], [7.0, 1.0, 2.0], [3.0, 6.0, 8.0]], [[1.0, 1.0, 4.0], [8.0, 6.0, 3.0], [6.0, 3.0, 4.0], [6.0, 2.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[5.0, 3.0, 4.0], [6.0, 7.0, 3.0], [7.0, 1.0, 2.0], [8.0, 5.0, 6.0]], [[6.0, 7.0, 1.0], [8.0, 3.0, 4.0], [7.0, 7.0, 2.0], [3.0, 7.0, 8.0]], [[1.0, 1.0, 4.0], [8.0, 6.0, 3.0], [6.0, 3.0, 4.0], [6.0, 2.0, 1.0]]])
3605          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3606       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3607       def test_setslice_constData_rank3_taggedData_RUN(self):
3608          arg=Data(numarray.array([[[1.0, 5.0, 2.0], [6.0, 7.0, 5.0], [2.0, 8.0, 7.0], [2.0, 4.0, 2.0]], [[3.0, 6.0, 8.0], [2.0, 8.0, 7.0], [8.0, 4.0, 5.0], [2.0, 1.0, 7.0]], [[4.0, 4.0, 4.0], [4.0, 1.0, 3.0], [8.0, 8.0, 8.0], [7.0, 2.0, 6.0]]]),self.functionspace)
3609          val=Data(numarray.array([[[3.0, 3.0, 8.0], [3.0, 3.0, 1.0], [4.0, 2.0, 4.0]]]),self.functionspace)
3610          val.setTaggedValue(1,numarray.array([[[5.0, 6.0, 3.0], [8.0, 1.0, 7.0], [1.0, 4.0, 3.0]]]))
3611          arg[1:2,:3]=val
3612          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3613          ref=msk_ref*numarray.array([[[1.0, 5.0, 2.0], [6.0, 7.0, 5.0], [2.0, 8.0, 7.0], [2.0, 4.0, 2.0]], [[3.0, 3.0, 8.0], [3.0, 3.0, 1.0], [4.0, 2.0, 4.0], [2.0, 1.0, 7.0]], [[4.0, 4.0, 4.0], [4.0, 1.0, 3.0], [8.0, 8.0, 8.0], [7.0, 2.0, 6.0]]])+(1.-msk_ref)*numarray.array([[[1.0, 5.0, 2.0], [6.0, 7.0, 5.0], [2.0, 8.0, 7.0], [2.0, 4.0, 2.0]], [[5.0, 6.0, 3.0], [8.0, 1.0, 7.0], [1.0, 4.0, 3.0], [2.0, 1.0, 7.0]], [[4.0, 4.0, 4.0], [4.0, 1.0, 3.0], [8.0, 8.0, 8.0], [7.0, 2.0, 6.0]]])
3614          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3615       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3616       def test_setslice_constData_rank3_taggedData_CUN(self):
3617          arg=Data(numarray.array([[[5.0, 4.0, 2.0], [8.0, 8.0, 6.0], [3.0, 2.0, 3.0], [8.0, 2.0, 4.0]], [[7.0, 1.0, 6.0], [3.0, 1.0, 4.0], [6.0, 6.0, 4.0], [8.0, 8.0, 4.0]], [[4.0, 2.0, 6.0], [5.0, 5.0, 5.0], [3.0, 4.0, 1.0], [2.0, 6.0, 4.0]]]),self.functionspace)
3618          val=Data(numarray.array([[[7.0, 4.0, 1.0], [2.0, 6.0, 8.0], [7.0, 7.0, 4.0]], [[2.0, 1.0, 5.0], [7.0, 7.0, 1.0], [6.0, 6.0, 6.0]], [[4.0, 7.0, 4.0], [3.0, 4.0, 5.0], [2.0, 4.0, 1.0]]]),self.functionspace)
3619          val.setTaggedValue(1,numarray.array([[[4.0, 5.0, 1.0], [4.0, 1.0, 3.0], [3.0, 2.0, 5.0]], [[2.0, 8.0, 7.0], [6.0, 4.0, 1.0], [8.0, 4.0, 6.0]], [[6.0, 1.0, 3.0], [2.0, 4.0, 1.0], [6.0, 3.0, 2.0]]]))
3620          arg[:,:3]=val
3621          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3622          ref=msk_ref*numarray.array([[[7.0, 4.0, 1.0], [2.0, 6.0, 8.0], [7.0, 7.0, 4.0], [8.0, 2.0, 4.0]], [[2.0, 1.0, 5.0], [7.0, 7.0, 1.0], [6.0, 6.0, 6.0], [8.0, 8.0, 4.0]], [[4.0, 7.0, 4.0], [3.0, 4.0, 5.0], [2.0, 4.0, 1.0], [2.0, 6.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[4.0, 5.0, 1.0], [4.0, 1.0, 3.0], [3.0, 2.0, 5.0], [8.0, 2.0, 4.0]], [[2.0, 8.0, 7.0], [6.0, 4.0, 1.0], [8.0, 4.0, 6.0], [8.0, 8.0, 4.0]], [[6.0, 1.0, 3.0], [2.0, 4.0, 1.0], [6.0, 3.0, 2.0], [2.0, 6.0, 4.0]]])
3623          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3624       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3625       def test_setslice_constData_rank3_taggedData_LLC(self):
3626          arg=Data(numarray.array([[[2.0, 6.0, 6.0], [2.0, 6.0, 5.0], [1.0, 6.0, 8.0], [4.0, 7.0, 1.0]], [[6.0, 8.0, 8.0], [5.0, 2.0, 5.0], [2.0, 5.0, 4.0], [5.0, 1.0, 1.0]], [[3.0, 5.0, 8.0], [3.0, 3.0, 4.0], [7.0, 7.0, 3.0], [8.0, 5.0, 5.0]]]),self.functionspace)
3627          val=Data(numarray.array([[[5.0, 4.0, 6.0], [8.0, 5.0, 7.0]]]),self.functionspace)
3628          val.setTaggedValue(1,numarray.array([[[2.0, 4.0, 5.0], [3.0, 6.0, 7.0]]]))
3629          arg[2:,2:,:]=val
3630          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3631          ref=msk_ref*numarray.array([[[2.0, 6.0, 6.0], [2.0, 6.0, 5.0], [1.0, 6.0, 8.0], [4.0, 7.0, 1.0]], [[6.0, 8.0, 8.0], [5.0, 2.0, 5.0], [2.0, 5.0, 4.0], [5.0, 1.0, 1.0]], [[3.0, 5.0, 8.0], [3.0, 3.0, 4.0], [5.0, 4.0, 6.0], [8.0, 5.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[2.0, 6.0, 6.0], [2.0, 6.0, 5.0], [1.0, 6.0, 8.0], [4.0, 7.0, 1.0]], [[6.0, 8.0, 8.0], [5.0, 2.0, 5.0], [2.0, 5.0, 4.0], [5.0, 1.0, 1.0]], [[3.0, 5.0, 8.0], [3.0, 3.0, 4.0], [2.0, 4.0, 5.0], [3.0, 6.0, 7.0]]])
3632          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3633       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3634       def test_setslice_constData_rank3_taggedData_RRN(self):
3635          arg=Data(numarray.array([[[4.0, 3.0, 1.0], [2.0, 2.0, 6.0], [7.0, 8.0, 7.0], [5.0, 4.0, 3.0]], [[5.0, 6.0, 8.0], [3.0, 3.0, 8.0], [1.0, 4.0, 1.0], [3.0, 8.0, 1.0]], [[4.0, 8.0, 4.0], [2.0, 5.0, 7.0], [7.0, 5.0, 1.0], [5.0, 3.0, 3.0]]]),self.functionspace)
3636          val=Data(numarray.array([[[5.0, 7.0, 3.0], [7.0, 7.0, 4.0]]]),self.functionspace)
3637          val.setTaggedValue(1,numarray.array([[[1.0, 4.0, 5.0], [7.0, 8.0, 2.0]]]))
3638          arg[1:2,1:3]=val
3639          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3640          ref=msk_ref*numarray.array([[[4.0, 3.0, 1.0], [2.0, 2.0, 6.0], [7.0, 8.0, 7.0], [5.0, 4.0, 3.0]], [[5.0, 6.0, 8.0], [5.0, 7.0, 3.0], [7.0, 7.0, 4.0], [3.0, 8.0, 1.0]], [[4.0, 8.0, 4.0], [2.0, 5.0, 7.0], [7.0, 5.0, 1.0], [5.0, 3.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[4.0, 3.0, 1.0], [2.0, 2.0, 6.0], [7.0, 8.0, 7.0], [5.0, 4.0, 3.0]], [[5.0, 6.0, 8.0], [1.0, 4.0, 5.0], [7.0, 8.0, 2.0], [3.0, 8.0, 1.0]], [[4.0, 8.0, 4.0], [2.0, 5.0, 7.0], [7.0, 5.0, 1.0], [5.0, 3.0, 3.0]]])
3641          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3642       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3643       def test_setslice_constData_rank3_taggedData_LUN(self):
3644          arg=Data(numarray.array([[[7.0, 3.0, 4.0], [3.0, 4.0, 3.0], [8.0, 7.0, 6.0], [8.0, 4.0, 7.0]], [[3.0, 8.0, 8.0], [5.0, 2.0, 4.0], [3.0, 7.0, 6.0], [4.0, 1.0, 1.0]], [[3.0, 2.0, 7.0], [7.0, 5.0, 1.0], [6.0, 1.0, 1.0], [3.0, 3.0, 5.0]]]),self.functionspace)
3645          val=Data(numarray.array([[[3.0, 3.0, 8.0], [6.0, 6.0, 3.0], [6.0, 6.0, 7.0]]]),self.functionspace)
3646          val.setTaggedValue(1,numarray.array([[[5.0, 2.0, 3.0], [1.0, 4.0, 8.0], [2.0, 3.0, 7.0]]]))
3647          arg[2:,:3]=val
3648          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3649          ref=msk_ref*numarray.array([[[7.0, 3.0, 4.0], [3.0, 4.0, 3.0], [8.0, 7.0, 6.0], [8.0, 4.0, 7.0]], [[3.0, 8.0, 8.0], [5.0, 2.0, 4.0], [3.0, 7.0, 6.0], [4.0, 1.0, 1.0]], [[3.0, 3.0, 8.0], [6.0, 6.0, 3.0], [6.0, 6.0, 7.0], [3.0, 3.0, 5.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 3.0, 4.0], [3.0, 4.0, 3.0], [8.0, 7.0, 6.0], [8.0, 4.0, 7.0]], [[3.0, 8.0, 8.0], [5.0, 2.0, 4.0], [3.0, 7.0, 6.0], [4.0, 1.0, 1.0]], [[5.0, 2.0, 3.0], [1.0, 4.0, 8.0], [2.0, 3.0, 7.0], [3.0, 3.0, 5.0]]])
3650          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3651       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3652       def test_setslice_constData_rank3_taggedData_RLN(self):
3653          arg=Data(numarray.array([[[5.0, 8.0, 4.0], [6.0, 2.0, 6.0], [1.0, 6.0, 6.0], [1.0, 7.0, 2.0]], [[6.0, 3.0, 3.0], [3.0, 1.0, 5.0], [1.0, 7.0, 4.0], [8.0, 2.0, 8.0]], [[1.0, 1.0, 4.0], [3.0, 2.0, 6.0], [8.0, 7.0, 8.0], [2.0, 1.0, 3.0]]]),self.functionspace)
3654          val=Data(numarray.array([[[6.0, 8.0, 8.0], [7.0, 4.0, 4.0]]]),self.functionspace)
3655          val.setTaggedValue(1,numarray.array([[[3.0, 4.0, 3.0], [8.0, 4.0, 4.0]]]))
3656          arg[1:2,2:]=val
3657          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3658          ref=msk_ref*numarray.array([[[5.0, 8.0, 4.0], [6.0, 2.0, 6.0], [1.0, 6.0, 6.0], [1.0, 7.0, 2.0]], [[6.0, 3.0, 3.0], [3.0, 1.0, 5.0], [6.0, 8.0, 8.0], [7.0, 4.0, 4.0]], [[1.0, 1.0, 4.0], [3.0, 2.0, 6.0], [8.0, 7.0, 8.0], [2.0, 1.0, 3.0]]])+(1.-msk_ref)*numarray.array([[[5.0, 8.0, 4.0], [6.0, 2.0, 6.0], [1.0, 6.0, 6.0], [1.0, 7.0, 2.0]], [[6.0, 3.0, 3.0], [3.0, 1.0, 5.0], [3.0, 4.0, 3.0], [8.0, 4.0, 4.0]], [[1.0, 1.0, 4.0], [3.0, 2.0, 6.0], [8.0, 7.0, 8.0], [2.0, 1.0, 3.0]]])
3659          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3660       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3661       def test_setslice_constData_rank3_taggedData_PLL(self):
3662          arg=Data(numarray.array([[[6.0, 1.0, 2.0], [6.0, 3.0, 5.0], [6.0, 7.0, 1.0], [3.0, 3.0, 5.0]], [[6.0, 2.0, 5.0], [5.0, 8.0, 6.0], [6.0, 4.0, 1.0], [3.0, 2.0, 5.0]], [[8.0, 8.0, 7.0], [7.0, 1.0, 1.0], [7.0, 5.0, 1.0], [1.0, 1.0, 7.0]]]),self.functionspace)
3663          val=Data(numarray.array([[7.0], [8.0]]),self.functionspace)
3664          val.setTaggedValue(1,numarray.array([[3.0], [2.0]]))
3665          arg[1,2:,2:]=val
3666          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3667          ref=msk_ref*numarray.array([[[6.0, 1.0, 2.0], [6.0, 3.0, 5.0], [6.0, 7.0, 1.0], [3.0, 3.0, 5.0]], [[6.0, 2.0, 5.0], [5.0, 8.0, 6.0], [6.0, 4.0, 7.0], [3.0, 2.0, 8.0]], [[8.0, 8.0, 7.0], [7.0, 1.0, 1.0], [7.0, 5.0, 1.0], [1.0, 1.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 1.0, 2.0], [6.0, 3.0, 5.0], [6.0, 7.0, 1.0], [3.0, 3.0, 5.0]], [[6.0, 2.0, 5.0], [5.0, 8.0, 6.0], [6.0, 4.0, 3.0], [3.0, 2.0, 2.0]], [[8.0, 8.0, 7.0], [7.0, 1.0, 1.0], [7.0, 5.0, 1.0], [1.0, 1.0, 7.0]]])
3668          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3669       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3670       def test_setslice_constData_rank3_taggedData_PLN(self):
3671          arg=Data(numarray.array([[[3.0, 2.0, 6.0], [4.0, 8.0, 3.0], [4.0, 2.0, 1.0], [8.0, 3.0, 1.0]], [[4.0, 2.0, 3.0], [7.0, 7.0, 6.0], [5.0, 5.0, 4.0], [8.0, 7.0, 8.0]], [[7.0, 1.0, 1.0], [4.0, 7.0, 2.0], [3.0, 7.0, 2.0], [8.0, 8.0, 1.0]]]),self.functionspace)
3672          val=Data(numarray.array([[1.0, 5.0, 4.0], [7.0, 3.0, 3.0]]),self.functionspace)
3673          val.setTaggedValue(1,numarray.array([[3.0, 2.0, 6.0], [7.0, 4.0, 2.0]]))
3674          arg[1,2:]=val
3675          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3676          ref=msk_ref*numarray.array([[[3.0, 2.0, 6.0], [4.0, 8.0, 3.0], [4.0, 2.0, 1.0], [8.0, 3.0, 1.0]], [[4.0, 2.0, 3.0], [7.0, 7.0, 6.0], [1.0, 5.0, 4.0], [7.0, 3.0, 3.0]], [[7.0, 1.0, 1.0], [4.0, 7.0, 2.0], [3.0, 7.0, 2.0], [8.0, 8.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 2.0, 6.0], [4.0, 8.0, 3.0], [4.0, 2.0, 1.0], [8.0, 3.0, 1.0]], [[4.0, 2.0, 3.0], [7.0, 7.0, 6.0], [3.0, 2.0, 6.0], [7.0, 4.0, 2.0]], [[7.0, 1.0, 1.0], [4.0, 7.0, 2.0], [3.0, 7.0, 2.0], [8.0, 8.0, 1.0]]])
3677          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3678       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3679       def test_setslice_constData_rank3_taggedData_LPN(self):
3680          arg=Data(numarray.array([[[7.0, 5.0, 8.0], [5.0, 8.0, 2.0], [5.0, 7.0, 8.0], [2.0, 6.0, 4.0]], [[8.0, 1.0, 2.0], [7.0, 5.0, 3.0], [6.0, 5.0, 3.0], [1.0, 8.0, 3.0]], [[8.0, 5.0, 1.0], [2.0, 1.0, 2.0], [8.0, 3.0, 6.0], [8.0, 4.0, 7.0]]]),self.functionspace)
3681          val=Data(numarray.array([[7.0, 1.0, 3.0]]),self.functionspace)
3682          val.setTaggedValue(1,numarray.array([[8.0, 4.0, 7.0]]))
3683          arg[2:,2]=val
3684          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3685          ref=msk_ref*numarray.array([[[7.0, 5.0, 8.0], [5.0, 8.0, 2.0], [5.0, 7.0, 8.0], [2.0, 6.0, 4.0]], [[8.0, 1.0, 2.0], [7.0, 5.0, 3.0], [6.0, 5.0, 3.0], [1.0, 8.0, 3.0]], [[8.0, 5.0, 1.0], [2.0, 1.0, 2.0], [7.0, 1.0, 3.0], [8.0, 4.0, 7.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 5.0, 8.0], [5.0, 8.0, 2.0], [5.0, 7.0, 8.0], [2.0, 6.0, 4.0]], [[8.0, 1.0, 2.0], [7.0, 5.0, 3.0], [6.0, 5.0, 3.0], [1.0, 8.0, 3.0]], [[8.0, 5.0, 1.0], [2.0, 1.0, 2.0], [8.0, 4.0, 7.0], [8.0, 4.0, 7.0]]])
3686          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3687       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3688       def test_setslice_constData_rank3_taggedData_CCC(self):
3689          arg=Data(numarray.array([[[6.0, 3.0, 8.0], [1.0, 6.0, 1.0], [5.0, 7.0, 7.0], [2.0, 8.0, 2.0]], [[8.0, 8.0, 5.0], [8.0, 7.0, 2.0], [1.0, 6.0, 4.0], [8.0, 2.0, 8.0]], [[2.0, 6.0, 8.0], [2.0, 4.0, 4.0], [6.0, 5.0, 1.0], [7.0, 5.0, 8.0]]]),self.functionspace)
3690          val=Data(numarray.array([[[6.0, 2.0, 2.0], [8.0, 1.0, 5.0], [2.0, 4.0, 1.0], [7.0, 6.0, 6.0]], [[1.0, 7.0, 5.0], [3.0, 4.0, 2.0], [6.0, 7.0, 5.0], [1.0, 8.0, 6.0]], [[2.0, 4.0, 5.0], [3.0, 1.0, 5.0], [5.0, 1.0, 6.0], [2.0, 6.0, 4.0]]]),self.functionspace)
3691          val.setTaggedValue(1,numarray.array([[[6.0, 3.0, 4.0], [8.0, 2.0, 1.0], [5.0, 1.0, 3.0], [4.0, 6.0, 3.0]], [[3.0, 3.0, 1.0], [1.0, 6.0, 5.0], [8.0, 3.0, 6.0], [5.0, 3.0, 6.0]], [[6.0, 3.0, 3.0], [1.0, 5.0, 5.0], [5.0, 5.0, 1.0], [6.0, 4.0, 8.0]]]))
3692          arg[:,:,:]=val
3693          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3694          ref=msk_ref*numarray.array([[[6.0, 2.0, 2.0], [8.0, 1.0, 5.0], [2.0, 4.0, 1.0], [7.0, 6.0, 6.0]], [[1.0, 7.0, 5.0], [3.0, 4.0, 2.0], [6.0, 7.0, 5.0], [1.0, 8.0, 6.0]], [[2.0, 4.0, 5.0], [3.0, 1.0, 5.0], [5.0, 1.0, 6.0], [2.0, 6.0, 4.0]]])+(1.-msk_ref)*numarray.array([[[6.0, 3.0, 4.0], [8.0, 2.0, 1.0], [5.0, 1.0, 3.0], [4.0, 6.0, 3.0]], [[3.0, 3.0, 1.0], [1.0, 6.0, 5.0], [8.0, 3.0, 6.0], [5.0, 3.0, 6.0]], [[6.0, 3.0, 3.0], [1.0, 5.0, 5.0], [5.0, 5.0, 1.0], [6.0, 4.0, 8.0]]])
3695          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3696       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3697       def test_setslice_constData_rank3_taggedData_LRC(self):
3698          arg=Data(numarray.array([[[8.0, 3.0, 4.0], [5.0, 8.0, 4.0], [5.0, 2.0, 7.0], [7.0, 6.0, 7.0]], [[2.0, 2.0, 1.0], [1.0, 3.0, 2.0], [2.0, 3.0, 3.0], [4.0, 4.0, 8.0]], [[4.0, 4.0, 1.0], [2.0, 6.0, 1.0], [5.0, 5.0, 2.0], [5.0, 6.0, 5.0]]]),self.functionspace)
3699          val=Data(numarray.array([[[4.0, 2.0, 8.0], [3.0, 2.0, 6.0]]]),self.functionspace)
3700          val.setTaggedValue(1,numarray.array([[[2.0, 1.0, 8.0], [5.0, 3.0, 7.0]]]))
3701          arg[2:,1:3,:]=val
3702          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3703          ref=msk_ref*numarray.array([[[8.0, 3.0, 4.0], [5.0, 8.0, 4.0], [5.0, 2.0, 7.0], [7.0, 6.0, 7.0]], [[2.0, 2.0, 1.0], [1.0, 3.0, 2.0], [2.0, 3.0, 3.0], [4.0, 4.0, 8.0]], [[4.0, 4.0, 1.0], [4.0, 2.0, 8.0], [3.0, 2.0, 6.0], [5.0, 6.0, 5.0]]])+(1.-msk_ref)*numarray.array([[[8.0, 3.0, 4.0], [5.0, 8.0, 4.0], [5.0, 2.0, 7.0], [7.0, 6.0, 7.0]], [[2.0, 2.0, 1.0], [1.0, 3.0, 2.0], [2.0, 3.0, 3.0], [4.0, 4.0, 8.0]], [[4.0, 4.0, 1.0], [2.0, 1.0, 8.0], [5.0, 3.0, 7.0], [5.0, 6.0, 5.0]]])
3704          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3705       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3706       def test_setslice_constData_rank3_taggedData_CCN(self):
3707          arg=Data(numarray.array([[[2.0, 2.0, 4.0], [4.0, 3.0, 3.0], [2.0, 8.0, 5.0], [4.0, 5.0, 2.0]], [[2.0, 5.0, 8.0], [7.0, 1.0, 1.0], [4.0, 6.0, 7.0], [6.0, 6.0, 2.0]], [[7.0, 4.0, 4.0], [1.0, 8.0, 8.0], [8.0, 1.0, 7.0], [5.0, 7.0, 4.0]]]),self.functionspace)
3708          val=Data(numarray.array([[[6.0, 7.0, 8.0], [6.0, 8.0, 6.0], [8.0, 3.0, 6.0], [7.0, 2.0, 4.0]], [[4.0, 6.0, 1.0], [8.0, 7.0, 8.0], [4.0, 1.0, 2.0], [1.0, 8.0, 7.0]], [[2.0, 4.0, 8.0], [1.0, 7.0, 7.0], [7.0, 4.0, 4.0], [8.0, 5.0, 1.0]]]),self.functionspace)
3709          val.setTaggedValue(1,numarray.array([[[3.0, 7.0, 7.0], [3.0, 4.0, 5.0], [4.0, 6.0, 6.0], [4.0, 1.0, 3.0]], [[7.0, 5.0, 8.0], [6.0, 8.0, 5.0], [5.0, 2.0, 2.0], [7.0, 6.0, 5.0]], [[2.0, 8.0, 8.0], [6.0, 2.0, 4.0], [7.0, 6.0, 1.0], [4.0, 5.0, 6.0]]]))
3710          arg[:,:]=val
3711          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3712          ref=msk_ref*numarray.array([[[6.0, 7.0, 8.0], [6.0, 8.0, 6.0], [8.0, 3.0, 6.0], [7.0, 2.0, 4.0]], [[4.0, 6.0, 1.0], [8.0, 7.0, 8.0], [4.0, 1.0, 2.0], [1.0, 8.0, 7.0]], [[2.0, 4.0, 8.0], [1.0, 7.0, 7.0], [7.0, 4.0, 4.0], [8.0, 5.0, 1.0]]])+(1.-msk_ref)*numarray.array([[[3.0, 7.0, 7.0], [3.0, 4.0, 5.0], [4.0, 6.0, 6.0], [4.0, 1.0, 3.0]], [[7.0, 5.0, 8.0], [6.0, 8.0, 5.0], [5.0, 2.0, 2.0], [7.0, 6.0, 5.0]], [[2.0, 8.0, 8.0], [6.0, 2.0, 4.0], [7.0, 6.0, 1.0], [4.0, 5.0, 6.0]]])
3713          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3714       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3715       def test_setslice_constData_rank3_taggedData_UPL(self):
3716          arg=Data(numarray.array([[[7.0, 2.0, 5.0], [2.0, 7.0, 3.0], [2.0, 7.0, 4.0], [1.0, 3.0, 1.0]], [[5.0, 8.0, 8.0], [2.0, 2.0, 1.0], [4.0, 5.0, 5.0], [6.0, 2.0, 3.0]], [[4.0, 3.0, 4.0], [2.0, 4.0, 4.0], [2.0, 1.0, 7.0], [7.0, 8.0, 8.0]]]),self.functionspace)
3717          val=Data(numarray.array([[3.0], [6.0]]),self.functionspace)
3718          val.setTaggedValue(1,numarray.array([[5.0], [6.0]]))
3719          arg[:2,2,2:]=val
3720          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3721          ref=msk_ref*numarray.array([[[7.0, 2.0, 5.0], [2.0, 7.0, 3.0], [2.0, 7.0, 3.0], [1.0, 3.0, 1.0]], [[5.0, 8.0, 8.0], [2.0, 2.0, 1.0], [4.0, 5.0, 6.0], [6.0, 2.0, 3.0]], [[4.0, 3.0, 4.0], [2.0, 4.0, 4.0], [2.0, 1.0, 7.0], [7.0, 8.0, 8.0]]])+(1.-msk_ref)*numarray.array([[[7.0, 2.0, 5.0], [2.0, 7.0, 3.0], [2.0, 7.0, 5.0], [1.0, 3.0, 1.0]], [[5.0, 8.0, 8.0], [2.0, 2.0, 1.0], [4.0, 5.0, 6.0], [6.0, 2.0, 3.0]], [[4.0, 3.0, 4.0], [2.0, 4.0, 4.0], [2.0, 1.0, 7.0], [7.0, 8.0, 8.0]]])
3722          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3723       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3724       def test_setslice_constData_rank4_taggedData_CLCP(self):
3725          arg=Data(numarray.array([[[[8.0, 8.0, 6.0], [6.0, 4.0, 2.0], [5.0, 7.0, 8.0]], [[5.0, 7.0, 3.0], [1.0, 8.0, 6.0], [1.0, 3.0, 5.0]], [[8.0, 3.0, 3.0], [2.0, 6.0, 5.0], [3.0, 2.0, 6.0]]], [[[5.0, 3.0, 3.0], [2.0, 6.0, 1.0], [3.0, 6.0, 7.0]], [[8.0, 8.0, 2.0], [5.0, 4.0, 4.0], [3.0, 3.0, 4.0]], [[3.0, 3.0, 8.0], [5.0, 2.0, 8.0], [8.0, 1.0, 5.0]]], [[[3.0, 6.0, 7.0], [6.0, 7.0, 1.0], [2.0, 1.0, 2.0]], [[1.0, 6.0, 3.0], [2.0, 5.0, 8.0], [6.0, 1.0, 6.0]], [[6.0, 3.0, 5.0], [4.0, 6.0, 4.0], [1.0, 2.0, 4.0]]], [[[5.0, 8.0, 6.0], [8.0, 2.0, 6.0], [1.0, 2.0, 3.0]], [[6.0, 8.0, 5.0], [1.0, 3.0, 8.0], [6.0, 8.0, 3.0]], [[5.0, 4.0, 6.0], [1.0, 5.0, 4.0], [6.0, 6.0, 1.0]]]]),self.functionspace)
3726          val=Data(numarray.array([[[3.0, 3.0, 8.0]], [[6.0, 2.0, 1.0]], [[7.0, 4.0, 8.0]], [[2.0, 2.0, 3.0]]]),self.functionspace)
3727          val.setTaggedValue(1,numarray.array([[[6.0, 3.0, 8.0]], [[8.0, 8.0, 4.0]], [[7.0, 4.0, 3.0]], [[6.0, 1.0, 2.0]]]))
3728          arg[:,2:,:,1]=val
3729          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3730          ref=msk_ref*numarray.array([[[[8.0, 8.0, 6.0], [6.0, 4.0, 2.0], [5.0, 7.0, 8.0]], [[5.0, 7.0, 3.0], [1.0, 8.0, 6.0], [1.0, 3.0, 5.0]], [[8.0, 3.0, 3.0], [2.0, 3.0, 5.0], [3.0, 8.0, 6.0]]], [[[5.0, 3.0, 3.0], [2.0, 6.0, 1.0], [3.0, 6.0, 7.0]], [[8.0, 8.0, 2.0], [5.0, 4.0, 4.0], [3.0, 3.0, 4.0]], [[3.0, 6.0, 8.0], [5.0, 2.0, 8.0], [8.0, 1.0, 5.0]]], [[[3.0, 6.0, 7.0], [6.0, 7.0, 1.0], [2.0, 1.0, 2.0]], [[1.0, 6.0, 3.0], [2.0, 5.0, 8.0], [6.0, 1.0, 6.0]], [[6.0, 7.0, 5.0], [4.0, 4.0, 4.0], [1.0, 8.0, 4.0]]], [[[5.0, 8.0, 6.0], [8.0, 2.0, 6.0], [1.0, 2.0, 3.0]], [[6.0, 8.0, 5.0], [1.0, 3.0, 8.0], [6.0, 8.0, 3.0]], [[5.0, 2.0, 6.0], [1.0, 2.0, 4.0], [6.0, 3.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 8.0, 6.0], [6.0, 4.0, 2.0], [5.0, 7.0, 8.0]], [[5.0, 7.0, 3.0], [1.0, 8.0, 6.0], [1.0, 3.0, 5.0]], [[8.0, 6.0, 3.0], [2.0, 3.0, 5.0], [3.0, 8.0, 6.0]]], [[[5.0, 3.0, 3.0], [2.0, 6.0, 1.0], [3.0, 6.0, 7.0]], [[8.0, 8.0, 2.0], [5.0, 4.0, 4.0], [3.0, 3.0, 4.0]], [[3.0, 8.0, 8.0], [5.0, 8.0, 8.0], [8.0, 4.0, 5.0]]], [[[3.0, 6.0, 7.0], [6.0, 7.0, 1.0], [2.0, 1.0, 2.0]], [[1.0, 6.0, 3.0], [2.0, 5.0, 8.0], [6.0, 1.0, 6.0]], [[6.0, 7.0, 5.0], [4.0, 4.0, 4.0], [1.0, 3.0, 4.0]]], [[[5.0, 8.0, 6.0], [8.0, 2.0, 6.0], [1.0, 2.0, 3.0]], [[6.0, 8.0, 5.0], [1.0, 3.0, 8.0], [6.0, 8.0, 3.0]], [[5.0, 6.0, 6.0], [1.0, 1.0, 4.0], [6.0, 2.0, 1.0]]]])
3731          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3732       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3733       def test_setslice_constData_rank4_taggedData_RUCP(self):
3734          arg=Data(numarray.array([[[[2.0, 3.0, 5.0], [1.0, 3.0, 5.0], [8.0, 6.0, 5.0]], [[5.0, 4.0, 3.0], [4.0, 3.0, 5.0], [4.0, 5.0, 4.0]], [[3.0, 2.0, 5.0], [4.0, 8.0, 2.0], [8.0, 2.0, 1.0]]], [[[1.0, 4.0, 5.0], [7.0, 8.0, 1.0], [7.0, 2.0, 2.0]], [[6.0, 1.0, 6.0], [8.0, 3.0, 4.0], [3.0, 5.0, 5.0]], [[5.0, 2.0, 7.0], [3.0, 7.0, 5.0], [7.0, 7.0, 8.0]]], [[[2.0, 7.0, 6.0], [2.0, 8.0, 8.0], [8.0, 4.0, 5.0]], [[5.0, 6.0, 7.0], [3.0, 2.0, 3.0], [1.0, 5.0, 3.0]], [[8.0, 7.0, 3.0], [7.0, 7.0, 2.0], [8.0, 5.0, 1.0]]], [[[6.0, 7.0, 8.0], [1.0, 2.0, 2.0], [5.0, 2.0, 7.0]], [[3.0, 2.0, 8.0], [6.0, 7.0, 2.0], [6.0, 5.0, 1.0]], [[4.0, 4.0, 7.0], [6.0, 8.0, 3.0], [7.0, 1.0, 5.0]]]]),self.functionspace)
3735          val=Data(numarray.array([[[7.0, 8.0, 8.0], [1.0, 8.0, 4.0]], [[6.0, 6.0, 6.0], [5.0, 6.0, 6.0]]]),self.functionspace)
3736          val.setTaggedValue(1,numarray.array([[[8.0, 1.0, 3.0], [3.0, 3.0, 4.0]], [[6.0, 6.0, 7.0], [4.0, 6.0, 3.0]]]))
3737          arg[1:3,:2,:,1]=val
3738          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3739          ref=msk_ref*numarray.array([[[[2.0, 3.0, 5.0], [1.0, 3.0, 5.0], [8.0, 6.0, 5.0]], [[5.0, 4.0, 3.0], [4.0, 3.0, 5.0], [4.0, 5.0, 4.0]], [[3.0, 2.0, 5.0], [4.0, 8.0, 2.0], [8.0, 2.0, 1.0]]], [[[1.0, 7.0, 5.0], [7.0, 8.0, 1.0], [7.0, 8.0, 2.0]], [[6.0, 1.0, 6.0], [8.0, 8.0, 4.0], [3.0, 4.0, 5.0]], [[5.0, 2.0, 7.0], [3.0, 7.0, 5.0], [7.0, 7.0, 8.0]]], [[[2.0, 6.0, 6.0], [2.0, 6.0, 8.0], [8.0, 6.0, 5.0]], [[5.0, 5.0, 7.0], [3.0, 6.0, 3.0], [1.0, 6.0, 3.0]], [[8.0, 7.0, 3.0], [7.0, 7.0, 2.0], [8.0, 5.0, 1.0]]], [[[6.0, 7.0, 8.0], [1.0, 2.0, 2.0], [5.0, 2.0, 7.0]], [[3.0, 2.0, 8.0], [6.0, 7.0, 2.0], [6.0, 5.0, 1.0]], [[4.0, 4.0, 7.0], [6.0, 8.0, 3.0], [7.0, 1.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 3.0, 5.0], [1.0, 3.0, 5.0], [8.0, 6.0, 5.0]], [[5.0, 4.0, 3.0], [4.0, 3.0, 5.0], [4.0, 5.0, 4.0]], [[3.0, 2.0, 5.0], [4.0, 8.0, 2.0], [8.0, 2.0, 1.0]]], [[[1.0, 8.0, 5.0], [7.0, 1.0, 1.0], [7.0, 3.0, 2.0]], [[6.0, 3.0, 6.0], [8.0, 3.0, 4.0], [3.0, 4.0, 5.0]], [[5.0, 2.0, 7.0], [3.0, 7.0, 5.0], [7.0, 7.0, 8.0]]], [[[2.0, 6.0, 6.0], [2.0, 6.0, 8.0], [8.0, 7.0, 5.0]], [[5.0, 4.0, 7.0], [3.0, 6.0, 3.0], [1.0, 3.0, 3.0]], [[8.0, 7.0, 3.0], [7.0, 7.0, 2.0], [8.0, 5.0, 1.0]]], [[[6.0, 7.0, 8.0], [1.0, 2.0, 2.0], [5.0, 2.0, 7.0]], [[3.0, 2.0, 8.0], [6.0, 7.0, 2.0], [6.0, 5.0, 1.0]], [[4.0, 4.0, 7.0], [6.0, 8.0, 3.0], [7.0, 1.0, 5.0]]]])
3740          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3741       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3742       def test_setslice_constData_rank4_taggedData_CRRR(self):
3743          arg=Data(numarray.array([[[[8.0, 4.0, 1.0], [8.0, 3.0, 7.0], [3.0, 2.0, 3.0]], [[7.0, 5.0, 7.0], [2.0, 2.0, 7.0], [2.0, 5.0, 6.0]], [[8.0, 7.0, 4.0], [3.0, 6.0, 6.0], [3.0, 2.0, 7.0]]], [[[3.0, 5.0, 3.0], [2.0, 2.0, 1.0], [7.0, 8.0, 6.0]], [[1.0, 8.0, 5.0], [2.0, 5.0, 6.0], [7.0, 6.0, 3.0]], [[7.0, 3.0, 5.0], [5.0, 3.0, 5.0], [6.0, 2.0, 8.0]]], [[[1.0, 7.0, 6.0], [8.0, 6.0, 2.0], [3.0, 4.0, 1.0]], [[3.0, 1.0, 6.0], [7.0, 7.0, 6.0], [4.0, 1.0, 2.0]], [[5.0, 4.0, 5.0], [4.0, 4.0, 6.0], [8.0, 5.0, 4.0]]], [[[2.0, 5.0, 5.0], [5.0, 3.0, 4.0], [6.0, 6.0, 5.0]], [[2.0, 3.0, 3.0], [3.0, 8.0, 2.0], [7.0, 4.0, 7.0]], [[8.0, 6.0, 4.0], [5.0, 8.0, 5.0], [7.0, 5.0, 4.0]]]]),self.functionspace)
3744          val=Data(numarray.array([[[[3.0]]], [[[1.0]]], [[[8.0]]], [[[7.0]]]]),self.functionspace)
3745          val.setTaggedValue(1,numarray.array([[[[8.0]]], [[[8.0]]], [[[1.0]]], [[[5.0]]]]))
3746          arg[:,1:2,1:2,1:2]=val
3747          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3748          ref=msk_ref*numarray.array([[[[8.0, 4.0, 1.0], [8.0, 3.0, 7.0], [3.0, 2.0, 3.0]], [[7.0, 5.0, 7.0], [2.0, 3.0, 7.0], [2.0, 5.0, 6.0]], [[8.0, 7.0, 4.0], [3.0, 6.0, 6.0], [3.0, 2.0, 7.0]]], [[[3.0, 5.0, 3.0], [2.0, 2.0, 1.0], [7.0, 8.0, 6.0]], [[1.0, 8.0, 5.0], [2.0, 1.0, 6.0], [7.0, 6.0, 3.0]], [[7.0, 3.0, 5.0], [5.0, 3.0, 5.0], [6.0, 2.0, 8.0]]], [[[1.0, 7.0, 6.0], [8.0, 6.0, 2.0], [3.0, 4.0, 1.0]], [[3.0, 1.0, 6.0], [7.0, 8.0, 6.0], [4.0, 1.0, 2.0]], [[5.0, 4.0, 5.0], [4.0, 4.0, 6.0], [8.0, 5.0, 4.0]]], [[[2.0, 5.0, 5.0], [5.0, 3.0, 4.0], [6.0, 6.0, 5.0]], [[2.0, 3.0, 3.0], [3.0, 7.0, 2.0], [7.0, 4.0, 7.0]], [[8.0, 6.0, 4.0], [5.0, 8.0, 5.0], [7.0, 5.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 4.0, 1.0], [8.0, 3.0, 7.0], [3.0, 2.0, 3.0]], [[7.0, 5.0, 7.0], [2.0, 8.0, 7.0], [2.0, 5.0, 6.0]], [[8.0, 7.0, 4.0], [3.0, 6.0, 6.0], [3.0, 2.0, 7.0]]], [[[3.0, 5.0, 3.0], [2.0, 2.0, 1.0], [7.0, 8.0, 6.0]], [[1.0, 8.0, 5.0], [2.0, 8.0, 6.0], [7.0, 6.0, 3.0]], [[7.0, 3.0, 5.0], [5.0, 3.0, 5.0], [6.0, 2.0, 8.0]]], [[[1.0, 7.0, 6.0], [8.0, 6.0, 2.0], [3.0, 4.0, 1.0]], [[3.0, 1.0, 6.0], [7.0, 1.0, 6.0], [4.0, 1.0, 2.0]], [[5.0, 4.0, 5.0], [4.0, 4.0, 6.0], [8.0, 5.0, 4.0]]], [[[2.0, 5.0, 5.0], [5.0, 3.0, 4.0], [6.0, 6.0, 5.0]], [[2.0, 3.0, 3.0], [3.0, 5.0, 2.0], [7.0, 4.0, 7.0]], [[8.0, 6.0, 4.0], [5.0, 8.0, 5.0], [7.0, 5.0, 4.0]]]])
3749          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3750       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3751       def test_setslice_constData_rank4_taggedData_PCRR(self):
3752          arg=Data(numarray.array([[[[5.0, 8.0, 1.0], [2.0, 2.0, 5.0], [5.0, 8.0, 8.0]], [[7.0, 7.0, 8.0], [3.0, 8.0, 3.0], [3.0, 5.0, 2.0]], [[7.0, 2.0, 6.0], [3.0, 4.0, 2.0], [6.0, 3.0, 2.0]]], [[[7.0, 3.0, 7.0], [5.0, 6.0, 6.0], [6.0, 6.0, 8.0]], [[5.0, 4.0, 3.0], [4.0, 3.0, 4.0], [4.0, 5.0, 3.0]], [[4.0, 7.0, 2.0], [7.0, 2.0, 5.0], [4.0, 3.0, 6.0]]], [[[7.0, 4.0, 4.0], [8.0, 7.0, 4.0], [7.0, 7.0, 8.0]], [[8.0, 2.0, 8.0], [3.0, 5.0, 8.0], [4.0, 2.0, 5.0]], [[1.0, 4.0, 2.0], [5.0, 4.0, 3.0], [3.0, 5.0, 5.0]]], [[[6.0, 1.0, 7.0], [7.0, 5.0, 5.0], [3.0, 2.0, 8.0]], [[2.0, 3.0, 2.0], [3.0, 6.0, 5.0], [6.0, 7.0, 6.0]], [[1.0, 3.0, 1.0], [8.0, 7.0, 7.0], [1.0, 1.0, 7.0]]]]),self.functionspace)
3753          val=Data(numarray.array([[[5.0]], [[4.0]], [[6.0]]]),self.functionspace)
3754          val.setTaggedValue(1,numarray.array([[[7.0]], [[7.0]], [[7.0]]]))
3755          arg[2,:,1:2,1:2]=val
3756          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3757          ref=msk_ref*numarray.array([[[[5.0, 8.0, 1.0], [2.0, 2.0, 5.0], [5.0, 8.0, 8.0]], [[7.0, 7.0, 8.0], [3.0, 8.0, 3.0], [3.0, 5.0, 2.0]], [[7.0, 2.0, 6.0], [3.0, 4.0, 2.0], [6.0, 3.0, 2.0]]], [[[7.0, 3.0, 7.0], [5.0, 6.0, 6.0], [6.0, 6.0, 8.0]], [[5.0, 4.0, 3.0], [4.0, 3.0, 4.0], [4.0, 5.0, 3.0]], [[4.0, 7.0, 2.0], [7.0, 2.0, 5.0], [4.0, 3.0, 6.0]]], [[[7.0, 4.0, 4.0], [8.0, 5.0, 4.0], [7.0, 7.0, 8.0]], [[8.0, 2.0, 8.0], [3.0, 4.0, 8.0], [4.0, 2.0, 5.0]], [[1.0, 4.0, 2.0], [5.0, 6.0, 3.0], [3.0, 5.0, 5.0]]], [[[6.0, 1.0, 7.0], [7.0, 5.0, 5.0], [3.0, 2.0, 8.0]], [[2.0, 3.0, 2.0], [3.0, 6.0, 5.0], [6.0, 7.0, 6.0]], [[1.0, 3.0, 1.0], [8.0, 7.0, 7.0], [1.0, 1.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 8.0, 1.0], [2.0, 2.0, 5.0], [5.0, 8.0, 8.0]], [[7.0, 7.0, 8.0], [3.0, 8.0, 3.0], [3.0, 5.0, 2.0]], [[7.0, 2.0, 6.0], [3.0, 4.0, 2.0], [6.0, 3.0, 2.0]]], [[[7.0, 3.0, 7.0], [5.0, 6.0, 6.0], [6.0, 6.0, 8.0]], [[5.0, 4.0, 3.0], [4.0, 3.0, 4.0], [4.0, 5.0, 3.0]], [[4.0, 7.0, 2.0], [7.0, 2.0, 5.0], [4.0, 3.0, 6.0]]], [[[7.0, 4.0, 4.0], [8.0, 7.0, 4.0], [7.0, 7.0, 8.0]], [[8.0, 2.0, 8.0], [3.0, 7.0, 8.0], [4.0, 2.0, 5.0]], [[1.0, 4.0, 2.0], [5.0, 7.0, 3.0], [3.0, 5.0, 5.0]]], [[[6.0, 1.0, 7.0], [7.0, 5.0, 5.0], [3.0, 2.0, 8.0]], [[2.0, 3.0, 2.0], [3.0, 6.0, 5.0], [6.0, 7.0, 6.0]], [[1.0, 3.0, 1.0], [8.0, 7.0, 7.0], [1.0, 1.0, 7.0]]]])
3758          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3759       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3760       def test_setslice_constData_rank4_taggedData_PURN(self):
3761          arg=Data(numarray.array([[[[3.0, 1.0, 6.0], [6.0, 3.0, 7.0], [7.0, 4.0, 3.0]], [[5.0, 7.0, 6.0], [6.0, 4.0, 4.0], [5.0, 1.0, 5.0]], [[1.0, 7.0, 7.0], [6.0, 7.0, 5.0], [3.0, 7.0, 4.0]]], [[[1.0, 3.0, 7.0], [3.0, 5.0, 3.0], [2.0, 8.0, 8.0]], [[1.0, 7.0, 7.0], [7.0, 4.0, 4.0], [3.0, 5.0, 5.0]], [[6.0, 4.0, 1.0], [8.0, 5.0, 2.0], [8.0, 3.0, 7.0]]], [[[2.0, 1.0, 5.0], [6.0, 6.0, 3.0], [7.0, 5.0, 6.0]], [[3.0, 1.0, 8.0], [1.0, 5.0, 4.0], [4.0, 6.0, 3.0]], [[1.0, 7.0, 6.0], [6.0, 6.0, 7.0], [6.0, 8.0, 1.0]]], [[[1.0, 4.0, 6.0], [7.0, 2.0, 6.0], [5.0, 5.0, 7.0]], [[4.0, 1.0, 2.0], [8.0, 6.0, 5.0], [8.0, 8.0, 7.0]], [[1.0, 3.0, 1.0], [7.0, 4.0, 1.0], [8.0, 7.0, 8.0]]]]),self.functionspace)
3762          val=Data(numarray.array([[[6.0, 1.0, 4.0]], [[5.0, 4.0, 6.0]]]),self.functionspace)
3763          val.setTaggedValue(1,numarray.array([[[2.0, 1.0, 3.0]], [[8.0, 1.0, 5.0]]]))
3764          arg[2,:2,1:2]=val
3765          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3766          ref=msk_ref*numarray.array([[[[3.0, 1.0, 6.0], [6.0, 3.0, 7.0], [7.0, 4.0, 3.0]], [[5.0, 7.0, 6.0], [6.0, 4.0, 4.0], [5.0, 1.0, 5.0]], [[1.0, 7.0, 7.0], [6.0, 7.0, 5.0], [3.0, 7.0, 4.0]]], [[[1.0, 3.0, 7.0], [3.0, 5.0, 3.0], [2.0, 8.0, 8.0]], [[1.0, 7.0, 7.0], [7.0, 4.0, 4.0], [3.0, 5.0, 5.0]], [[6.0, 4.0, 1.0], [8.0, 5.0, 2.0], [8.0, 3.0, 7.0]]], [[[2.0, 1.0, 5.0], [6.0, 1.0, 4.0], [7.0, 5.0, 6.0]], [[3.0, 1.0, 8.0], [5.0, 4.0, 6.0], [4.0, 6.0, 3.0]], [[1.0, 7.0, 6.0], [6.0, 6.0, 7.0], [6.0, 8.0, 1.0]]], [[[1.0, 4.0, 6.0], [7.0, 2.0, 6.0], [5.0, 5.0, 7.0]], [[4.0, 1.0, 2.0], [8.0, 6.0, 5.0], [8.0, 8.0, 7.0]], [[1.0, 3.0, 1.0], [7.0, 4.0, 1.0], [8.0, 7.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 1.0, 6.0], [6.0, 3.0, 7.0], [7.0, 4.0, 3.0]], [[5.0, 7.0, 6.0], [6.0, 4.0, 4.0], [5.0, 1.0, 5.0]], [[1.0, 7.0, 7.0], [6.0, 7.0, 5.0], [3.0, 7.0, 4.0]]], [[[1.0, 3.0, 7.0], [3.0, 5.0, 3.0], [2.0, 8.0, 8.0]], [[1.0, 7.0, 7.0], [7.0, 4.0, 4.0], [3.0, 5.0, 5.0]], [[6.0, 4.0, 1.0], [8.0, 5.0, 2.0], [8.0, 3.0, 7.0]]], [[[2.0, 1.0, 5.0], [2.0, 1.0, 3.0], [7.0, 5.0, 6.0]], [[3.0, 1.0, 8.0], [8.0, 1.0, 5.0], [4.0, 6.0, 3.0]], [[1.0, 7.0, 6.0], [6.0, 6.0, 7.0], [6.0, 8.0, 1.0]]], [[[1.0, 4.0, 6.0], [7.0, 2.0, 6.0], [5.0, 5.0, 7.0]], [[4.0, 1.0, 2.0], [8.0, 6.0, 5.0], [8.0, 8.0, 7.0]], [[1.0, 3.0, 1.0], [7.0, 4.0, 1.0], [8.0, 7.0, 8.0]]]])
3767          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3768       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3769       def test_setslice_constData_rank4_taggedData_LURL(self):
3770          arg=Data(numarray.array([[[[7.0, 1.0, 6.0], [1.0, 2.0, 5.0], [4.0, 6.0, 1.0]], [[7.0, 5.0, 2.0], [4.0, 3.0, 4.0], [4.0, 8.0, 7.0]], [[5.0, 7.0, 4.0], [3.0, 3.0, 3.0], [7.0, 4.0, 6.0]]], [[[6.0, 4.0, 1.0], [8.0, 2.0, 2.0], [2.0, 2.0, 7.0]], [[6.0, 2.0, 4.0], [6.0, 3.0, 4.0], [2.0, 6.0, 5.0]], [[8.0, 5.0, 8.0], [8.0, 8.0, 6.0], [8.0, 7.0, 4.0]]], [[[3.0, 7.0, 7.0], [2.0, 2.0, 2.0], [6.0, 5.0, 2.0]], [[1.0, 1.0, 3.0], [7.0, 6.0, 1.0], [3.0, 8.0, 3.0]], [[4.0, 8.0, 3.0], [1.0, 3.0, 3.0], [8.0, 2.0, 5.0]]], [[[6.0, 3.0, 7.0], [7.0, 5.0, 6.0], [3.0, 7.0, 5.0]], [[7.0, 5.0, 6.0], [3.0, 3.0, 5.0], [3.0, 4.0, 5.0]], [[7.0, 4.0, 4.0], [3.0, 6.0, 7.0], [8.0, 3.0, 2.0]]]]),self.functionspace)
3771          val=Data(numarray.array([[[[8.0]], [[5.0]]], [[[1.0]], [[4.0]]]]),self.functionspace)
3772          val.setTaggedValue(1,numarray.array([[[[4.0]], [[4.0]]], [[[1.0]], [[1.0]]]]))
3773          arg[2:,:2,1:2,2:]=val
3774          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3775          ref=msk_ref*numarray.array([[[[7.0, 1.0, 6.0], [1.0, 2.0, 5.0], [4.0, 6.0, 1.0]], [[7.0, 5.0, 2.0], [4.0, 3.0, 4.0], [4.0, 8.0, 7.0]], [[5.0, 7.0, 4.0], [3.0, 3.0, 3.0], [7.0, 4.0, 6.0]]], [[[6.0, 4.0, 1.0], [8.0, 2.0, 2.0], [2.0, 2.0, 7.0]], [[6.0, 2.0, 4.0], [6.0, 3.0, 4.0], [2.0, 6.0, 5.0]], [[8.0, 5.0, 8.0], [8.0, 8.0, 6.0], [8.0, 7.0, 4.0]]], [[[3.0, 7.0, 7.0], [2.0, 2.0, 8.0], [6.0, 5.0, 2.0]], [[1.0, 1.0, 3.0], [7.0, 6.0, 5.0], [3.0, 8.0, 3.0]], [[4.0, 8.0, 3.0], [1.0, 3.0, 3.0], [8.0, 2.0, 5.0]]], [[[6.0, 3.0, 7.0], [7.0, 5.0, 1.0], [3.0, 7.0, 5.0]], [[7.0, 5.0, 6.0], [3.0, 3.0, 4.0], [3.0, 4.0, 5.0]], [[7.0, 4.0, 4.0], [3.0, 6.0, 7.0], [8.0, 3.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 1.0, 6.0], [1.0, 2.0, 5.0], [4.0, 6.0, 1.0]], [[7.0, 5.0, 2.0], [4.0, 3.0, 4.0], [4.0, 8.0, 7.0]], [[5.0, 7.0, 4.0], [3.0, 3.0, 3.0], [7.0, 4.0, 6.0]]], [[[6.0, 4.0, 1.0], [8.0, 2.0, 2.0], [2.0, 2.0, 7.0]], [[6.0, 2.0, 4.0], [6.0, 3.0, 4.0], [2.0, 6.0, 5.0]], [[8.0, 5.0, 8.0], [8.0, 8.0, 6.0], [8.0, 7.0, 4.0]]], [[[3.0, 7.0, 7.0], [2.0, 2.0, 4.0], [6.0, 5.0, 2.0]], [[1.0, 1.0, 3.0], [7.0, 6.0, 4.0], [3.0, 8.0, 3.0]], [[4.0, 8.0, 3.0], [1.0, 3.0, 3.0], [8.0, 2.0, 5.0]]], [[[6.0, 3.0, 7.0], [7.0, 5.0, 1.0], [3.0, 7.0, 5.0]], [[7.0, 5.0, 6.0], [3.0, 3.0, 1.0], [3.0, 4.0, 5.0]], [[7.0, 4.0, 4.0], [3.0, 6.0, 7.0], [8.0, 3.0, 2.0]]]])
3776          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3777       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3778       def test_setslice_constData_rank4_taggedData_CPPC(self):
3779          arg=Data(numarray.array([[[[6.0, 6.0, 1.0], [2.0, 1.0, 4.0], [3.0, 7.0, 8.0]], [[4.0, 8.0, 3.0], [1.0, 1.0, 6.0], [6.0, 7.0, 5.0]], [[3.0, 7.0, 5.0], [4.0, 6.0, 7.0], [3.0, 5.0, 8.0]]], [[[4.0, 4.0, 6.0], [6.0, 1.0, 2.0], [7.0, 3.0, 2.0]], [[1.0, 8.0, 1.0], [3.0, 4.0, 5.0], [1.0, 4.0, 3.0]], [[1.0, 8.0, 4.0], [3.0, 5.0, 5.0], [2.0, 2.0, 6.0]]], [[[7.0, 1.0, 6.0], [6.0, 3.0, 8.0], [4.0, 6.0, 2.0]], [[5.0, 8.0, 2.0], [6.0, 3.0, 5.0], [4.0, 4.0, 2.0]], [[6.0, 3.0, 3.0], [3.0, 2.0, 7.0], [4.0, 7.0, 1.0]]], [[[5.0, 5.0, 8.0], [4.0, 6.0, 5.0], [2.0, 1.0, 7.0]], [[3.0, 8.0, 8.0], [3.0, 5.0, 1.0], [8.0, 1.0, 6.0]], [[8.0, 2.0, 6.0], [3.0, 6.0, 2.0], [4.0, 3.0, 1.0]]]]),self.functionspace)
3780          val=Data(numarray.array([[7.0, 1.0, 7.0], [8.0, 8.0, 4.0], [1.0, 2.0, 8.0], [3.0, 5.0, 3.0]]),self.functionspace)
3781          val.setTaggedValue(1,numarray.array([[5.0, 7.0, 4.0], [7.0, 3.0, 1.0], [3.0, 1.0, 8.0], [5.0, 5.0, 8.0]]))
3782          arg[:,1,1,:]=val
3783          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3784          ref=msk_ref*numarray.array([[[[6.0, 6.0, 1.0], [2.0, 1.0, 4.0], [3.0, 7.0, 8.0]], [[4.0, 8.0, 3.0], [7.0, 1.0, 7.0], [6.0, 7.0, 5.0]], [[3.0, 7.0, 5.0], [4.0, 6.0, 7.0], [3.0, 5.0, 8.0]]], [[[4.0, 4.0, 6.0], [6.0, 1.0, 2.0], [7.0, 3.0, 2.0]], [[1.0, 8.0, 1.0], [8.0, 8.0, 4.0], [1.0, 4.0, 3.0]], [[1.0, 8.0, 4.0], [3.0, 5.0, 5.0], [2.0, 2.0, 6.0]]], [[[7.0, 1.0, 6.0], [6.0, 3.0, 8.0], [4.0, 6.0, 2.0]], [[5.0, 8.0, 2.0], [1.0, 2.0, 8.0], [4.0, 4.0, 2.0]], [[6.0, 3.0, 3.0], [3.0, 2.0, 7.0], [4.0, 7.0, 1.0]]], [[[5.0, 5.0, 8.0], [4.0, 6.0, 5.0], [2.0, 1.0, 7.0]], [[3.0, 8.0, 8.0], [3.0, 5.0, 3.0], [8.0, 1.0, 6.0]], [[8.0, 2.0, 6.0], [3.0, 6.0, 2.0], [4.0, 3.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 6.0, 1.0], [2.0, 1.0, 4.0], [3.0, 7.0, 8.0]], [[4.0, 8.0, 3.0], [5.0, 7.0, 4.0], [6.0, 7.0, 5.0]], [[3.0, 7.0, 5.0], [4.0, 6.0, 7.0], [3.0, 5.0, 8.0]]], [[[4.0, 4.0, 6.0], [6.0, 1.0, 2.0], [7.0, 3.0, 2.0]], [[1.0, 8.0, 1.0], [7.0, 3.0, 1.0], [1.0, 4.0, 3.0]], [[1.0, 8.0, 4.0], [3.0, 5.0, 5.0], [2.0, 2.0, 6.0]]], [[[7.0, 1.0, 6.0], [6.0, 3.0, 8.0], [4.0, 6.0, 2.0]], [[5.0, 8.0, 2.0], [3.0, 1.0, 8.0], [4.0, 4.0, 2.0]], [[6.0, 3.0, 3.0], [3.0, 2.0, 7.0], [4.0, 7.0, 1.0]]], [[[5.0, 5.0, 8.0], [4.0, 6.0, 5.0], [2.0, 1.0, 7.0]], [[3.0, 8.0, 8.0], [5.0, 5.0, 8.0], [8.0, 1.0, 6.0]], [[8.0, 2.0, 6.0], [3.0, 6.0, 2.0], [4.0, 3.0, 1.0]]]])
3785          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3786       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3787       def test_setslice_constData_rank4_taggedData_PLRR(self):
3788          arg=Data(numarray.array([[[[7.0, 5.0, 4.0], [5.0, 4.0, 3.0], [5.0, 6.0, 4.0]], [[2.0, 8.0, 3.0], [6.0, 3.0, 7.0], [1.0, 6.0, 1.0]], [[5.0, 6.0, 2.0], [6.0, 5.0, 8.0], [7.0, 3.0, 1.0]]], [[[3.0, 2.0, 7.0], [3.0, 4.0, 8.0], [8.0, 1.0, 1.0]], [[3.0, 3.0, 6.0], [2.0, 4.0, 3.0], [7.0, 4.0, 2.0]], [[2.0, 4.0, 4.0], [1.0, 4.0, 6.0], [3.0, 1.0, 8.0]]], [[[8.0, 5.0, 7.0], [1.0, 6.0, 8.0], [4.0, 7.0, 7.0]], [[7.0, 7.0, 2.0], [3.0, 2.0, 1.0], [1.0, 5.0, 6.0]], [[4.0, 8.0, 6.0], [8.0, 6.0, 6.0], [7.0, 5.0, 5.0]]], [[[7.0, 5.0, 5.0], [7.0, 3.0, 6.0], [3.0, 1.0, 3.0]], [[3.0, 7.0, 7.0], [1.0, 3.0, 7.0], [6.0, 4.0, 6.0]], [[8.0, 2.0, 3.0], [2.0, 3.0, 6.0], [6.0, 5.0, 6.0]]]]),self.functionspace)
3789          val=Data(numarray.array([[[8.0]]]),self.functionspace)
3790          val.setTaggedValue(1,numarray.array([[[7.0]]]))
3791          arg[2,2:,1:2,1:2]=val
3792          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3793          ref=msk_ref*numarray.array([[[[7.0, 5.0, 4.0], [5.0, 4.0, 3.0], [5.0, 6.0, 4.0]], [[2.0, 8.0, 3.0], [6.0, 3.0, 7.0], [1.0, 6.0, 1.0]], [[5.0, 6.0, 2.0], [6.0, 5.0, 8.0], [7.0, 3.0, 1.0]]], [[[3.0, 2.0, 7.0], [3.0, 4.0, 8.0], [8.0, 1.0, 1.0]], [[3.0, 3.0, 6.0], [2.0, 4.0, 3.0], [7.0, 4.0, 2.0]], [[2.0, 4.0, 4.0], [1.0, 4.0, 6.0], [3.0, 1.0, 8.0]]], [[[8.0, 5.0, 7.0], [1.0, 6.0, 8.0], [4.0, 7.0, 7.0]], [[7.0, 7.0, 2.0], [3.0, 2.0, 1.0], [1.0, 5.0, 6.0]], [[4.0, 8.0, 6.0], [8.0, 8.0, 6.0], [7.0, 5.0, 5.0]]], [[[7.0, 5.0, 5.0], [7.0, 3.0, 6.0], [3.0, 1.0, 3.0]], [[3.0, 7.0, 7.0], [1.0, 3.0, 7.0], [6.0, 4.0, 6.0]], [[8.0, 2.0, 3.0], [2.0, 3.0, 6.0], [6.0, 5.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 5.0, 4.0], [5.0, 4.0, 3.0], [5.0, 6.0, 4.0]], [[2.0, 8.0, 3.0], [6.0, 3.0, 7.0], [1.0, 6.0, 1.0]], [[5.0, 6.0, 2.0], [6.0, 5.0, 8.0], [7.0, 3.0, 1.0]]], [[[3.0, 2.0, 7.0], [3.0, 4.0, 8.0], [8.0, 1.0, 1.0]], [[3.0, 3.0, 6.0], [2.0, 4.0, 3.0], [7.0, 4.0, 2.0]], [[2.0, 4.0, 4.0], [1.0, 4.0, 6.0], [3.0, 1.0, 8.0]]], [[[8.0, 5.0, 7.0], [1.0, 6.0, 8.0], [4.0, 7.0, 7.0]], [[7.0, 7.0, 2.0], [3.0, 2.0, 1.0], [1.0, 5.0, 6.0]], [[4.0, 8.0, 6.0], [8.0, 7.0, 6.0], [7.0, 5.0, 5.0]]], [[[7.0, 5.0, 5.0], [7.0, 3.0, 6.0], [3.0, 1.0, 3.0]], [[3.0, 7.0, 7.0], [1.0, 3.0, 7.0], [6.0, 4.0, 6.0]], [[8.0, 2.0, 3.0], [2.0, 3.0, 6.0], [6.0, 5.0, 6.0]]]])
3794          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3795       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3796       def test_setslice_constData_rank4_taggedData_LCPP(self):
3797          arg=Data(numarray.array([[[[2.0, 8.0, 7.0], [2.0, 7.0, 2.0], [8.0, 5.0, 4.0]], [[1.0, 3.0, 8.0], [2.0, 2.0, 2.0], [5.0, 8.0, 3.0]], [[7.0, 1.0, 4.0], [4.0, 2.0, 4.0], [5.0, 7.0, 6.0]]], [[[3.0, 3.0, 7.0], [8.0, 1.0, 5.0], [7.0, 3.0, 4.0]], [[7.0, 2.0, 8.0], [6.0, 1.0, 2.0], [2.0, 6.0, 4.0]], [[1.0, 1.0, 8.0], [6.0, 1.0, 2.0], [1.0, 8.0, 5.0]]], [[[3.0, 8.0, 4.0], [5.0, 8.0, 5.0], [3.0, 5.0, 7.0]], [[6.0, 3.0, 7.0], [1.0, 4.0, 1.0], [3.0, 1.0, 2.0]], [[3.0, 7.0, 7.0], [2.0, 8.0, 8.0], [7.0, 8.0, 8.0]]], [[[7.0, 3.0, 8.0], [5.0, 6.0, 5.0], [2.0, 6.0, 2.0]], [[2.0, 5.0, 7.0], [6.0, 5.0, 6.0], [2.0, 5.0, 5.0]], [[3.0, 7.0, 3.0], [5.0, 6.0, 6.0], [7.0, 5.0, 4.0]]]]),self.functionspace)
3798          val=Data(numarray.array([[2.0, 4.0, 7.0], [6.0, 6.0, 1.0]]),self.functionspace)
3799          val.setTaggedValue(1,numarray.array([[3.0, 2.0, 3.0], [4.0, 5.0, 7.0]]))
3800          arg[2:,:,1,1]=val
3801          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3802          ref=msk_ref*numarray.array([[[[2.0, 8.0, 7.0], [2.0, 7.0, 2.0], [8.0, 5.0, 4.0]], [[1.0, 3.0, 8.0], [2.0, 2.0, 2.0], [5.0, 8.0, 3.0]], [[7.0, 1.0, 4.0], [4.0, 2.0, 4.0], [5.0, 7.0, 6.0]]], [[[3.0, 3.0, 7.0], [8.0, 1.0, 5.0], [7.0, 3.0, 4.0]], [[7.0, 2.0, 8.0], [6.0, 1.0, 2.0], [2.0, 6.0, 4.0]], [[1.0, 1.0, 8.0], [6.0, 1.0, 2.0], [1.0, 8.0, 5.0]]], [[[3.0, 8.0, 4.0], [5.0, 2.0, 5.0], [3.0, 5.0, 7.0]], [[6.0, 3.0, 7.0], [1.0, 4.0, 1.0], [3.0, 1.0, 2.0]], [[3.0, 7.0, 7.0], [2.0, 7.0, 8.0], [7.0, 8.0, 8.0]]], [[[7.0, 3.0, 8.0], [5.0, 6.0, 5.0], [2.0, 6.0, 2.0]], [[2.0, 5.0, 7.0], [6.0, 6.0, 6.0], [2.0, 5.0, 5.0]], [[3.0, 7.0, 3.0], [5.0, 1.0, 6.0], [7.0, 5.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 8.0, 7.0], [2.0, 7.0, 2.0], [8.0, 5.0, 4.0]], [[1.0, 3.0, 8.0], [2.0, 2.0, 2.0], [5.0, 8.0, 3.0]], [[7.0, 1.0, 4.0], [4.0, 2.0, 4.0], [5.0, 7.0, 6.0]]], [[[3.0, 3.0, 7.0], [8.0, 1.0, 5.0], [7.0, 3.0, 4.0]], [[7.0, 2.0, 8.0], [6.0, 1.0, 2.0], [2.0, 6.0, 4.0]], [[1.0, 1.0, 8.0], [6.0, 1.0, 2.0], [1.0, 8.0, 5.0]]], [[[3.0, 8.0, 4.0], [5.0, 3.0, 5.0], [3.0, 5.0, 7.0]], [[6.0, 3.0, 7.0], [1.0, 2.0, 1.0], [3.0, 1.0, 2.0]], [[3.0, 7.0, 7.0], [2.0, 3.0, 8.0], [7.0, 8.0, 8.0]]], [[[7.0, 3.0, 8.0], [5.0, 4.0, 5.0], [2.0, 6.0, 2.0]], [[2.0, 5.0, 7.0], [6.0, 5.0, 6.0], [2.0, 5.0, 5.0]], [[3.0, 7.0, 3.0], [5.0, 7.0, 6.0], [7.0, 5.0, 4.0]]]])
3803          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3804       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3805       def test_setslice_constData_rank4_taggedData_UURP(self):
3806          arg=Data(numarray.array([[[[3.0, 2.0, 8.0], [6.0, 6.0, 8.0], [4.0, 7.0, 8.0]], [[8.0, 4.0, 3.0], [5.0, 3.0, 1.0], [4.0, 1.0, 2.0]], [[3.0, 4.0, 7.0], [4.0, 5.0, 8.0], [2.0, 6.0, 2.0]]], [[[5.0, 1.0, 6.0], [6.0, 1.0, 3.0], [1.0, 3.0, 7.0]], [[2.0, 8.0, 4.0], [5.0, 7.0, 5.0], [5.0, 6.0, 1.0]], [[7.0, 4.0, 4.0], [3.0, 2.0, 1.0], [6.0, 6.0, 1.0]]], [[[7.0, 8.0, 6.0], [1.0, 6.0, 6.0], [4.0, 8.0, 2.0]], [[3.0, 1.0, 7.0], [2.0, 8.0, 7.0], [8.0, 5.0, 3.0]], [[6.0, 2.0, 3.0], [4.0, 6.0, 3.0], [2.0, 5.0, 7.0]]], [[[1.0, 3.0, 8.0], [6.0, 8.0, 1.0], [3.0, 1.0, 4.0]], [[1.0, 4.0, 5.0], [3.0, 7.0, 1.0], [3.0, 3.0, 3.0]], [[6.0, 7.0, 3.0], [8.0, 7.0, 7.0], [6.0, 1.0, 3.0]]]]),self.functionspace)
3807          val=Data(numarray.array([[[4.0], [7.0]], [[5.0], [4.0]], [[7.0], [4.0]]]),self.functionspace)
3808          val.setTaggedValue(1,numarray.array([[[3.0], [5.0]], [[4.0], [8.0]], [[7.0], [7.0]]]))
3809          arg[:3,:2,1:2,1]=val
3810          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3811          ref=msk_ref*numarray.array([[[[3.0, 2.0, 8.0], [6.0, 4.0, 8.0], [4.0, 7.0, 8.0]], [[8.0, 4.0, 3.0], [5.0, 7.0, 1.0], [4.0, 1.0, 2.0]], [[3.0, 4.0, 7.0], [4.0, 5.0, 8.0], [2.0, 6.0, 2.0]]], [[[5.0, 1.0, 6.0], [6.0, 5.0, 3.0], [1.0, 3.0, 7.0]], [[2.0, 8.0, 4.0], [5.0, 4.0, 5.0], [5.0, 6.0, 1.0]], [[7.0, 4.0, 4.0], [3.0, 2.0, 1.0], [6.0, 6.0, 1.0]]], [[[7.0, 8.0, 6.0], [1.0, 7.0, 6.0], [4.0, 8.0, 2.0]], [[3.0, 1.0, 7.0], [2.0, 4.0, 7.0], [8.0, 5.0, 3.0]], [[6.0, 2.0, 3.0], [4.0, 6.0, 3.0], [2.0, 5.0, 7.0]]], [[[1.0, 3.0, 8.0], [6.0, 8.0, 1.0], [3.0, 1.0, 4.0]], [[1.0, 4.0, 5.0], [3.0, 7.0, 1.0], [3.0, 3.0, 3.0]], [[6.0, 7.0, 3.0], [8.0, 7.0, 7.0], [6.0, 1.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 2.0, 8.0], [6.0, 3.0, 8.0], [4.0, 7.0, 8.0]], [[8.0, 4.0, 3.0], [5.0, 5.0, 1.0], [4.0, 1.0, 2.0]], [[3.0, 4.0, 7.0], [4.0, 5.0, 8.0], [2.0, 6.0, 2.0]]], [[[5.0, 1.0, 6.0], [6.0, 4.0, 3.0], [1.0, 3.0, 7.0]], [[2.0, 8.0, 4.0], [5.0, 8.0, 5.0], [5.0, 6.0, 1.0]], [[7.0, 4.0, 4.0], [3.0, 2.0, 1.0], [6.0, 6.0, 1.0]]], [[[7.0, 8.0, 6.0], [1.0, 7.0, 6.0], [4.0, 8.0, 2.0]], [[3.0, 1.0, 7.0], [2.0, 7.0, 7.0], [8.0, 5.0, 3.0]], [[6.0, 2.0, 3.0], [4.0, 6.0, 3.0], [2.0, 5.0, 7.0]]], [[[1.0, 3.0, 8.0], [6.0, 8.0, 1.0], [3.0, 1.0, 4.0]], [[1.0, 4.0, 5.0], [3.0, 7.0, 1.0], [3.0, 3.0, 3.0]], [[6.0, 7.0, 3.0], [8.0, 7.0, 7.0], [6.0, 1.0, 3.0]]]])
3812          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3813       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3814       def test_setslice_constData_rank4_taggedData_RLRC(self):
3815          arg=Data(numarray.array([[[[6.0, 2.0, 6.0], [7.0, 8.0, 2.0], [2.0, 1.0, 8.0]], [[3.0, 3.0, 3.0], [3.0, 4.0, 3.0], [6.0, 8.0, 4.0]], [[3.0, 5.0, 2.0], [4.0, 5.0, 8.0], [8.0, 8.0, 3.0]]], [[[2.0, 8.0, 2.0], [4.0, 2.0, 3.0], [8.0, 3.0, 6.0]], [[5.0, 4.0, 6.0], [5.0, 5.0, 3.0], [5.0, 5.0, 2.0]], [[8.0, 7.0, 7.0], [5.0, 1.0, 6.0], [1.0, 1.0, 6.0]]], [[[2.0, 3.0, 2.0], [2.0, 7.0, 7.0], [4.0, 8.0, 2.0]], [[6.0, 3.0, 4.0], [4.0, 2.0, 1.0], [3.0, 7.0, 8.0]], [[3.0, 3.0, 3.0], [6.0, 8.0, 8.0], [4.0, 5.0, 4.0]]], [[[2.0, 8.0, 8.0], [4.0, 1.0, 6.0], [4.0, 7.0, 5.0]], [[2.0, 1.0, 2.0], [8.0, 5.0, 6.0], [7.0, 8.0, 6.0]], [[4.0, 2.0, 8.0], [4.0, 8.0, 1.0], [3.0, 7.0, 7.0]]]]),self.functionspace)
3816          val=Data(numarray.array([[[[7.0, 6.0, 4.0]]], [[[6.0, 2.0, 1.0]]]]),self.functionspace)
3817          val.setTaggedValue(1,numarray.array([[[[5.0, 2.0, 7.0]]], [[[3.0, 1.0, 3.0]]]]))
3818          arg[1:3,2:,1:2,:]=val
3819          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3820          ref=msk_ref*numarray.array([[[[6.0, 2.0, 6.0], [7.0, 8.0, 2.0], [2.0, 1.0, 8.0]], [[3.0, 3.0, 3.0], [3.0, 4.0, 3.0], [6.0, 8.0, 4.0]], [[3.0, 5.0, 2.0], [4.0, 5.0, 8.0], [8.0, 8.0, 3.0]]], [[[2.0, 8.0, 2.0], [4.0, 2.0, 3.0], [8.0, 3.0, 6.0]], [[5.0, 4.0, 6.0], [5.0, 5.0, 3.0], [5.0, 5.0, 2.0]], [[8.0, 7.0, 7.0], [7.0, 6.0, 4.0], [1.0, 1.0, 6.0]]], [[[2.0, 3.0, 2.0], [2.0, 7.0, 7.0], [4.0, 8.0, 2.0]], [[6.0, 3.0, 4.0], [4.0, 2.0, 1.0], [3.0, 7.0, 8.0]], [[3.0, 3.0, 3.0], [6.0, 2.0, 1.0], [4.0, 5.0, 4.0]]], [[[2.0, 8.0, 8.0], [4.0, 1.0, 6.0], [4.0, 7.0, 5.0]], [[2.0, 1.0, 2.0], [8.0, 5.0, 6.0], [7.0, 8.0, 6.0]], [[4.0, 2.0, 8.0], [4.0, 8.0, 1.0], [3.0, 7.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 2.0, 6.0], [7.0, 8.0, 2.0], [2.0, 1.0, 8.0]], [[3.0, 3.0, 3.0], [3.0, 4.0, 3.0], [6.0, 8.0, 4.0]], [[3.0, 5.0, 2.0], [4.0, 5.0, 8.0], [8.0, 8.0, 3.0]]], [[[2.0, 8.0, 2.0], [4.0, 2.0, 3.0], [8.0, 3.0, 6.0]], [[5.0, 4.0, 6.0], [5.0, 5.0, 3.0], [5.0, 5.0, 2.0]], [[8.0, 7.0, 7.0], [5.0, 2.0, 7.0], [1.0, 1.0, 6.0]]], [[[2.0, 3.0, 2.0], [2.0, 7.0, 7.0], [4.0, 8.0, 2.0]], [[6.0, 3.0, 4.0], [4.0, 2.0, 1.0], [3.0, 7.0, 8.0]], [[3.0, 3.0, 3.0], [3.0, 1.0, 3.0], [4.0, 5.0, 4.0]]], [[[2.0, 8.0, 8.0], [4.0, 1.0, 6.0], [4.0, 7.0, 5.0]], [[2.0, 1.0, 2.0], [8.0, 5.0, 6.0], [7.0, 8.0, 6.0]], [[4.0, 2.0, 8.0], [4.0, 8.0, 1.0], [3.0, 7.0, 7.0]]]])
3821          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3822       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3823       def test_setslice_constData_rank4_taggedData_CRPP(self):
3824          arg=Data(numarray.array([[[[2.0, 1.0, 4.0], [2.0, 6.0, 3.0], [5.0, 1.0, 3.0]], [[1.0, 5.0, 4.0], [7.0, 6.0, 5.0], [1.0, 5.0, 8.0]], [[3.0, 2.0, 7.0], [7.0, 7.0, 1.0], [3.0, 3.0, 4.0]]], [[[2.0, 4.0, 2.0], [1.0, 5.0, 1.0], [8.0, 1.0, 1.0]], [[4.0, 3.0, 6.0], [6.0, 2.0, 2.0], [4.0, 5.0, 5.0]], [[1.0, 3.0, 5.0], [3.0, 8.0, 8.0], [1.0, 7.0, 5.0]]], [[[5.0, 5.0, 4.0], [1.0, 1.0, 1.0], [5.0, 7.0, 3.0]], [[5.0, 7.0, 5.0], [3.0, 1.0, 5.0], [3.0, 7.0, 7.0]], [[8.0, 6.0, 3.0], [2.0, 3.0, 6.0], [6.0, 7.0, 2.0]]], [[[6.0, 6.0, 2.0], [8.0, 7.0, 5.0], [5.0, 3.0, 2.0]], [[1.0, 4.0, 8.0], [8.0, 1.0, 3.0], [1.0, 4.0, 1.0]], [[3.0, 3.0, 7.0], [5.0, 5.0, 8.0], [5.0, 6.0, 6.0]]]]),self.functionspace)
3825          val=Data(numarray.array([[2.0], [3.0], [8.0], [8.0]]),self.functionspace)
3826          val.setTaggedValue(1,numarray.array([[7.0], [2.0], [3.0], [4.0]]))
3827          arg[:,1:2,1,1]=val
3828          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3829          ref=msk_ref*numarray.array([[[[2.0, 1.0, 4.0], [2.0, 6.0, 3.0], [5.0, 1.0, 3.0]], [[1.0, 5.0, 4.0], [7.0, 2.0, 5.0], [1.0, 5.0, 8.0]], [[3.0, 2.0, 7.0], [7.0, 7.0, 1.0], [3.0, 3.0, 4.0]]], [[[2.0, 4.0, 2.0], [1.0, 5.0, 1.0], [8.0, 1.0, 1.0]], [[4.0, 3.0, 6.0], [6.0, 3.0, 2.0], [4.0, 5.0, 5.0]], [[1.0, 3.0, 5.0], [3.0, 8.0, 8.0], [1.0, 7.0, 5.0]]], [[[5.0, 5.0, 4.0], [1.0, 1.0, 1.0], [5.0, 7.0, 3.0]], [[5.0, 7.0, 5.0], [3.0, 8.0, 5.0], [3.0, 7.0, 7.0]], [[8.0, 6.0, 3.0], [2.0, 3.0, 6.0], [6.0, 7.0, 2.0]]], [[[6.0, 6.0, 2.0], [8.0, 7.0, 5.0], [5.0, 3.0, 2.0]], [[1.0, 4.0, 8.0], [8.0, 8.0, 3.0], [1.0, 4.0, 1.0]], [[3.0, 3.0, 7.0], [5.0, 5.0, 8.0], [5.0, 6.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 1.0, 4.0], [2.0, 6.0, 3.0], [5.0, 1.0, 3.0]], [[1.0, 5.0, 4.0], [7.0, 7.0, 5.0], [1.0, 5.0, 8.0]], [[3.0, 2.0, 7.0], [7.0, 7.0, 1.0], [3.0, 3.0, 4.0]]], [[[2.0, 4.0, 2.0], [1.0, 5.0, 1.0], [8.0, 1.0, 1.0]], [[4.0, 3.0, 6.0], [6.0, 2.0, 2.0], [4.0, 5.0, 5.0]], [[1.0, 3.0, 5.0], [3.0, 8.0, 8.0], [1.0, 7.0, 5.0]]], [[[5.0, 5.0, 4.0], [1.0, 1.0, 1.0], [5.0, 7.0, 3.0]], [[5.0, 7.0, 5.0], [3.0, 3.0, 5.0], [3.0, 7.0, 7.0]], [[8.0, 6.0, 3.0], [2.0, 3.0, 6.0], [6.0, 7.0, 2.0]]], [[[6.0, 6.0, 2.0], [8.0, 7.0, 5.0], [5.0, 3.0, 2.0]], [[1.0, 4.0, 8.0], [8.0, 4.0, 3.0], [1.0, 4.0, 1.0]], [[3.0, 3.0, 7.0], [5.0, 5.0, 8.0], [5.0, 6.0, 6.0]]]])
3830          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3831       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3832       def test_setslice_constData_rank4_taggedData_LPUU(self):
3833          arg=Data(numarray.array([[[[3.0, 1.0, 4.0], [8.0, 7.0, 5.0], [2.0, 6.0, 6.0]], [[7.0, 3.0, 7.0], [8.0, 2.0, 8.0], [6.0, 5.0, 2.0]], [[2.0, 5.0, 5.0], [6.0, 4.0, 4.0], [1.0, 8.0, 8.0]]], [[[6.0, 4.0, 7.0], [6.0, 5.0, 3.0], [7.0, 5.0, 2.0]], [[1.0, 5.0, 8.0], [1.0, 8.0, 3.0], [2.0, 5.0, 6.0]], [[6.0, 4.0, 5.0], [6.0, 1.0, 2.0], [4.0, 7.0, 4.0]]], [[[4.0, 2.0, 5.0], [7.0, 6.0, 6.0], [5.0, 6.0, 5.0]], [[7.0, 3.0, 7.0], [5.0, 6.0, 3.0], [5.0, 1.0, 7.0]], [[7.0, 8.0, 3.0], [5.0, 5.0, 8.0], [7.0, 6.0, 1.0]]], [[[2.0, 6.0, 8.0], [4.0, 4.0, 8.0], [1.0, 3.0, 4.0]], [[7.0, 4.0, 5.0], [8.0, 5.0, 7.0], [6.0, 8.0, 1.0]], [[6.0, 4.0, 3.0], [1.0, 4.0, 8.0], [1.0, 6.0, 1.0]]]]),self.functionspace)
3834          val=Data(numarray.array([[[8.0, 7.0], [5.0, 3.0]], [[5.0, 6.0], [4.0, 2.0]]]),self.functionspace)
3835          val.setTaggedValue(1,numarray.array([[[3.0, 4.0], [8.0, 1.0]], [[7.0, 6.0], [5.0, 4.0]]]))
3836          arg[2:,1,:2,:2]=val
3837          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3838          ref=msk_ref*numarray.array([[[[3.0, 1.0, 4.0], [8.0, 7.0, 5.0], [2.0, 6.0, 6.0]], [[7.0, 3.0, 7.0], [8.0, 2.0, 8.0], [6.0, 5.0, 2.0]], [[2.0, 5.0, 5.0], [6.0, 4.0, 4.0], [1.0, 8.0, 8.0]]], [[[6.0, 4.0, 7.0], [6.0, 5.0, 3.0], [7.0, 5.0, 2.0]], [[1.0, 5.0, 8.0], [1.0, 8.0, 3.0], [2.0, 5.0, 6.0]], [[6.0, 4.0, 5.0], [6.0, 1.0, 2.0], [4.0, 7.0, 4.0]]], [[[4.0, 2.0, 5.0], [7.0, 6.0, 6.0], [5.0, 6.0, 5.0]], [[8.0, 7.0, 7.0], [5.0, 3.0, 3.0], [5.0, 1.0, 7.0]], [[7.0, 8.0, 3.0], [5.0, 5.0, 8.0], [7.0, 6.0, 1.0]]], [[[2.0, 6.0, 8.0], [4.0, 4.0, 8.0], [1.0, 3.0, 4.0]], [[5.0, 6.0, 5.0], [4.0, 2.0, 7.0], [6.0, 8.0, 1.0]], [[6.0, 4.0, 3.0], [1.0, 4.0, 8.0], [1.0, 6.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 1.0, 4.0], [8.0, 7.0, 5.0], [2.0, 6.0, 6.0]], [[7.0, 3.0, 7.0], [8.0, 2.0, 8.0], [6.0, 5.0, 2.0]], [[2.0, 5.0, 5.0], [6.0, 4.0, 4.0], [1.0, 8.0, 8.0]]], [[[6.0, 4.0, 7.0], [6.0, 5.0, 3.0], [7.0, 5.0, 2.0]], [[1.0, 5.0, 8.0], [1.0, 8.0, 3.0], [2.0, 5.0, 6.0]], [[6.0, 4.0, 5.0], [6.0, 1.0, 2.0], [4.0, 7.0, 4.0]]], [[[4.0, 2.0, 5.0], [7.0, 6.0, 6.0], [5.0, 6.0, 5.0]], [[3.0, 4.0, 7.0], [8.0, 1.0, 3.0], [5.0, 1.0, 7.0]], [[7.0, 8.0, 3.0], [5.0, 5.0, 8.0], [7.0, 6.0, 1.0]]], [[[2.0, 6.0, 8.0], [4.0, 4.0, 8.0], [1.0, 3.0, 4.0]], [[7.0, 6.0, 5.0], [5.0, 4.0, 7.0], [6.0, 8.0, 1.0]], [[6.0, 4.0, 3.0], [1.0, 4.0, 8.0], [1.0, 6.0, 1.0]]]])
3839          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3840       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3841       def test_setslice_constData_rank4_taggedData_LPUN(self):
3842          arg=Data(numarray.array([[[[8.0, 5.0, 6.0], [5.0, 1.0, 2.0], [3.0, 3.0, 1.0]], [[6.0, 4.0, 1.0], [3.0, 4.0, 7.0], [8.0, 6.0, 7.0]], [[1.0, 4.0, 2.0], [1.0, 7.0, 1.0], [3.0, 4.0, 4.0]]], [[[3.0, 6.0, 1.0], [3.0, 8.0, 2.0], [2.0, 8.0, 2.0]], [[1.0, 3.0, 8.0], [1.0, 6.0, 3.0], [3.0, 2.0, 8.0]], [[4.0, 1.0, 5.0], [7.0, 1.0, 8.0], [8.0, 3.0, 2.0]]], [[[2.0, 1.0, 4.0], [6.0, 3.0, 7.0], [6.0, 5.0, 5.0]], [[7.0, 7.0, 5.0], [5.0, 3.0, 5.0], [3.0, 4.0, 4.0]], [[1.0, 5.0, 2.0], [2.0, 7.0, 8.0], [8.0, 2.0, 3.0]]], [[[1.0, 4.0, 3.0], [6.0, 4.0, 3.0], [4.0, 1.0, 2.0]], [[4.0, 6.0, 6.0], [3.0, 6.0, 1.0], [6.0, 1.0, 7.0]], [[2.0, 7.0, 6.0], [2.0, 2.0, 4.0], [7.0, 1.0, 2.0]]]]),self.functionspace)
3843          val=Data(numarray.array([[[6.0, 3.0, 6.0], [4.0, 1.0, 8.0]], [[7.0, 3.0, 4.0], [8.0, 1.0, 2.0]]]),self.functionspace)
3844          val.setTaggedValue(1,numarray.array([[[6.0, 6.0, 5.0], [3.0, 4.0, 2.0]], [[4.0, 4.0, 6.0], [4.0, 4.0, 6.0]]]))
3845          arg[2:,1,:2]=val
3846          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3847          ref=msk_ref*numarray.array([[[[8.0, 5.0, 6.0], [5.0, 1.0, 2.0], [3.0, 3.0, 1.0]], [[6.0, 4.0, 1.0], [3.0, 4.0, 7.0], [8.0, 6.0, 7.0]], [[1.0, 4.0, 2.0], [1.0, 7.0, 1.0], [3.0, 4.0, 4.0]]], [[[3.0, 6.0, 1.0], [3.0, 8.0, 2.0], [2.0, 8.0, 2.0]], [[1.0, 3.0, 8.0], [1.0, 6.0, 3.0], [3.0, 2.0, 8.0]], [[4.0, 1.0, 5.0], [7.0, 1.0, 8.0], [8.0, 3.0, 2.0]]], [[[2.0, 1.0, 4.0], [6.0, 3.0, 7.0], [6.0, 5.0, 5.0]], [[6.0, 3.0, 6.0], [4.0, 1.0, 8.0], [3.0, 4.0, 4.0]], [[1.0, 5.0, 2.0], [2.0, 7.0, 8.0], [8.0, 2.0, 3.0]]], [[[1.0, 4.0, 3.0], [6.0, 4.0, 3.0], [4.0, 1.0, 2.0]], [[7.0, 3.0, 4.0], [8.0, 1.0, 2.0], [6.0, 1.0, 7.0]], [[2.0, 7.0, 6.0], [2.0, 2.0, 4.0], [7.0, 1.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 5.0, 6.0], [5.0, 1.0, 2.0], [3.0, 3.0, 1.0]], [[6.0, 4.0, 1.0], [3.0, 4.0, 7.0], [8.0, 6.0, 7.0]], [[1.0, 4.0, 2.0], [1.0, 7.0, 1.0], [3.0, 4.0, 4.0]]], [[[3.0, 6.0, 1.0], [3.0, 8.0, 2.0], [2.0, 8.0, 2.0]], [[1.0, 3.0, 8.0], [1.0, 6.0, 3.0], [3.0, 2.0, 8.0]], [[4.0, 1.0, 5.0], [7.0, 1.0, 8.0], [8.0, 3.0, 2.0]]], [[[2.0, 1.0, 4.0], [6.0, 3.0, 7.0], [6.0, 5.0, 5.0]], [[6.0, 6.0, 5.0], [3.0, 4.0, 2.0], [3.0, 4.0, 4.0]], [[1.0, 5.0, 2.0], [2.0, 7.0, 8.0], [8.0, 2.0, 3.0]]], [[[1.0, 4.0, 3.0], [6.0, 4.0, 3.0], [4.0, 1.0, 2.0]], [[4.0, 4.0, 6.0], [4.0, 4.0, 6.0], [6.0, 1.0, 7.0]], [[2.0, 7.0, 6.0], [2.0, 2.0, 4.0], [7.0, 1.0, 2.0]]]])
3848          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3849       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3850       def test_setslice_constData_rank4_taggedData_CUPN(self):
3851          arg=Data(numarray.array([[[[6.0, 7.0, 6.0], [4.0, 3.0, 3.0], [1.0, 3.0, 4.0]], [[4.0, 8.0, 3.0], [6.0, 1.0, 7.0], [3.0, 4.0, 1.0]], [[8.0, 4.0, 3.0], [4.0, 4.0, 5.0], [6.0, 7.0, 2.0]]], [[[2.0, 6.0, 8.0], [5.0, 8.0, 6.0], [8.0, 5.0, 4.0]], [[4.0, 5.0, 2.0], [3.0, 7.0, 8.0], [2.0, 2.0, 6.0]], [[5.0, 7.0, 2.0], [5.0, 5.0, 5.0], [5.0, 7.0, 6.0]]], [[[6.0, 2.0, 5.0], [6.0, 4.0, 8.0], [7.0, 8.0, 6.0]], [[4.0, 3.0, 5.0], [7.0, 7.0, 8.0], [6.0, 4.0, 4.0]], [[8.0, 5.0, 7.0], [5.0, 7.0, 6.0], [7.0, 6.0, 3.0]]], [[[5.0, 5.0, 4.0], [3.0, 7.0, 6.0], [3.0, 1.0, 4.0]], [[4.0, 1.0, 7.0], [4.0, 3.0, 3.0], [4.0, 1.0, 3.0]], [[8.0, 2.0, 8.0], [3.0, 2.0, 8.0], [7.0, 3.0, 6.0]]]]),self.functionspace)
3852          val=Data(numarray.array([[[5.0, 8.0, 7.0], [3.0, 5.0, 3.0]], [[5.0, 2.0, 5.0], [4.0, 6.0, 3.0]], [[2.0, 5.0, 2.0], [5.0, 1.0, 8.0]], [[7.0, 7.0, 2.0], [4.0, 8.0, 8.0]]]),self.functionspace)
3853          val.setTaggedValue(1,numarray.array([[[8.0, 4.0, 4.0], [5.0, 2.0, 3.0]], [[2.0, 1.0, 4.0], [8.0, 5.0, 7.0]], [[8.0, 5.0, 5.0], [1.0, 1.0, 2.0]], [[1.0, 3.0, 7.0], [6.0, 7.0, 3.0]]]))
3854          arg[:,:2,1]=val
3855          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3856          ref=msk_ref*numarray.array([[[[6.0, 7.0, 6.0], [5.0, 8.0, 7.0], [1.0, 3.0, 4.0]], [[4.0, 8.0, 3.0], [3.0, 5.0, 3.0], [3.0, 4.0, 1.0]], [[8.0, 4.0, 3.0], [4.0, 4.0, 5.0], [6.0, 7.0, 2.0]]], [[[2.0, 6.0, 8.0], [5.0, 2.0, 5.0], [8.0, 5.0, 4.0]], [[4.0, 5.0, 2.0], [4.0, 6.0, 3.0], [2.0, 2.0, 6.0]], [[5.0, 7.0, 2.0], [5.0, 5.0, 5.0], [5.0, 7.0, 6.0]]], [[[6.0, 2.0, 5.0], [2.0, 5.0, 2.0], [7.0, 8.0, 6.0]], [[4.0, 3.0, 5.0], [5.0, 1.0, 8.0], [6.0, 4.0, 4.0]], [[8.0, 5.0, 7.0], [5.0, 7.0, 6.0], [7.0, 6.0, 3.0]]], [[[5.0, 5.0, 4.0], [7.0, 7.0, 2.0], [3.0, 1.0, 4.0]], [[4.0, 1.0, 7.0], [4.0, 8.0, 8.0], [4.0, 1.0, 3.0]], [[8.0, 2.0, 8.0], [3.0, 2.0, 8.0], [7.0, 3.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 7.0, 6.0], [8.0, 4.0, 4.0], [1.0, 3.0, 4.0]], [[4.0, 8.0, 3.0], [5.0, 2.0, 3.0], [3.0, 4.0, 1.0]], [[8.0, 4.0, 3.0], [4.0, 4.0, 5.0], [6.0, 7.0, 2.0]]], [[[2.0, 6.0, 8.0], [2.0, 1.0, 4.0], [8.0, 5.0, 4.0]], [[4.0, 5.0, 2.0], [8.0, 5.0, 7.0], [2.0, 2.0, 6.0]], [[5.0, 7.0, 2.0], [5.0, 5.0, 5.0], [5.0, 7.0, 6.0]]], [[[6.0, 2.0, 5.0], [8.0, 5.0, 5.0], [7.0, 8.0, 6.0]], [[4.0, 3.0, 5.0], [1.0, 1.0, 2.0], [6.0, 4.0, 4.0]], [[8.0, 5.0, 7.0], [5.0, 7.0, 6.0], [7.0, 6.0, 3.0]]], [[[5.0, 5.0, 4.0], [1.0, 3.0, 7.0], [3.0, 1.0, 4.0]], [[4.0, 1.0, 7.0], [6.0, 7.0, 3.0], [4.0, 1.0, 3.0]], [[8.0, 2.0, 8.0], [3.0, 2.0, 8.0], [7.0, 3.0, 6.0]]]])
3857          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3858       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3859       def test_setslice_constData_rank4_taggedData_LPLP(self):
3860          arg=Data(numarray.array([[[[3.0, 1.0, 5.0], [1.0, 4.0, 4.0], [3.0, 7.0, 8.0]], [[5.0, 1.0, 2.0], [7.0, 1.0, 2.0], [4.0, 4.0, 3.0]], [[1.0, 5.0, 4.0], [8.0, 6.0, 3.0], [4.0, 1.0, 4.0]]], [[[7.0, 2.0, 7.0], [6.0, 3.0, 3.0], [5.0, 8.0, 1.0]], [[7.0, 1.0, 7.0], [1.0, 1.0, 5.0], [3.0, 8.0, 5.0]], [[1.0, 6.0, 4.0], [8.0, 1.0, 7.0], [6.0, 3.0, 8.0]]], [[[2.0, 2.0, 5.0], [5.0, 8.0, 5.0], [5.0, 8.0, 2.0]], [[1.0, 4.0, 7.0], [8.0, 4.0, 2.0], [2.0, 4.0, 8.0]], [[5.0, 5.0, 6.0], [8.0, 5.0, 6.0], [1.0, 6.0, 6.0]]], [[[8.0, 5.0, 1.0], [7.0, 3.0, 5.0], [3.0, 1.0, 3.0]], [[4.0, 1.0, 3.0], [5.0, 1.0, 6.0], [1.0, 2.0, 3.0]], [[4.0, 2.0, 7.0], [4.0, 1.0, 3.0], [7.0, 7.0, 2.0]]]]),self.functionspace)
3861          val=Data(numarray.array([[5.0], [1.0]]),self.functionspace)
3862          val.setTaggedValue(1,numarray.array([[7.0], [1.0]]))
3863          arg[2:,1,2:,1]=val
3864          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3865          ref=msk_ref*numarray.array([[[[3.0, 1.0, 5.0], [1.0, 4.0, 4.0], [3.0, 7.0, 8.0]], [[5.0, 1.0, 2.0], [7.0, 1.0, 2.0], [4.0, 4.0, 3.0]], [[1.0, 5.0, 4.0], [8.0, 6.0, 3.0], [4.0, 1.0, 4.0]]], [[[7.0, 2.0, 7.0], [6.0, 3.0, 3.0], [5.0, 8.0, 1.0]], [[7.0, 1.0, 7.0], [1.0, 1.0, 5.0], [3.0, 8.0, 5.0]], [[1.0, 6.0, 4.0], [8.0, 1.0, 7.0], [6.0, 3.0, 8.0]]], [[[2.0, 2.0, 5.0], [5.0, 8.0, 5.0], [5.0, 8.0, 2.0]], [[1.0, 4.0, 7.0], [8.0, 4.0, 2.0], [2.0, 5.0, 8.0]], [[5.0, 5.0, 6.0], [8.0, 5.0, 6.0], [1.0, 6.0, 6.0]]], [[[8.0, 5.0, 1.0], [7.0, 3.0, 5.0], [3.0, 1.0, 3.0]], [[4.0, 1.0, 3.0], [5.0, 1.0, 6.0], [1.0, 1.0, 3.0]], [[4.0, 2.0, 7.0], [4.0, 1.0, 3.0], [7.0, 7.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 1.0, 5.0], [1.0, 4.0, 4.0], [3.0, 7.0, 8.0]], [[5.0, 1.0, 2.0], [7.0, 1.0, 2.0], [4.0, 4.0, 3.0]], [[1.0, 5.0, 4.0], [8.0, 6.0, 3.0], [4.0, 1.0, 4.0]]], [[[7.0, 2.0, 7.0], [6.0, 3.0, 3.0], [5.0, 8.0, 1.0]], [[7.0, 1.0, 7.0], [1.0, 1.0, 5.0], [3.0, 8.0, 5.0]], [[1.0, 6.0, 4.0], [8.0, 1.0, 7.0], [6.0, 3.0, 8.0]]], [[[2.0, 2.0, 5.0], [5.0, 8.0, 5.0], [5.0, 8.0, 2.0]], [[1.0, 4.0, 7.0], [8.0, 4.0, 2.0], [2.0, 7.0, 8.0]], [[5.0, 5.0, 6.0], [8.0, 5.0, 6.0], [1.0, 6.0, 6.0]]], [[[8.0, 5.0, 1.0], [7.0, 3.0, 5.0], [3.0, 1.0, 3.0]], [[4.0, 1.0, 3.0], [5.0, 1.0, 6.0], [1.0, 1.0, 3.0]], [[4.0, 2.0, 7.0], [4.0, 1.0, 3.0], [7.0, 7.0, 2.0]]]])
3866          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3867       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3868       def test_setslice_constData_rank4_taggedData_PRUP(self):
3869          arg=Data(numarray.array([[[[5.0, 7.0, 6.0], [7.0, 5.0, 6.0], [4.0, 4.0, 6.0]], [[8.0, 2.0, 4.0], [4.0, 3.0, 8.0], [2.0, 4.0, 6.0]], [[6.0, 6.0, 1.0], [5.0, 3.0, 6.0], [4.0, 8.0, 4.0]]], [[[8.0, 8.0, 8.0], [3.0, 5.0, 3.0], [8.0, 7.0, 5.0]], [[5.0, 8.0, 7.0], [5.0, 8.0, 2.0], [6.0, 5.0, 1.0]], [[5.0, 3.0, 8.0], [7.0, 8.0, 8.0], [7.0, 4.0, 8.0]]], [[[6.0, 5.0, 4.0], [6.0, 1.0, 8.0], [1.0, 8.0, 3.0]], [[6.0, 2.0, 4.0], [2.0, 7.0, 6.0], [4.0, 2.0, 1.0]], [[1.0, 6.0, 1.0], [5.0, 2.0, 4.0], [8.0, 4.0, 2.0]]], [[[2.0, 1.0, 1.0], [1.0, 4.0, 3.0], [4.0, 3.0, 4.0]], [[6.0, 4.0, 2.0], [3.0, 6.0, 8.0], [3.0, 1.0, 2.0]], [[1.0, 4.0, 5.0], [1.0, 2.0, 2.0], [6.0, 3.0, 5.0]]]]),self.functionspace)
3870          val=Data(numarray.array([[4.0, 5.0]]),self.functionspace)
3871          val.setTaggedValue(1,numarray.array([[1.0, 8.0]]))
3872          arg[2,1:2,:2,1]=val
3873          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3874          ref=msk_ref*numarray.array([[[[5.0, 7.0, 6.0], [7.0, 5.0, 6.0], [4.0, 4.0, 6.0]], [[8.0, 2.0, 4.0], [4.0, 3.0, 8.0], [2.0, 4.0, 6.0]], [[6.0, 6.0, 1.0], [5.0, 3.0, 6.0], [4.0, 8.0, 4.0]]], [[[8.0, 8.0, 8.0], [3.0, 5.0, 3.0], [8.0, 7.0, 5.0]], [[5.0, 8.0, 7.0], [5.0, 8.0, 2.0], [6.0, 5.0, 1.0]], [[5.0, 3.0, 8.0], [7.0, 8.0, 8.0], [7.0, 4.0, 8.0]]], [[[6.0, 5.0, 4.0], [6.0, 1.0, 8.0], [1.0, 8.0, 3.0]], [[6.0, 4.0, 4.0], [2.0, 5.0, 6.0], [4.0, 2.0, 1.0]], [[1.0, 6.0, 1.0], [5.0, 2.0, 4.0], [8.0, 4.0, 2.0]]], [[[2.0, 1.0, 1.0], [1.0, 4.0, 3.0], [4.0, 3.0, 4.0]], [[6.0, 4.0, 2.0], [3.0, 6.0, 8.0], [3.0, 1.0, 2.0]], [[1.0, 4.0, 5.0], [1.0, 2.0, 2.0], [6.0, 3.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 7.0, 6.0], [7.0, 5.0, 6.0], [4.0, 4.0, 6.0]], [[8.0, 2.0, 4.0], [4.0, 3.0, 8.0], [2.0, 4.0, 6.0]], [[6.0, 6.0, 1.0], [5.0, 3.0, 6.0], [4.0, 8.0, 4.0]]], [[[8.0, 8.0, 8.0], [3.0, 5.0, 3.0], [8.0, 7.0, 5.0]], [[5.0, 8.0, 7.0], [5.0, 8.0, 2.0], [6.0, 5.0, 1.0]], [[5.0, 3.0, 8.0], [7.0, 8.0, 8.0], [7.0, 4.0, 8.0]]], [[[6.0, 5.0, 4.0], [6.0, 1.0, 8.0], [1.0, 8.0, 3.0]], [[6.0, 1.0, 4.0], [2.0, 8.0, 6.0], [4.0, 2.0, 1.0]], [[1.0, 6.0, 1.0], [5.0, 2.0, 4.0], [8.0, 4.0, 2.0]]], [[[2.0, 1.0, 1.0], [1.0, 4.0, 3.0], [4.0, 3.0, 4.0]], [[6.0, 4.0, 2.0], [3.0, 6.0, 8.0], [3.0, 1.0, 2.0]], [[1.0, 4.0, 5.0], [1.0, 2.0, 2.0], [6.0, 3.0, 5.0]]]])
3875          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3876       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3877       def test_setslice_constData_rank4_taggedData_CLUC(self):
3878          arg=Data(numarray.array([[[[1.0, 2.0, 6.0], [6.0, 6.0, 7.0], [3.0, 1.0, 4.0]], [[8.0, 5.0, 7.0], [4.0, 6.0, 6.0], [8.0, 2.0, 1.0]], [[3.0, 1.0, 3.0], [3.0, 7.0, 8.0], [1.0, 1.0, 2.0]]], [[[2.0, 1.0, 1.0], [2.0, 7.0, 8.0], [5.0, 1.0, 5.0]], [[8.0, 5.0, 3.0], [5.0, 3.0, 6.0], [5.0, 8.0, 6.0]], [[3.0, 5.0, 8.0], [1.0, 8.0, 6.0], [4.0, 2.0, 5.0]]], [[[1.0, 6.0, 4.0], [7.0, 6.0, 1.0], [2.0, 7.0, 6.0]], [[4.0, 7.0, 5.0], [2.0, 6.0, 3.0], [5.0, 7.0, 4.0]], [[5.0, 6.0, 8.0], [3.0, 1.0, 1.0], [1.0, 5.0, 8.0]]], [[[7.0, 2.0, 6.0], [4.0, 6.0, 4.0], [3.0, 7.0, 2.0]], [[7.0, 2.0, 8.0], [1.0, 2.0, 4.0], [5.0, 4.0, 1.0]], [[5.0, 2.0, 2.0], [1.0, 7.0, 5.0], [5.0, 4.0, 5.0]]]]),self.functionspace)
3879          val=Data(numarray.array([[[[5.0, 5.0, 7.0], [3.0, 3.0, 2.0]]], [[[8.0, 5.0, 5.0], [6.0, 5.0, 1.0]]], [[[1.0, 8.0, 4.0], [7.0, 3.0, 6.0]]], [[[5.0, 8.0, 1.0], [3.0, 4.0, 1.0]]]]),self.functionspace)
3880          val.setTaggedValue(1,numarray.array([[[[8.0, 1.0, 7.0], [8.0, 5.0, 7.0]]], [[[4.0, 1.0, 1.0], [6.0, 2.0, 8.0]]], [[[4.0, 3.0, 2.0], [1.0, 5.0, 7.0]]], [[[7.0, 5.0, 2.0], [4.0, 2.0, 6.0]]]]))
3881          arg[:,2:,:2,:]=val
3882          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3883          ref=msk_ref*numarray.array([[[[1.0, 2.0, 6.0], [6.0, 6.0, 7.0], [3.0, 1.0, 4.0]], [[8.0, 5.0, 7.0], [4.0, 6.0, 6.0], [8.0, 2.0, 1.0]], [[5.0, 5.0, 7.0], [3.0, 3.0, 2.0], [1.0, 1.0, 2.0]]], [[[2.0, 1.0, 1.0], [2.0, 7.0, 8.0], [5.0, 1.0, 5.0]], [[8.0, 5.0, 3.0], [5.0, 3.0, 6.0], [5.0, 8.0, 6.0]], [[8.0, 5.0, 5.0], [6.0, 5.0, 1.0], [4.0, 2.0, 5.0]]], [[[1.0, 6.0, 4.0], [7.0, 6.0, 1.0], [2.0, 7.0, 6.0]], [[4.0, 7.0, 5.0], [2.0, 6.0, 3.0], [5.0, 7.0, 4.0]], [[1.0, 8.0, 4.0], [7.0, 3.0, 6.0], [1.0, 5.0, 8.0]]], [[[7.0, 2.0, 6.0], [4.0, 6.0, 4.0], [3.0, 7.0, 2.0]], [[7.0, 2.0, 8.0], [1.0, 2.0, 4.0], [5.0, 4.0, 1.0]], [[5.0, 8.0, 1.0], [3.0, 4.0, 1.0], [5.0, 4.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 2.0, 6.0], [6.0, 6.0, 7.0], [3.0, 1.0, 4.0]], [[8.0, 5.0, 7.0], [4.0, 6.0, 6.0], [8.0, 2.0, 1.0]], [[8.0, 1.0, 7.0], [8.0, 5.0, 7.0], [1.0, 1.0, 2.0]]], [[[2.0, 1.0, 1.0], [2.0, 7.0, 8.0], [5.0, 1.0, 5.0]], [[8.0, 5.0, 3.0], [5.0, 3.0, 6.0], [5.0, 8.0, 6.0]], [[4.0, 1.0, 1.0], [6.0, 2.0, 8.0], [4.0, 2.0, 5.0]]], [[[1.0, 6.0, 4.0], [7.0, 6.0, 1.0], [2.0, 7.0, 6.0]], [[4.0, 7.0, 5.0], [2.0, 6.0, 3.0], [5.0, 7.0, 4.0]], [[4.0, 3.0, 2.0], [1.0, 5.0, 7.0], [1.0, 5.0, 8.0]]], [[[7.0, 2.0, 6.0], [4.0, 6.0, 4.0], [3.0, 7.0, 2.0]], [[7.0, 2.0, 8.0], [1.0, 2.0, 4.0], [5.0, 4.0, 1.0]], [[7.0, 5.0, 2.0], [4.0, 2.0, 6.0], [5.0, 4.0, 5.0]]]])
3884          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3885       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3886       def test_setslice_constData_rank4_taggedData_PLUP(self):
3887          arg=Data(numarray.array([[[[8.0, 8.0, 8.0], [1.0, 3.0, 2.0], [5.0, 1.0, 3.0]], [[6.0, 4.0, 8.0], [4.0, 5.0, 1.0], [4.0, 2.0, 1.0]], [[7.0, 3.0, 6.0], [2.0, 7.0, 7.0], [1.0, 5.0, 3.0]]], [[[6.0, 5.0, 7.0], [3.0, 2.0, 1.0], [8.0, 8.0, 6.0]], [[4.0, 5.0, 2.0], [8.0, 1.0, 4.0], [1.0, 3.0, 4.0]], [[4.0, 1.0, 2.0], [3.0, 8.0, 7.0], [1.0, 6.0, 7.0]]], [[[6.0, 7.0, 1.0], [5.0, 2.0, 8.0], [5.0, 8.0, 3.0]], [[1.0, 2.0, 8.0], [1.0, 8.0, 1.0], [1.0, 4.0, 2.0]], [[1.0, 7.0, 6.0], [3.0, 5.0, 6.0], [4.0, 2.0, 8.0]]], [[[7.0, 3.0, 2.0], [2.0, 8.0, 7.0], [4.0, 3.0, 7.0]], [[4.0, 5.0, 4.0], [6.0, 7.0, 1.0], [3.0, 2.0, 3.0]], [[5.0, 7.0, 4.0], [3.0, 6.0, 6.0], [6.0, 5.0, 1.0]]]]),self.functionspace)
3888          val=Data(numarray.array([[1.0, 6.0]]),self.functionspace)
3889          val.setTaggedValue(1,numarray.array([[4.0, 4.0]]))
3890          arg[2,2:,:2,1]=val
3891          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3892          ref=msk_ref*numarray.array([[[[8.0, 8.0, 8.0], [1.0, 3.0, 2.0], [5.0, 1.0, 3.0]], [[6.0, 4.0, 8.0], [4.0, 5.0, 1.0], [4.0, 2.0, 1.0]], [[7.0, 3.0, 6.0], [2.0, 7.0, 7.0], [1.0, 5.0, 3.0]]], [[[6.0, 5.0, 7.0], [3.0, 2.0, 1.0], [8.0, 8.0, 6.0]], [[4.0, 5.0, 2.0], [8.0, 1.0, 4.0], [1.0, 3.0, 4.0]], [[4.0, 1.0, 2.0], [3.0, 8.0, 7.0], [1.0, 6.0, 7.0]]], [[[6.0, 7.0, 1.0], [5.0, 2.0, 8.0], [5.0, 8.0, 3.0]], [[1.0, 2.0, 8.0], [1.0, 8.0, 1.0], [1.0, 4.0, 2.0]], [[1.0, 1.0, 6.0], [3.0, 6.0, 6.0], [4.0, 2.0, 8.0]]], [[[7.0, 3.0, 2.0], [2.0, 8.0, 7.0], [4.0, 3.0, 7.0]], [[4.0, 5.0, 4.0], [6.0, 7.0, 1.0], [3.0, 2.0, 3.0]], [[5.0, 7.0, 4.0], [3.0, 6.0, 6.0], [6.0, 5.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 8.0, 8.0], [1.0, 3.0, 2.0], [5.0, 1.0, 3.0]], [[6.0, 4.0, 8.0], [4.0, 5.0, 1.0], [4.0, 2.0, 1.0]], [[7.0, 3.0, 6.0], [2.0, 7.0, 7.0], [1.0, 5.0, 3.0]]], [[[6.0, 5.0, 7.0], [3.0, 2.0, 1.0], [8.0, 8.0, 6.0]], [[4.0, 5.0, 2.0], [8.0, 1.0, 4.0], [1.0, 3.0, 4.0]], [[4.0, 1.0, 2.0], [3.0, 8.0, 7.0], [1.0, 6.0, 7.0]]], [[[6.0, 7.0, 1.0], [5.0, 2.0, 8.0], [5.0, 8.0, 3.0]], [[1.0, 2.0, 8.0], [1.0, 8.0, 1.0], [1.0, 4.0, 2.0]], [[1.0, 4.0, 6.0], [3.0, 4.0, 6.0], [4.0, 2.0, 8.0]]], [[[7.0, 3.0, 2.0], [2.0, 8.0, 7.0], [4.0, 3.0, 7.0]], [[4.0, 5.0, 4.0], [6.0, 7.0, 1.0], [3.0, 2.0, 3.0]], [[5.0, 7.0, 4.0], [3.0, 6.0, 6.0], [6.0, 5.0, 1.0]]]])
3893          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3894       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3895       def test_setslice_constData_rank4_taggedData_UUUU(self):
3896          arg=Data(numarray.array([[[[2.0, 2.0, 7.0], [2.0, 3.0, 3.0], [3.0, 5.0, 6.0]], [[2.0, 5.0, 6.0], [7.0, 2.0, 6.0], [6.0, 4.0, 2.0]], [[4.0, 6.0, 3.0], [3.0, 5.0, 3.0], [4.0, 4.0, 1.0]]], [[[7.0, 4.0, 7.0], [7.0, 8.0, 2.0], [8.0, 6.0, 7.0]], [[4.0, 1.0, 4.0], [7.0, 2.0, 7.0], [6.0, 8.0, 8.0]], [[7.0, 3.0, 5.0], [4.0, 1.0, 7.0], [5.0, 2.0, 5.0]]], [[[7.0, 3.0, 1.0], [8.0, 2.0, 1.0], [7.0, 7.0, 4.0]], [[2.0, 7.0, 6.0], [8.0, 2.0, 5.0], [2.0, 5.0, 6.0]], [[7.0, 4.0, 3.0], [2.0, 3.0, 2.0], [1.0, 7.0, 4.0]]], [[[2.0, 5.0, 3.0], [7.0, 7.0, 7.0], [6.0, 5.0, 6.0]], [[3.0, 4.0, 5.0], [1.0, 3.0, 7.0], [2.0, 8.0, 4.0]], [[4.0, 7.0, 2.0], [3.0, 3.0, 3.0], [3.0, 7.0, 8.0]]]]),self.functionspace)
3897          val=Data(numarray.array([[[[5.0, 7.0], [5.0, 5.0]], [[6.0, 2.0], [4.0, 2.0]]], [[[1.0, 6.0], [7.0, 6.0]], [[6.0, 4.0], [3.0, 6.0]]], [[[1.0, 1.0], [2.0, 5.0]], [[8.0, 4.0], [7.0, 8.0]]]]),self.functionspace)
3898          val.setTaggedValue(1,numarray.array([[[[8.0, 2.0], [5.0, 5.0]], [[6.0, 3.0], [8.0, 4.0]]], [[[2.0, 5.0], [8.0, 5.0]], [[6.0, 7.0], [2.0, 3.0]]], [[[8.0, 4.0], [5.0, 1.0]], [[2.0, 4.0], [8.0, 1.0]]]]))
3899          arg[:3,:2,:2,:2]=val
3900          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3901          ref=msk_ref*numarray.array([[[[5.0, 7.0, 7.0], [5.0, 5.0, 3.0], [3.0, 5.0, 6.0]], [[6.0, 2.0, 6.0], [4.0, 2.0, 6.0], [6.0, 4.0, 2.0]], [[4.0, 6.0, 3.0], [3.0, 5.0, 3.0], [4.0, 4.0, 1.0]]], [[[1.0, 6.0, 7.0], [7.0, 6.0, 2.0], [8.0, 6.0, 7.0]], [[6.0, 4.0, 4.0], [3.0, 6.0, 7.0], [6.0, 8.0, 8.0]], [[7.0, 3.0, 5.0], [4.0, 1.0, 7.0], [5.0, 2.0, 5.0]]], [[[1.0, 1.0, 1.0], [2.0, 5.0, 1.0], [7.0, 7.0, 4.0]], [[8.0, 4.0, 6.0], [7.0, 8.0, 5.0], [2.0, 5.0, 6.0]], [[7.0, 4.0, 3.0], [2.0, 3.0, 2.0], [1.0, 7.0, 4.0]]], [[[2.0, 5.0, 3.0], [7.0, 7.0, 7.0], [6.0, 5.0, 6.0]], [[3.0, 4.0, 5.0], [1.0, 3.0, 7.0], [2.0, 8.0, 4.0]], [[4.0, 7.0, 2.0], [3.0, 3.0, 3.0], [3.0, 7.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 2.0, 7.0], [5.0, 5.0, 3.0], [3.0, 5.0, 6.0]], [[6.0, 3.0, 6.0], [8.0, 4.0, 6.0], [6.0, 4.0, 2.0]], [[4.0, 6.0, 3.0], [3.0, 5.0, 3.0], [4.0, 4.0, 1.0]]], [[[2.0, 5.0, 7.0], [8.0, 5.0, 2.0], [8.0, 6.0, 7.0]], [[6.0, 7.0, 4.0], [2.0, 3.0, 7.0], [6.0, 8.0, 8.0]], [[7.0, 3.0, 5.0], [4.0, 1.0, 7.0], [5.0, 2.0, 5.0]]], [[[8.0, 4.0, 1.0], [5.0, 1.0, 1.0], [7.0, 7.0, 4.0]], [[2.0, 4.0, 6.0], [8.0, 1.0, 5.0], [2.0, 5.0, 6.0]], [[7.0, 4.0, 3.0], [2.0, 3.0, 2.0], [1.0, 7.0, 4.0]]], [[[2.0, 5.0, 3.0], [7.0, 7.0, 7.0], [6.0, 5.0, 6.0]], [[3.0, 4.0, 5.0], [1.0, 3.0, 7.0], [2.0, 8.0, 4.0]], [[4.0, 7.0, 2.0], [3.0, 3.0, 3.0], [3.0, 7.0, 8.0]]]])
3902          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3903       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3904       def test_setslice_constData_rank4_taggedData_UCRC(self):
3905          arg=Data(numarray.array([[[[8.0, 4.0, 1.0], [4.0, 1.0, 6.0], [3.0, 7.0, 7.0]], [[3.0, 8.0, 2.0], [3.0, 5.0, 8.0], [3.0, 5.0, 1.0]], [[5.0, 4.0, 7.0], [3.0, 5.0, 6.0], [8.0, 4.0, 3.0]]], [[[2.0, 8.0, 2.0], [2.0, 5.0, 2.0], [5.0, 3.0, 4.0]], [[2.0, 6.0, 1.0], [5.0, 4.0, 2.0], [2.0, 3.0, 1.0]], [[6.0, 4.0, 6.0], [3.0, 4.0, 7.0], [5.0, 3.0, 6.0]]], [[[3.0, 4.0, 1.0], [3.0, 8.0, 3.0], [8.0, 8.0, 7.0]], [[6.0, 4.0, 7.0], [8.0, 4.0, 8.0], [1.0, 1.0, 5.0]], [[5.0, 6.0, 1.0], [4.0, 2.0, 7.0], [3.0, 4.0, 8.0]]], [[[8.0, 6.0, 7.0], [5.0, 6.0, 6.0], [7.0, 5.0, 3.0]], [[3.0, 4.0, 6.0], [6.0, 6.0, 4.0], [8.0, 1.0, 3.0]], [[3.0, 6.0, 7.0], [4.0, 1.0, 3.0], [5.0, 4.0, 2.0]]]]),self.functionspace)
3906          val=Data(numarray.array([[[[7.0, 3.0, 4.0]], [[1.0, 3.0, 5.0]], [[2.0, 8.0, 3.0]]], [[[3.0, 5.0, 8.0]], [[7.0, 3.0, 4.0]], [[1.0, 1.0, 2.0]]], [[[1.0, 7.0, 1.0]], [[7.0, 2.0, 6.0]], [[5.0, 1.0, 2.0]]]]),self.functionspace)
3907          val.setTaggedValue(1,numarray.array([[[[7.0, 8.0, 3.0]], [[4.0, 1.0, 7.0]], [[8.0, 5.0, 5.0]]], [[[7.0, 1.0, 8.0]], [[6.0, 2.0, 8.0]], [[4.0, 8.0, 7.0]]], [[[5.0, 2.0, 6.0]], [[7.0, 6.0, 2.0]], [[7.0, 3.0, 6.0]]]]))
3908          arg[:3,:,1:2,:]=val
3909          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3910          ref=msk_ref*numarray.array([[[[8.0, 4.0, 1.0], [7.0, 3.0, 4.0], [3.0, 7.0, 7.0]], [[3.0, 8.0, 2.0], [1.0, 3.0, 5.0], [3.0, 5.0, 1.0]], [[5.0, 4.0, 7.0], [2.0, 8.0, 3.0], [8.0, 4.0, 3.0]]], [[[2.0, 8.0, 2.0], [3.0, 5.0, 8.0], [5.0, 3.0, 4.0]], [[2.0, 6.0, 1.0], [7.0, 3.0, 4.0], [2.0, 3.0, 1.0]], [[6.0, 4.0, 6.0], [1.0, 1.0, 2.0], [5.0, 3.0, 6.0]]], [[[3.0, 4.0, 1.0], [1.0, 7.0, 1.0], [8.0, 8.0, 7.0]], [[6.0, 4.0, 7.0], [7.0, 2.0, 6.0], [1.0, 1.0, 5.0]], [[5.0, 6.0, 1.0], [5.0, 1.0, 2.0], [3.0, 4.0, 8.0]]], [[[8.0, 6.0, 7.0], [5.0, 6.0, 6.0], [7.0, 5.0, 3.0]], [[3.0, 4.0, 6.0], [6.0, 6.0, 4.0], [8.0, 1.0, 3.0]], [[3.0, 6.0, 7.0], [4.0, 1.0, 3.0], [5.0, 4.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 4.0, 1.0], [7.0, 8.0, 3.0], [3.0, 7.0, 7.0]], [[3.0, 8.0, 2.0], [4.0, 1.0, 7.0], [3.0, 5.0, 1.0]], [[5.0, 4.0, 7.0], [8.0, 5.0, 5.0], [8.0, 4.0, 3.0]]], [[[2.0, 8.0, 2.0], [7.0, 1.0, 8.0], [5.0, 3.0, 4.0]], [[2.0, 6.0, 1.0], [6.0, 2.0, 8.0], [2.0, 3.0, 1.0]], [[6.0, 4.0, 6.0], [4.0, 8.0, 7.0], [5.0, 3.0, 6.0]]], [[[3.0, 4.0, 1.0], [5.0, 2.0, 6.0], [8.0, 8.0, 7.0]], [[6.0, 4.0, 7.0], [7.0, 6.0, 2.0], [1.0, 1.0, 5.0]], [[5.0, 6.0, 1.0], [7.0, 3.0, 6.0], [3.0, 4.0, 8.0]]], [[[8.0, 6.0, 7.0], [5.0, 6.0, 6.0], [7.0, 5.0, 3.0]], [[3.0, 4.0, 6.0], [6.0, 6.0, 4.0], [8.0, 1.0, 3.0]], [[3.0, 6.0, 7.0], [4.0, 1.0, 3.0], [5.0, 4.0, 2.0]]]])
3911          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3912       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3913       def test_setslice_constData_rank4_taggedData_LCLN(self):
3914          arg=Data(numarray.array([[[[7.0, 8.0, 1.0], [4.0, 7.0, 1.0], [4.0, 1.0, 8.0]], [[2.0, 2.0, 6.0], [7.0, 4.0, 6.0], [2.0, 4.0, 2.0]], [[1.0, 6.0, 6.0], [6.0, 7.0, 6.0], [5.0, 3.0, 1.0]]], [[[7.0, 8.0, 1.0], [6.0, 4.0, 4.0], [3.0, 7.0, 8.0]], [[1.0, 2.0, 1.0], [5.0, 4.0, 7.0], [4.0, 5.0, 3.0]], [[7.0, 8.0, 8.0], [7.0, 6.0, 5.0], [5.0, 2.0, 3.0]]], [[[6.0, 5.0, 4.0], [7.0, 6.0, 6.0], [5.0, 2.0, 2.0]], [[8.0, 3.0, 3.0], [2.0, 3.0, 8.0], [4.0, 7.0, 8.0]], [[8.0, 6.0, 4.0], [1.0, 1.0, 3.0], [6.0, 3.0, 2.0]]], [[[8.0, 3.0, 2.0], [4.0, 6.0, 3.0], [8.0, 4.0, 3.0]], [[1.0, 4.0, 5.0], [8.0, 8.0, 6.0], [6.0, 1.0, 2.0]], [[1.0, 7.0, 2.0], [8.0, 3.0, 6.0], [5.0, 8.0, 6.0]]]]),self.functionspace)
3915          val=Data(numarray.array([[[[5.0, 7.0, 4.0]], [[7.0, 3.0, 3.0]], [[8.0, 4.0, 4.0]]], [[[2.0, 6.0, 7.0]], [[7.0, 4.0, 3.0]], [[3.0, 8.0, 8.0]]]]),self.functionspace)
3916          val.setTaggedValue(1,numarray.array([[[[2.0, 4.0, 2.0]], [[1.0, 8.0, 5.0]], [[3.0, 8.0, 8.0]]], [[[4.0, 2.0, 8.0]], [[3.0, 8.0, 7.0]], [[6.0, 6.0, 2.0]]]]))
3917          arg[2:,:,2:]=val
3918          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3919          ref=msk_ref*numarray.array([[[[7.0, 8.0, 1.0], [4.0, 7.0, 1.0], [4.0, 1.0, 8.0]], [[2.0, 2.0, 6.0], [7.0, 4.0, 6.0], [2.0, 4.0, 2.0]], [[1.0, 6.0, 6.0], [6.0, 7.0, 6.0], [5.0, 3.0, 1.0]]], [[[7.0, 8.0, 1.0], [6.0, 4.0, 4.0], [3.0, 7.0, 8.0]], [[1.0, 2.0, 1.0], [5.0, 4.0, 7.0], [4.0, 5.0, 3.0]], [[7.0, 8.0, 8.0], [7.0, 6.0, 5.0], [5.0, 2.0, 3.0]]], [[[6.0, 5.0, 4.0], [7.0, 6.0, 6.0], [5.0, 7.0, 4.0]], [[8.0, 3.0, 3.0], [2.0, 3.0, 8.0], [7.0, 3.0, 3.0]], [[8.0, 6.0, 4.0], [1.0, 1.0, 3.0], [8.0, 4.0, 4.0]]], [[[8.0, 3.0, 2.0], [4.0, 6.0, 3.0], [2.0, 6.0, 7.0]], [[1.0, 4.0, 5.0], [8.0, 8.0, 6.0], [7.0, 4.0, 3.0]], [[1.0, 7.0, 2.0], [8.0, 3.0, 6.0], [3.0, 8.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 8.0, 1.0], [4.0, 7.0, 1.0], [4.0, 1.0, 8.0]], [[2.0, 2.0, 6.0], [7.0, 4.0, 6.0], [2.0, 4.0, 2.0]], [[1.0, 6.0, 6.0], [6.0, 7.0, 6.0], [5.0, 3.0, 1.0]]], [[[7.0, 8.0, 1.0], [6.0, 4.0, 4.0], [3.0, 7.0, 8.0]], [[1.0, 2.0, 1.0], [5.0, 4.0, 7.0], [4.0, 5.0, 3.0]], [[7.0, 8.0, 8.0], [7.0, 6.0, 5.0], [5.0, 2.0, 3.0]]], [[[6.0, 5.0, 4.0], [7.0, 6.0, 6.0], [2.0, 4.0, 2.0]], [[8.0, 3.0, 3.0], [2.0, 3.0, 8.0], [1.0, 8.0, 5.0]], [[8.0, 6.0, 4.0], [1.0, 1.0, 3.0], [3.0, 8.0, 8.0]]], [[[8.0, 3.0, 2.0], [4.0, 6.0, 3.0], [4.0, 2.0, 8.0]], [[1.0, 4.0, 5.0], [8.0, 8.0, 6.0], [3.0, 8.0, 7.0]], [[1.0, 7.0, 2.0], [8.0, 3.0, 6.0], [6.0, 6.0, 2.0]]]])
3920          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3921       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3922       def test_setslice_constData_rank4_taggedData_ULLL(self):
3923          arg=Data(numarray.array([[[[8.0, 5.0, 7.0], [4.0, 4.0, 2.0], [3.0, 4.0, 1.0]], [[5.0, 4.0, 5.0], [3.0, 2.0, 3.0], [7.0, 2.0, 4.0]], [[4.0, 1.0, 5.0], [4.0, 8.0, 3.0], [7.0, 7.0, 6.0]]], [[[5.0, 1.0, 7.0], [1.0, 6.0, 4.0], [4.0, 8.0, 8.0]], [[7.0, 7.0, 6.0], [7.0, 3.0, 4.0], [6.0, 3.0, 1.0]], [[6.0, 7.0, 4.0], [1.0, 8.0, 4.0], [3.0, 8.0, 4.0]]], [[[5.0, 8.0, 6.0], [2.0, 5.0, 1.0], [5.0, 1.0, 7.0]], [[5.0, 2.0, 3.0], [2.0, 5.0, 4.0], [3.0, 8.0, 6.0]], [[6.0, 1.0, 4.0], [7.0, 4.0, 8.0], [5.0, 8.0, 8.0]]], [[[5.0, 7.0, 5.0], [4.0, 5.0, 8.0], [1.0, 1.0, 2.0]], [[2.0, 8.0, 2.0], [6.0, 3.0, 1.0], [6.0, 7.0, 2.0]], [[1.0, 2.0, 5.0], [4.0, 4.0, 5.0], [7.0, 7.0, 3.0]]]]),self.functionspace)
3924          val=Data(numarray.array([[[[1.0]]], [[[7.0]]], [[[4.0]]]]),self.functionspace)
3925          val.setTaggedValue(1,numarray.array([[[[6.0]]], [[[7.0]]], [[[1.0]]]]))
3926          arg[:3,2:,2:,2:]=val
3927          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3928          ref=msk_ref*numarray.array([[[[8.0, 5.0, 7.0], [4.0, 4.0, 2.0], [3.0, 4.0, 1.0]], [[5.0, 4.0, 5.0], [3.0, 2.0, 3.0], [7.0, 2.0, 4.0]], [[4.0, 1.0, 5.0], [4.0, 8.0, 3.0], [7.0, 7.0, 1.0]]], [[[5.0, 1.0, 7.0], [1.0, 6.0, 4.0], [4.0, 8.0, 8.0]], [[7.0, 7.0, 6.0], [7.0, 3.0, 4.0], [6.0, 3.0, 1.0]], [[6.0, 7.0, 4.0], [1.0, 8.0, 4.0], [3.0, 8.0, 7.0]]], [[[5.0, 8.0, 6.0], [2.0, 5.0, 1.0], [5.0, 1.0, 7.0]], [[5.0, 2.0, 3.0], [2.0, 5.0, 4.0], [3.0, 8.0, 6.0]], [[6.0, 1.0, 4.0], [7.0, 4.0, 8.0], [5.0, 8.0, 4.0]]], [[[5.0, 7.0, 5.0], [4.0, 5.0, 8.0], [1.0, 1.0, 2.0]], [[2.0, 8.0, 2.0], [6.0, 3.0, 1.0], [6.0, 7.0, 2.0]], [[1.0, 2.0, 5.0], [4.0, 4.0, 5.0], [7.0, 7.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 5.0, 7.0], [4.0, 4.0, 2.0], [3.0, 4.0, 1.0]], [[5.0, 4.0, 5.0], [3.0, 2.0, 3.0], [7.0, 2.0, 4.0]], [[4.0, 1.0, 5.0], [4.0, 8.0, 3.0], [7.0, 7.0, 6.0]]], [[[5.0, 1.0, 7.0], [1.0, 6.0, 4.0], [4.0, 8.0, 8.0]], [[7.0, 7.0, 6.0], [7.0, 3.0, 4.0], [6.0, 3.0, 1.0]], [[6.0, 7.0, 4.0], [1.0, 8.0, 4.0], [3.0, 8.0, 7.0]]], [[[5.0, 8.0, 6.0], [2.0, 5.0, 1.0], [5.0, 1.0, 7.0]], [[5.0, 2.0, 3.0], [2.0, 5.0, 4.0], [3.0, 8.0, 6.0]], [[6.0, 1.0, 4.0], [7.0, 4.0, 8.0], [5.0, 8.0, 1.0]]], [[[5.0, 7.0, 5.0], [4.0, 5.0, 8.0], [1.0, 1.0, 2.0]], [[2.0, 8.0, 2.0], [6.0, 3.0, 1.0], [6.0, 7.0, 2.0]], [[1.0, 2.0, 5.0], [4.0, 4.0, 5.0], [7.0, 7.0, 3.0]]]])
3929          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3930       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3931       def test_setslice_constData_rank4_taggedData_CLRU(self):
3932          arg=Data(numarray.array([[[[3.0, 2.0, 3.0], [8.0, 8.0, 5.0], [3.0, 2.0, 6.0]], [[4.0, 2.0, 4.0], [8.0, 2.0, 4.0], [8.0, 6.0, 2.0]], [[3.0, 5.0, 8.0], [6.0, 4.0, 8.0], [1.0, 4.0, 7.0]]], [[[8.0, 6.0, 1.0], [3.0, 7.0, 1.0], [1.0, 6.0, 6.0]], [[4.0, 6.0, 3.0], [8.0, 7.0, 6.0], [2.0, 3.0, 6.0]], [[4.0, 1.0, 7.0], [4.0, 4.0, 2.0], [8.0, 6.0, 4.0]]], [[[7.0, 1.0, 7.0], [6.0, 4.0, 3.0], [5.0, 6.0, 3.0]], [[8.0, 1.0, 7.0], [6.0, 7.0, 6.0], [8.0, 6.0, 6.0]], [[6.0, 4.0, 1.0], [8.0, 4.0, 6.0], [4.0, 6.0, 1.0]]], [[[3.0, 3.0, 3.0], [2.0, 5.0, 4.0], [2.0, 1.0, 6.0]], [[5.0, 2.0, 2.0], [8.0, 3.0, 5.0], [6.0, 1.0, 7.0]], [[7.0, 3.0, 6.0], [2.0, 2.0, 3.0], [7.0, 1.0, 4.0]]]]),self.functionspace)
3933          val=Data(numarray.array([[[[5.0, 1.0]]], [[[7.0, 7.0]]], [[[4.0, 8.0]]], [[[4.0, 5.0]]]]),self.functionspace)
3934          val.setTaggedValue(1,numarray.array([[[[5.0, 6.0]]], [[[1.0, 3.0]]], [[[6.0, 3.0]]], [[[4.0, 3.0]]]]))
3935          arg[:,2:,1:2,:2]=val
3936          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3937          ref=msk_ref*numarray.array([[[[3.0, 2.0, 3.0], [8.0, 8.0, 5.0], [3.0, 2.0, 6.0]], [[4.0, 2.0, 4.0], [8.0, 2.0, 4.0], [8.0, 6.0, 2.0]], [[3.0, 5.0, 8.0], [5.0, 1.0, 8.0], [1.0, 4.0, 7.0]]], [[[8.0, 6.0, 1.0], [3.0, 7.0, 1.0], [1.0, 6.0, 6.0]], [[4.0, 6.0, 3.0], [8.0, 7.0, 6.0], [2.0, 3.0, 6.0]], [[4.0, 1.0, 7.0], [7.0, 7.0, 2.0], [8.0, 6.0, 4.0]]], [[[7.0, 1.0, 7.0], [6.0, 4.0, 3.0], [5.0, 6.0, 3.0]], [[8.0, 1.0, 7.0], [6.0, 7.0, 6.0], [8.0, 6.0, 6.0]], [[6.0, 4.0, 1.0], [4.0, 8.0, 6.0], [4.0, 6.0, 1.0]]], [[[3.0, 3.0, 3.0], [2.0, 5.0, 4.0], [2.0, 1.0, 6.0]], [[5.0, 2.0, 2.0], [8.0, 3.0, 5.0], [6.0, 1.0, 7.0]], [[7.0, 3.0, 6.0], [4.0, 5.0, 3.0], [7.0, 1.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 2.0, 3.0], [8.0, 8.0, 5.0], [3.0, 2.0, 6.0]], [[4.0, 2.0, 4.0], [8.0, 2.0, 4.0], [8.0, 6.0, 2.0]], [[3.0, 5.0, 8.0], [5.0, 6.0, 8.0], [1.0, 4.0, 7.0]]], [[[8.0, 6.0, 1.0], [3.0, 7.0, 1.0], [1.0, 6.0, 6.0]], [[4.0, 6.0, 3.0], [8.0, 7.0, 6.0], [2.0, 3.0, 6.0]], [[4.0, 1.0, 7.0], [1.0, 3.0, 2.0], [8.0, 6.0, 4.0]]], [[[7.0, 1.0, 7.0], [6.0, 4.0, 3.0], [5.0, 6.0, 3.0]], [[8.0, 1.0, 7.0], [6.0, 7.0, 6.0], [8.0, 6.0, 6.0]], [[6.0, 4.0, 1.0], [6.0, 3.0, 6.0], [4.0, 6.0, 1.0]]], [[[3.0, 3.0, 3.0], [2.0, 5.0, 4.0], [2.0, 1.0, 6.0]], [[5.0, 2.0, 2.0], [8.0, 3.0, 5.0], [6.0, 1.0, 7.0]], [[7.0, 3.0, 6.0], [4.0, 3.0, 3.0], [7.0, 1.0, 4.0]]]])
3938          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3939       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3940       def test_setslice_constData_rank4_taggedData_ULRR(self):
3941          arg=Data(numarray.array([[[[2.0, 2.0, 2.0], [6.0, 1.0, 4.0], [4.0, 8.0, 7.0]], [[3.0, 7.0, 3.0], [3.0, 5.0, 1.0], [5.0, 7.0, 6.0]], [[8.0, 1.0, 4.0], [8.0, 8.0, 7.0], [4.0, 6.0, 7.0]]], [[[5.0, 7.0, 3.0], [4.0, 8.0, 6.0], [2.0, 1.0, 5.0]], [[4.0, 3.0, 2.0], [4.0, 4.0, 4.0], [5.0, 4.0, 3.0]], [[2.0, 8.0, 1.0], [5.0, 7.0, 7.0], [6.0, 7.0, 8.0]]], [[[5.0, 4.0, 3.0], [8.0, 1.0, 5.0], [2.0, 4.0, 6.0]], [[7.0, 4.0, 8.0], [8.0, 8.0, 5.0], [5.0, 5.0, 1.0]], [[5.0, 1.0, 2.0], [7.0, 6.0, 5.0], [6.0, 4.0, 5.0]]], [[[3.0, 3.0, 8.0], [3.0, 2.0, 1.0], [7.0, 2.0, 6.0]], [[7.0, 1.0, 4.0], [7.0, 5.0, 8.0], [8.0, 2.0, 8.0]], [[7.0, 4.0, 8.0], [6.0, 3.0, 3.0], [8.0, 8.0, 5.0]]]]),self.functionspace)
3942          val=Data(numarray.array([[[[2.0]]], [[[3.0]]], [[[3.0]]]]),self.functionspace)
3943          val.setTaggedValue(1,numarray.array([[[[5.0]]], [[[6.0]]], [[[1.0]]]]))
3944          arg[:3,2:,1:2,1:2]=val
3945          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3946          ref=msk_ref*numarray.array([[[[2.0, 2.0, 2.0], [6.0, 1.0, 4.0], [4.0, 8.0, 7.0]], [[3.0, 7.0, 3.0], [3.0, 5.0, 1.0], [5.0, 7.0, 6.0]], [[8.0, 1.0, 4.0], [8.0, 2.0, 7.0], [4.0, 6.0, 7.0]]], [[[5.0, 7.0, 3.0], [4.0, 8.0, 6.0], [2.0, 1.0, 5.0]], [[4.0, 3.0, 2.0], [4.0, 4.0, 4.0], [5.0, 4.0, 3.0]], [[2.0, 8.0, 1.0], [5.0, 3.0, 7.0], [6.0, 7.0, 8.0]]], [[[5.0, 4.0, 3.0], [8.0, 1.0, 5.0], [2.0, 4.0, 6.0]], [[7.0, 4.0, 8.0], [8.0, 8.0, 5.0], [5.0, 5.0, 1.0]], [[5.0, 1.0, 2.0], [7.0, 3.0, 5.0], [6.0, 4.0, 5.0]]], [[[3.0, 3.0, 8.0], [3.0, 2.0, 1.0], [7.0, 2.0, 6.0]], [[7.0, 1.0, 4.0], [7.0, 5.0, 8.0], [8.0, 2.0, 8.0]], [[7.0, 4.0, 8.0], [6.0, 3.0, 3.0], [8.0, 8.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 2.0, 2.0], [6.0, 1.0, 4.0], [4.0, 8.0, 7.0]], [[3.0, 7.0, 3.0], [3.0, 5.0, 1.0], [5.0, 7.0, 6.0]], [[8.0, 1.0, 4.0], [8.0, 5.0, 7.0], [4.0, 6.0, 7.0]]], [[[5.0, 7.0, 3.0], [4.0, 8.0, 6.0], [2.0, 1.0, 5.0]], [[4.0, 3.0, 2.0], [4.0, 4.0, 4.0], [5.0, 4.0, 3.0]], [[2.0, 8.0, 1.0], [5.0, 6.0, 7.0], [6.0, 7.0, 8.0]]], [[[5.0, 4.0, 3.0], [8.0, 1.0, 5.0], [2.0, 4.0, 6.0]], [[7.0, 4.0, 8.0], [8.0, 8.0, 5.0], [5.0, 5.0, 1.0]], [[5.0, 1.0, 2.0], [7.0, 1.0, 5.0], [6.0, 4.0, 5.0]]], [[[3.0, 3.0, 8.0], [3.0, 2.0, 1.0], [7.0, 2.0, 6.0]], [[7.0, 1.0, 4.0], [7.0, 5.0, 8.0], [8.0, 2.0, 8.0]], [[7.0, 4.0, 8.0], [6.0, 3.0, 3.0], [8.0, 8.0, 5.0]]]])
3947          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3948       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3949       def test_setslice_constData_rank4_taggedData_RPPP(self):
3950          arg=Data(numarray.array([[[[1.0, 2.0, 3.0], [4.0, 2.0, 8.0], [4.0, 8.0, 8.0]], [[2.0, 7.0, 7.0], [6.0, 4.0, 6.0], [3.0, 6.0, 5.0]], [[4.0, 6.0, 7.0], [8.0, 7.0, 3.0], [1.0, 4.0, 4.0]]], [[[2.0, 1.0, 2.0], [1.0, 7.0, 7.0], [4.0, 7.0, 3.0]], [[2.0, 4.0, 1.0], [3.0, 4.0, 2.0], [3.0, 4.0, 7.0]], [[3.0, 4.0, 3.0], [2.0, 2.0, 6.0], [4.0, 2.0, 2.0]]], [[[7.0, 4.0, 7.0], [7.0, 5.0, 5.0], [7.0, 4.0, 3.0]], [[1.0, 7.0, 5.0], [5.0, 5.0, 5.0], [7.0, 3.0, 6.0]], [[4.0, 5.0, 4.0], [2.0, 7.0, 1.0], [6.0, 4.0, 2.0]]], [[[7.0, 8.0, 2.0], [3.0, 7.0, 5.0], [3.0, 3.0, 1.0]], [[3.0, 6.0, 4.0], [3.0, 8.0, 5.0], [8.0, 7.0, 6.0]], [[7.0, 2.0, 6.0], [1.0, 8.0, 8.0], [7.0, 1.0, 5.0]]]]),self.functionspace)
3951          val=Data(numarray.array([2.0, 4.0]),self.functionspace)
3952          val.setTaggedValue(1,numarray.array([7.0, 6.0]))
3953          arg[1:3,1,1,1]=val
3954          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3955          ref=msk_ref*numarray.array([[[[1.0, 2.0, 3.0], [4.0, 2.0, 8.0], [4.0, 8.0, 8.0]], [[2.0, 7.0, 7.0], [6.0, 4.0, 6.0], [3.0, 6.0, 5.0]], [[4.0, 6.0, 7.0], [8.0, 7.0, 3.0], [1.0, 4.0, 4.0]]], [[[2.0, 1.0, 2.0], [1.0, 7.0, 7.0], [4.0, 7.0, 3.0]], [[2.0, 4.0, 1.0], [3.0, 2.0, 2.0], [3.0, 4.0, 7.0]], [[3.0, 4.0, 3.0], [2.0, 2.0, 6.0], [4.0, 2.0, 2.0]]], [[[7.0, 4.0, 7.0], [7.0, 5.0, 5.0], [7.0, 4.0, 3.0]], [[1.0, 7.0, 5.0], [5.0, 4.0, 5.0], [7.0, 3.0, 6.0]], [[4.0, 5.0, 4.0], [2.0, 7.0, 1.0], [6.0, 4.0, 2.0]]], [[[7.0, 8.0, 2.0], [3.0, 7.0, 5.0], [3.0, 3.0, 1.0]], [[3.0, 6.0, 4.0], [3.0, 8.0, 5.0], [8.0, 7.0, 6.0]], [[7.0, 2.0, 6.0], [1.0, 8.0, 8.0], [7.0, 1.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 2.0, 3.0], [4.0, 2.0, 8.0], [4.0, 8.0, 8.0]], [[2.0, 7.0, 7.0], [6.0, 4.0, 6.0], [3.0, 6.0, 5.0]], [[4.0, 6.0, 7.0], [8.0, 7.0, 3.0], [1.0, 4.0, 4.0]]], [[[2.0, 1.0, 2.0], [1.0, 7.0, 7.0], [4.0, 7.0, 3.0]], [[2.0, 4.0, 1.0], [3.0, 7.0, 2.0], [3.0, 4.0, 7.0]], [[3.0, 4.0, 3.0], [2.0, 2.0, 6.0], [4.0, 2.0, 2.0]]], [[[7.0, 4.0, 7.0], [7.0, 5.0, 5.0], [7.0, 4.0, 3.0]], [[1.0, 7.0, 5.0], [5.0, 6.0, 5.0], [7.0, 3.0, 6.0]], [[4.0, 5.0, 4.0], [2.0, 7.0, 1.0], [6.0, 4.0, 2.0]]], [[[7.0, 8.0, 2.0], [3.0, 7.0, 5.0], [3.0, 3.0, 1.0]], [[3.0, 6.0, 4.0], [3.0, 8.0, 5.0], [8.0, 7.0, 6.0]], [[7.0, 2.0, 6.0], [1.0, 8.0, 8.0], [7.0, 1.0, 5.0]]]])
3956          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3957       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3958       def test_setslice_constData_rank4_taggedData_LRUU(self):
3959          arg=Data(numarray.array([[[[5.0, 4.0, 6.0], [3.0, 1.0, 4.0], [5.0, 4.0, 8.0]], [[3.0, 4.0, 3.0], [2.0, 8.0, 5.0], [7.0, 6.0, 7.0]], [[7.0, 5.0, 4.0], [7.0, 3.0, 6.0], [4.0, 5.0, 3.0]]], [[[1.0, 2.0, 8.0], [5.0, 2.0, 5.0], [4.0, 4.0, 2.0]], [[8.0, 3.0, 1.0], [3.0, 3.0, 5.0], [3.0, 1.0, 3.0]], [[2.0, 5.0, 7.0], [3.0, 1.0, 8.0], [6.0, 7.0, 5.0]]], [[[5.0, 8.0, 2.0], [8.0, 4.0, 3.0], [3.0, 1.0, 1.0]], [[7.0, 8.0, 5.0], [8.0, 2.0, 2.0], [7.0, 5.0, 6.0]], [[3.0, 7.0, 8.0], [1.0, 6.0, 6.0], [1.0, 4.0, 1.0]]], [[[3.0, 7.0, 1.0], [3.0, 4.0, 2.0], [3.0, 5.0, 6.0]], [[1.0, 8.0, 1.0], [5.0, 1.0, 7.0], [7.0, 6.0, 2.0]], [[7.0, 6.0, 3.0], [7.0, 8.0, 7.0], [7.0, 7.0, 6.0]]]]),self.functionspace)
3960          val=Data(numarray.array([[[[6.0, 1.0], [3.0, 8.0]]], [[[4.0, 7.0], [7.0, 7.0]]]]),self.functionspace)
3961          val.setTaggedValue(1,numarray.array([[[[8.0, 6.0], [2.0, 5.0]]], [[[1.0, 2.0], [1.0, 5.0]]]]))
3962          arg[2:,1:2,:2,:2]=val
3963          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3964          ref=msk_ref*numarray.array([[[[5.0, 4.0, 6.0], [3.0, 1.0, 4.0], [5.0, 4.0, 8.0]], [[3.0, 4.0, 3.0], [2.0, 8.0, 5.0], [7.0, 6.0, 7.0]], [[7.0, 5.0, 4.0], [7.0, 3.0, 6.0], [4.0, 5.0, 3.0]]], [[[1.0, 2.0, 8.0], [5.0, 2.0, 5.0], [4.0, 4.0, 2.0]], [[8.0, 3.0, 1.0], [3.0, 3.0, 5.0], [3.0, 1.0, 3.0]], [[2.0, 5.0, 7.0], [3.0, 1.0, 8.0], [6.0, 7.0, 5.0]]], [[[5.0, 8.0, 2.0], [8.0, 4.0, 3.0], [3.0, 1.0, 1.0]], [[6.0, 1.0, 5.0], [3.0, 8.0, 2.0], [7.0, 5.0, 6.0]], [[3.0, 7.0, 8.0], [1.0, 6.0, 6.0], [1.0, 4.0, 1.0]]], [[[3.0, 7.0, 1.0], [3.0, 4.0, 2.0], [3.0, 5.0, 6.0]], [[4.0, 7.0, 1.0], [7.0, 7.0, 7.0], [7.0, 6.0, 2.0]], [[7.0, 6.0, 3.0], [7.0, 8.0, 7.0], [7.0, 7.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 4.0, 6.0], [3.0, 1.0, 4.0], [5.0, 4.0, 8.0]], [[3.0, 4.0, 3.0], [2.0, 8.0, 5.0], [7.0, 6.0, 7.0]], [[7.0, 5.0, 4.0], [7.0, 3.0, 6.0], [4.0, 5.0, 3.0]]], [[[1.0, 2.0, 8.0], [5.0, 2.0, 5.0], [4.0, 4.0, 2.0]], [[8.0, 3.0, 1.0], [3.0, 3.0, 5.0], [3.0, 1.0, 3.0]], [[2.0, 5.0, 7.0], [3.0, 1.0, 8.0], [6.0, 7.0, 5.0]]], [[[5.0, 8.0, 2.0], [8.0, 4.0, 3.0], [3.0, 1.0, 1.0]], [[8.0, 6.0, 5.0], [2.0, 5.0, 2.0], [7.0, 5.0, 6.0]], [[3.0, 7.0, 8.0], [1.0, 6.0, 6.0], [1.0, 4.0, 1.0]]], [[[3.0, 7.0, 1.0], [3.0, 4.0, 2.0], [3.0, 5.0, 6.0]], [[1.0, 2.0, 1.0], [1.0, 5.0, 7.0], [7.0, 6.0, 2.0]], [[7.0, 6.0, 3.0], [7.0, 8.0, 7.0], [7.0, 7.0, 6.0]]]])
3965          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3966       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3967       def test_setslice_constData_rank4_taggedData_LPLU(self):
3968          arg=Data(numarray.array([[[[1.0, 7.0, 8.0], [8.0, 1.0, 8.0], [5.0, 2.0, 4.0]], [[7.0, 2.0, 8.0], [3.0, 4.0, 2.0], [7.0, 3.0, 8.0]], [[8.0, 8.0, 5.0], [4.0, 5.0, 7.0], [6.0, 8.0, 2.0]]], [[[5.0, 1.0, 3.0], [3.0, 1.0, 6.0], [7.0, 3.0, 7.0]], [[4.0, 6.0, 4.0], [6.0, 5.0, 7.0], [8.0, 2.0, 5.0]], [[6.0, 2.0, 7.0], [5.0, 2.0, 7.0], [3.0, 2.0, 2.0]]], [[[7.0, 5.0, 8.0], [1.0, 7.0, 1.0], [2.0, 3.0, 1.0]], [[1.0, 2.0, 6.0], [8.0, 4.0, 5.0], [4.0, 3.0, 4.0]], [[2.0, 2.0, 8.0], [8.0, 1.0, 3.0], [4.0, 7.0, 8.0]]], [[[6.0, 4.0, 5.0], [4.0, 6.0, 1.0], [4.0, 7.0, 6.0]], [[5.0, 7.0, 5.0], [6.0, 4.0, 6.0], [7.0, 8.0, 8.0]], [[2.0, 6.0, 1.0], [8.0, 7.0, 2.0], [6.0, 6.0, 8.0]]]]),self.functionspace)
3969          val=Data(numarray.array([[[8.0, 1.0]], [[4.0, 3.0]]]),self.functionspace)
3970          val.setTaggedValue(1,numarray.array([[[7.0, 3.0]], [[7.0, 4.0]]]))
3971          arg[2:,1,2:,:2]=val
3972          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3973          ref=msk_ref*numarray.array([[[[1.0, 7.0, 8.0], [8.0, 1.0, 8.0], [5.0, 2.0, 4.0]], [[7.0, 2.0, 8.0], [3.0, 4.0, 2.0], [7.0, 3.0, 8.0]], [[8.0, 8.0, 5.0], [4.0, 5.0, 7.0], [6.0, 8.0, 2.0]]], [[[5.0, 1.0, 3.0], [3.0, 1.0, 6.0], [7.0, 3.0, 7.0]], [[4.0, 6.0, 4.0], [6.0, 5.0, 7.0], [8.0, 2.0, 5.0]], [[6.0, 2.0, 7.0], [5.0, 2.0, 7.0], [3.0, 2.0, 2.0]]], [[[7.0, 5.0, 8.0], [1.0, 7.0, 1.0], [2.0, 3.0, 1.0]], [[1.0, 2.0, 6.0], [8.0, 4.0, 5.0], [8.0, 1.0, 4.0]], [[2.0, 2.0, 8.0], [8.0, 1.0, 3.0], [4.0, 7.0, 8.0]]], [[[6.0, 4.0, 5.0], [4.0, 6.0, 1.0], [4.0, 7.0, 6.0]], [[5.0, 7.0, 5.0], [6.0, 4.0, 6.0], [4.0, 3.0, 8.0]], [[2.0, 6.0, 1.0], [8.0, 7.0, 2.0], [6.0, 6.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 7.0, 8.0], [8.0, 1.0, 8.0], [5.0, 2.0, 4.0]], [[7.0, 2.0, 8.0], [3.0, 4.0, 2.0], [7.0, 3.0, 8.0]], [[8.0, 8.0, 5.0], [4.0, 5.0, 7.0], [6.0, 8.0, 2.0]]], [[[5.0, 1.0, 3.0], [3.0, 1.0, 6.0], [7.0, 3.0, 7.0]], [[4.0, 6.0, 4.0], [6.0, 5.0, 7.0], [8.0, 2.0, 5.0]], [[6.0, 2.0, 7.0], [5.0, 2.0, 7.0], [3.0, 2.0, 2.0]]], [[[7.0, 5.0, 8.0], [1.0, 7.0, 1.0], [2.0, 3.0, 1.0]], [[1.0, 2.0, 6.0], [8.0, 4.0, 5.0], [7.0, 3.0, 4.0]], [[2.0, 2.0, 8.0], [8.0, 1.0, 3.0], [4.0, 7.0, 8.0]]], [[[6.0, 4.0, 5.0], [4.0, 6.0, 1.0], [4.0, 7.0, 6.0]], [[5.0, 7.0, 5.0], [6.0, 4.0, 6.0], [7.0, 4.0, 8.0]], [[2.0, 6.0, 1.0], [8.0, 7.0, 2.0], [6.0, 6.0, 8.0]]]])
3974          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3975       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3976       def test_setslice_constData_rank4_taggedData_LRCN(self):
3977          arg=Data(numarray.array([[[[7.0, 1.0, 7.0], [1.0, 7.0, 2.0], [8.0, 8.0, 4.0]], [[8.0, 7.0, 4.0], [2.0, 1.0, 2.0], [5.0, 7.0, 6.0]], [[7.0, 1.0, 7.0], [3.0, 3.0, 4.0], [2.0, 7.0, 3.0]]], [[[5.0, 6.0, 4.0], [8.0, 6.0, 4.0], [5.0, 1.0, 4.0]], [[5.0, 5.0, 6.0], [5.0, 4.0, 8.0], [2.0, 8.0, 4.0]], [[2.0, 4.0, 3.0], [7.0, 2.0, 2.0], [5.0, 6.0, 5.0]]], [[[7.0, 4.0, 8.0], [3.0, 1.0, 6.0], [7.0, 6.0, 2.0]], [[6.0, 2.0, 4.0], [8.0, 8.0, 7.0], [2.0, 4.0, 5.0]], [[2.0, 5.0, 3.0], [8.0, 4.0, 1.0], [3.0, 7.0, 6.0]]], [[[8.0, 4.0, 5.0], [4.0, 6.0, 1.0], [3.0, 7.0, 1.0]], [[8.0, 3.0, 3.0], [2.0, 3.0, 7.0], [2.0, 1.0, 5.0]], [[6.0, 7.0, 7.0], [8.0, 4.0, 4.0], [3.0, 3.0, 3.0]]]]),self.functionspace)
3978          val=Data(numarray.array([[[[3.0, 7.0, 5.0], [7.0, 7.0, 1.0], [5.0, 6.0, 1.0]]], [[[2.0, 7.0, 7.0], [2.0, 7.0, 4.0], [6.0, 1.0, 2.0]]]]),self.functionspace)
3979          val.setTaggedValue(1,numarray.array([[[[1.0, 8.0, 2.0], [8.0, 7.0, 8.0], [6.0, 1.0, 2.0]]], [[[4.0, 1.0, 8.0], [1.0, 8.0, 2.0], [2.0, 3.0, 8.0]]]]))
3980          arg[2:,1:2,:]=val
3981          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3982          ref=msk_ref*numarray.array([[[[7.0, 1.0, 7.0], [1.0, 7.0, 2.0], [8.0, 8.0, 4.0]], [[8.0, 7.0, 4.0], [2.0, 1.0, 2.0], [5.0, 7.0, 6.0]], [[7.0, 1.0, 7.0], [3.0, 3.0, 4.0], [2.0, 7.0, 3.0]]], [[[5.0, 6.0, 4.0], [8.0, 6.0, 4.0], [5.0, 1.0, 4.0]], [[5.0, 5.0, 6.0], [5.0, 4.0, 8.0], [2.0, 8.0, 4.0]], [[2.0, 4.0, 3.0], [7.0, 2.0, 2.0], [5.0, 6.0, 5.0]]], [[[7.0, 4.0, 8.0], [3.0, 1.0, 6.0], [7.0, 6.0, 2.0]], [[3.0, 7.0, 5.0], [7.0, 7.0, 1.0], [5.0, 6.0, 1.0]], [[2.0, 5.0, 3.0], [8.0, 4.0, 1.0], [3.0, 7.0, 6.0]]], [[[8.0, 4.0, 5.0], [4.0, 6.0, 1.0], [3.0, 7.0, 1.0]], [[2.0, 7.0, 7.0], [2.0, 7.0, 4.0], [6.0, 1.0, 2.0]], [[6.0, 7.0, 7.0], [8.0, 4.0, 4.0], [3.0, 3.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 1.0, 7.0], [1.0, 7.0, 2.0], [8.0, 8.0, 4.0]], [[8.0, 7.0, 4.0], [2.0, 1.0, 2.0], [5.0, 7.0, 6.0]], [[7.0, 1.0, 7.0], [3.0, 3.0, 4.0], [2.0, 7.0, 3.0]]], [[[5.0, 6.0, 4.0], [8.0, 6.0, 4.0], [5.0, 1.0, 4.0]], [[5.0, 5.0, 6.0], [5.0, 4.0, 8.0], [2.0, 8.0, 4.0]], [[2.0, 4.0, 3.0], [7.0, 2.0, 2.0], [5.0, 6.0, 5.0]]], [[[7.0, 4.0, 8.0], [3.0, 1.0, 6.0], [7.0, 6.0, 2.0]], [[1.0, 8.0, 2.0], [8.0, 7.0, 8.0], [6.0, 1.0, 2.0]], [[2.0, 5.0, 3.0], [8.0, 4.0, 1.0], [3.0, 7.0, 6.0]]], [[[8.0, 4.0, 5.0], [4.0, 6.0, 1.0], [3.0, 7.0, 1.0]], [[4.0, 1.0, 8.0], [1.0, 8.0, 2.0], [2.0, 3.0, 8.0]], [[6.0, 7.0, 7.0], [8.0, 4.0, 4.0], [3.0, 3.0, 3.0]]]])
3983          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3984       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3985       def test_setslice_constData_rank4_taggedData_ULCL(self):
3986          arg=Data(numarray.array([[[[3.0, 8.0, 4.0], [7.0, 5.0, 7.0], [7.0, 1.0, 2.0]], [[6.0, 3.0, 5.0], [5.0, 8.0, 2.0], [2.0, 5.0, 5.0]], [[4.0, 4.0, 4.0], [8.0, 2.0, 7.0], [8.0, 3.0, 7.0]]], [[[4.0, 8.0, 4.0], [1.0, 1.0, 1.0], [1.0, 2.0, 4.0]], [[3.0, 4.0, 4.0], [1.0, 4.0, 7.0], [1.0, 2.0, 3.0]], [[3.0, 8.0, 2.0], [5.0, 1.0, 8.0], [5.0, 6.0, 6.0]]], [[[7.0, 5.0, 4.0], [7.0, 3.0, 5.0], [5.0, 5.0, 6.0]], [[4.0, 1.0, 4.0], [1.0, 6.0, 8.0], [2.0, 5.0, 2.0]], [[2.0, 2.0, 1.0], [4.0, 6.0, 6.0], [3.0, 8.0, 6.0]]], [[[2.0, 5.0, 2.0], [6.0, 3.0, 5.0], [4.0, 2.0, 5.0]], [[3.0, 8.0, 6.0], [2.0, 2.0, 4.0], [3.0, 7.0, 6.0]], [[2.0, 7.0, 4.0], [1.0, 8.0, 5.0], [1.0, 3.0, 2.0]]]]),self.functionspace)
3987          val=Data(numarray.array([[[[7.0], [5.0], [7.0]]], [[[1.0], [2.0], [3.0]]], [[[7.0], [6.0], [4.0]]]]),self.functionspace)
3988          val.setTaggedValue(1,numarray.array([[[[1.0], [4.0], [6.0]]], [[[1.0], [5.0], [7.0]]], [[[8.0], [7.0], [4.0]]]]))
3989          arg[:3,2:,:,2:]=val
3990          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
3991          ref=msk_ref*numarray.array([[[[3.0, 8.0, 4.0], [7.0, 5.0, 7.0], [7.0, 1.0, 2.0]], [[6.0, 3.0, 5.0], [5.0, 8.0, 2.0], [2.0, 5.0, 5.0]], [[4.0, 4.0, 7.0], [8.0, 2.0, 5.0], [8.0, 3.0, 7.0]]], [[[4.0, 8.0, 4.0], [1.0, 1.0, 1.0], [1.0, 2.0, 4.0]], [[3.0, 4.0, 4.0], [1.0, 4.0, 7.0], [1.0, 2.0, 3.0]], [[3.0, 8.0, 1.0], [5.0, 1.0, 2.0], [5.0, 6.0, 3.0]]], [[[7.0, 5.0, 4.0], [7.0, 3.0, 5.0], [5.0, 5.0, 6.0]], [[4.0, 1.0, 4.0], [1.0, 6.0, 8.0], [2.0, 5.0, 2.0]], [[2.0, 2.0, 7.0], [4.0, 6.0, 6.0], [3.0, 8.0, 4.0]]], [[[2.0, 5.0, 2.0], [6.0, 3.0, 5.0], [4.0, 2.0, 5.0]], [[3.0, 8.0, 6.0], [2.0, 2.0, 4.0], [3.0, 7.0, 6.0]], [[2.0, 7.0, 4.0], [1.0, 8.0, 5.0], [1.0, 3.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 8.0, 4.0], [7.0, 5.0, 7.0], [7.0, 1.0, 2.0]], [[6.0, 3.0, 5.0], [5.0, 8.0, 2.0], [2.0, 5.0, 5.0]], [[4.0, 4.0, 1.0], [8.0, 2.0, 4.0], [8.0, 3.0, 6.0]]], [[[4.0, 8.0, 4.0], [1.0, 1.0, 1.0], [1.0, 2.0, 4.0]], [[3.0, 4.0, 4.0], [1.0, 4.0, 7.0], [1.0, 2.0, 3.0]], [[3.0, 8.0, 1.0], [5.0, 1.0, 5.0], [5.0, 6.0, 7.0]]], [[[7.0, 5.0, 4.0], [7.0, 3.0, 5.0], [5.0, 5.0, 6.0]], [[4.0, 1.0, 4.0], [1.0, 6.0, 8.0], [2.0, 5.0, 2.0]], [[2.0, 2.0, 8.0], [4.0, 6.0, 7.0], [3.0, 8.0, 4.0]]], [[[2.0, 5.0, 2.0], [6.0, 3.0, 5.0], [4.0, 2.0, 5.0]], [[3.0, 8.0, 6.0], [2.0, 2.0, 4.0], [3.0, 7.0, 6.0]], [[2.0, 7.0, 4.0], [1.0, 8.0, 5.0], [1.0, 3.0, 2.0]]]])
3992          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
3993       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3994       def test_setslice_constData_rank4_taggedData_RRPP(self):
3995          arg=Data(numarray.array([[[[3.0, 3.0, 8.0], [1.0, 1.0, 7.0], [3.0, 8.0, 8.0]], [[5.0, 2.0, 8.0], [8.0, 5.0, 5.0], [4.0, 6.0, 3.0]], [[2.0, 2.0, 1.0], [5.0, 3.0, 6.0], [8.0, 1.0, 4.0]]], [[[8.0, 5.0, 5.0], [5.0, 8.0, 6.0], [2.0, 8.0, 1.0]], [[6.0, 5.0, 3.0], [3.0, 5.0, 7.0], [1.0, 1.0, 7.0]], [[2.0, 5.0, 5.0], [3.0, 5.0, 2.0], [6.0, 4.0, 4.0]]], [[[7.0, 2.0, 3.0], [5.0, 7.0, 3.0], [7.0, 4.0, 8.0]], [[8.0, 3.0, 8.0], [6.0, 3.0, 5.0], [6.0, 3.0, 6.0]], [[8.0, 5.0, 1.0], [6.0, 3.0, 2.0], [5.0, 4.0, 1.0]]], [[[5.0, 5.0, 2.0], [5.0, 7.0, 8.0], [8.0, 7.0, 7.0]], [[8.0, 3.0, 5.0], [2.0, 3.0, 3.0], [3.0, 3.0, 7.0]], [[4.0, 3.0, 1.0], [1.0, 3.0, 6.0], [6.0, 8.0, 2.0]]]]),self.functionspace)
3996          val=Data(numarray.array([[1.0], [4.0]]),self.functionspace)
3997          val.setTaggedValue(1,numarray.array([[4.0], [7.0]]))
3998          arg[1:3,1:2,1,1]=val
3999          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4000          ref=msk_ref*numarray.array([[[[3.0, 3.0, 8.0], [1.0, 1.0, 7.0], [3.0, 8.0, 8.0]], [[5.0, 2.0, 8.0], [8.0, 5.0, 5.0], [4.0, 6.0, 3.0]], [[2.0, 2.0, 1.0], [5.0, 3.0, 6.0], [8.0, 1.0, 4.0]]], [[[8.0, 5.0, 5.0], [5.0, 8.0, 6.0], [2.0, 8.0, 1.0]], [[6.0, 5.0, 3.0], [3.0, 1.0, 7.0], [1.0, 1.0, 7.0]], [[2.0, 5.0, 5.0], [3.0, 5.0, 2.0], [6.0, 4.0, 4.0]]], [[[7.0, 2.0, 3.0], [5.0, 7.0, 3.0], [7.0, 4.0, 8.0]], [[8.0, 3.0, 8.0], [6.0, 4.0, 5.0], [6.0, 3.0, 6.0]], [[8.0, 5.0, 1.0], [6.0, 3.0, 2.0], [5.0, 4.0, 1.0]]], [[[5.0, 5.0, 2.0], [5.0, 7.0, 8.0], [8.0, 7.0, 7.0]], [[8.0, 3.0, 5.0], [2.0, 3.0, 3.0], [3.0, 3.0, 7.0]], [[4.0, 3.0, 1.0], [1.0, 3.0, 6.0], [6.0, 8.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 3.0, 8.0], [1.0, 1.0, 7.0], [3.0, 8.0, 8.0]], [[5.0, 2.0, 8.0], [8.0, 5.0, 5.0], [4.0, 6.0, 3.0]], [[2.0, 2.0, 1.0], [5.0, 3.0, 6.0], [8.0, 1.0, 4.0]]], [[[8.0, 5.0, 5.0], [5.0, 8.0, 6.0], [2.0, 8.0, 1.0]], [[6.0, 5.0, 3.0], [3.0, 4.0, 7.0], [1.0, 1.0, 7.0]], [[2.0, 5.0, 5.0], [3.0, 5.0, 2.0], [6.0, 4.0, 4.0]]], [[[7.0, 2.0, 3.0], [5.0, 7.0, 3.0], [7.0, 4.0, 8.0]], [[8.0, 3.0, 8.0], [6.0, 7.0, 5.0], [6.0, 3.0, 6.0]], [[8.0, 5.0, 1.0], [6.0, 3.0, 2.0], [5.0, 4.0, 1.0]]], [[[5.0, 5.0, 2.0], [5.0, 7.0, 8.0], [8.0, 7.0, 7.0]], [[8.0, 3.0, 5.0], [2.0, 3.0, 3.0], [3.0, 3.0, 7.0]], [[4.0, 3.0, 1.0], [1.0, 3.0, 6.0], [6.0, 8.0, 2.0]]]])
4001          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4002       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4003       def test_setslice_constData_rank4_taggedData_CLLP(self):
4004          arg=Data(numarray.array([[[[7.0, 2.0, 5.0], [4.0, 2.0, 5.0], [8.0, 8.0, 1.0]], [[2.0, 3.0, 2.0], [2.0, 4.0, 6.0], [2.0, 1.0, 4.0]], [[6.0, 5.0, 7.0], [7.0, 8.0, 8.0], [2.0, 8.0, 4.0]]], [[[3.0, 3.0, 8.0], [4.0, 8.0, 8.0], [5.0, 8.0, 1.0]], [[8.0, 1.0, 6.0], [2.0, 4.0, 8.0], [6.0, 8.0, 1.0]], [[4.0, 4.0, 4.0], [7.0, 7.0, 4.0], [1.0, 3.0, 6.0]]], [[[6.0, 1.0, 6.0], [5.0, 2.0, 3.0], [6.0, 6.0, 4.0]], [[5.0, 6.0, 4.0], [5.0, 4.0, 6.0], [5.0, 2.0, 4.0]], [[3.0, 1.0, 6.0], [6.0, 8.0, 6.0], [7.0, 5.0, 6.0]]], [[[7.0, 7.0, 8.0], [5.0, 4.0, 7.0], [3.0, 3.0, 3.0]], [[4.0, 4.0, 3.0], [6.0, 7.0, 7.0], [5.0, 6.0, 6.0]], [[5.0, 5.0, 5.0], [5.0, 3.0, 8.0], [2.0, 6.0, 7.0]]]]),self.functionspace)
4005          val=Data(numarray.array([[[7.0]], [[5.0]], [[2.0]], [[1.0]]]),self.functionspace)
4006          val.setTaggedValue(1,numarray.array([[[6.0]], [[1.0]], [[8.0]], [[2.0]]]))
4007          arg[:,2:,2:,1]=val
4008          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4009          ref=msk_ref*numarray.array([[[[7.0, 2.0, 5.0], [4.0, 2.0, 5.0], [8.0, 8.0, 1.0]], [[2.0, 3.0, 2.0], [2.0, 4.0, 6.0], [2.0, 1.0, 4.0]], [[6.0, 5.0, 7.0], [7.0, 8.0, 8.0], [2.0, 7.0, 4.0]]], [[[3.0, 3.0, 8.0], [4.0, 8.0, 8.0], [5.0, 8.0, 1.0]], [[8.0, 1.0, 6.0], [2.0, 4.0, 8.0], [6.0, 8.0, 1.0]], [[4.0, 4.0, 4.0], [7.0, 7.0, 4.0], [1.0, 5.0, 6.0]]], [[[6.0, 1.0, 6.0], [5.0, 2.0, 3.0], [6.0, 6.0, 4.0]], [[5.0, 6.0, 4.0], [5.0, 4.0, 6.0], [5.0, 2.0, 4.0]], [[3.0, 1.0, 6.0], [6.0, 8.0, 6.0], [7.0, 2.0, 6.0]]], [[[7.0, 7.0, 8.0], [5.0, 4.0, 7.0], [3.0, 3.0, 3.0]], [[4.0, 4.0, 3.0], [6.0, 7.0, 7.0], [5.0, 6.0, 6.0]], [[5.0, 5.0, 5.0], [5.0, 3.0, 8.0], [2.0, 1.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 2.0, 5.0], [4.0, 2.0, 5.0], [8.0, 8.0, 1.0]], [[2.0, 3.0, 2.0], [2.0, 4.0, 6.0], [2.0, 1.0, 4.0]], [[6.0, 5.0, 7.0], [7.0, 8.0, 8.0], [2.0, 6.0, 4.0]]], [[[3.0, 3.0, 8.0], [4.0, 8.0, 8.0], [5.0, 8.0, 1.0]], [[8.0, 1.0, 6.0], [2.0, 4.0, 8.0], [6.0, 8.0, 1.0]], [[4.0, 4.0, 4.0], [7.0, 7.0, 4.0], [1.0, 1.0, 6.0]]], [[[6.0, 1.0, 6.0], [5.0, 2.0, 3.0], [6.0, 6.0, 4.0]], [[5.0, 6.0, 4.0], [5.0, 4.0, 6.0], [5.0, 2.0, 4.0]], [[3.0, 1.0, 6.0], [6.0, 8.0, 6.0], [7.0, 8.0, 6.0]]], [[[7.0, 7.0, 8.0], [5.0, 4.0, 7.0], [3.0, 3.0, 3.0]], [[4.0, 4.0, 3.0], [6.0, 7.0, 7.0], [5.0, 6.0, 6.0]], [[5.0, 5.0, 5.0], [5.0, 3.0, 8.0], [2.0, 2.0, 7.0]]]])
4010          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4011       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4012       def test_setslice_constData_rank4_taggedData_URRN(self):
4013          arg=Data(numarray.array([[[[7.0, 6.0, 4.0], [3.0, 2.0, 2.0], [1.0, 7.0, 3.0]], [[4.0, 6.0, 5.0], [5.0, 2.0, 6.0], [6.0, 8.0, 5.0]], [[3.0, 3.0, 3.0], [3.0, 8.0, 5.0], [8.0, 1.0, 1.0]]], [[[3.0, 1.0, 8.0], [3.0, 7.0, 3.0], [4.0, 2.0, 5.0]], [[8.0, 1.0, 4.0], [8.0, 3.0, 5.0], [1.0, 1.0, 3.0]], [[6.0, 7.0, 1.0], [8.0, 5.0, 7.0], [3.0, 8.0, 7.0]]], [[[1.0, 2.0, 2.0], [5.0, 1.0, 6.0], [2.0, 8.0, 6.0]], [[3.0, 6.0, 8.0], [2.0, 2.0, 2.0], [6.0, 5.0, 5.0]], [[2.0, 3.0, 3.0], [6.0, 2.0, 8.0], [2.0, 5.0, 7.0]]], [[[6.0, 3.0, 1.0], [7.0, 2.0, 8.0], [6.0, 3.0, 6.0]], [[2.0, 7.0, 6.0], [1.0, 5.0, 6.0], [3.0, 2.0, 6.0]], [[6.0, 7.0, 3.0], [3.0, 1.0, 2.0], [1.0, 3.0, 7.0]]]]),self.functionspace)
4014          val=Data(numarray.array([[[[5.0, 8.0, 8.0]]], [[[1.0, 4.0, 7.0]]], [[[7.0, 5.0, 3.0]]]]),self.functionspace)
4015          val.setTaggedValue(1,numarray.array([[[[7.0, 3.0, 2.0]]], [[[1.0, 7.0, 2.0]]], [[[3.0, 2.0, 3.0]]]]))
4016          arg[:3,1:2,1:2]=val
4017          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4018          ref=msk_ref*numarray.array([[[[7.0, 6.0, 4.0], [3.0, 2.0, 2.0], [1.0, 7.0, 3.0]], [[4.0, 6.0, 5.0], [5.0, 8.0, 8.0], [6.0, 8.0, 5.0]], [[3.0, 3.0, 3.0], [3.0, 8.0, 5.0], [8.0, 1.0, 1.0]]], [[[3.0, 1.0, 8.0], [3.0, 7.0, 3.0], [4.0, 2.0, 5.0]], [[8.0, 1.0, 4.0], [1.0, 4.0, 7.0], [1.0, 1.0, 3.0]], [[6.0, 7.0, 1.0], [8.0, 5.0, 7.0], [3.0, 8.0, 7.0]]], [[[1.0, 2.0, 2.0], [5.0, 1.0, 6.0], [2.0, 8.0, 6.0]], [[3.0, 6.0, 8.0], [7.0, 5.0, 3.0], [6.0, 5.0, 5.0]], [[2.0, 3.0, 3.0], [6.0, 2.0, 8.0], [2.0, 5.0, 7.0]]], [[[6.0, 3.0, 1.0], [7.0, 2.0, 8.0], [6.0, 3.0, 6.0]], [[2.0, 7.0, 6.0], [1.0, 5.0, 6.0], [3.0, 2.0, 6.0]], [[6.0, 7.0, 3.0], [3.0, 1.0, 2.0], [1.0, 3.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 6.0, 4.0], [3.0, 2.0, 2.0], [1.0, 7.0, 3.0]], [[4.0, 6.0, 5.0], [7.0, 3.0, 2.0], [6.0, 8.0, 5.0]], [[3.0, 3.0, 3.0], [3.0, 8.0, 5.0], [8.0, 1.0, 1.0]]], [[[3.0, 1.0, 8.0], [3.0, 7.0, 3.0], [4.0, 2.0, 5.0]], [[8.0, 1.0, 4.0], [1.0, 7.0, 2.0], [1.0, 1.0, 3.0]], [[6.0, 7.0, 1.0], [8.0, 5.0, 7.0], [3.0, 8.0, 7.0]]], [[[1.0, 2.0, 2.0], [5.0, 1.0, 6.0], [2.0, 8.0, 6.0]], [[3.0, 6.0, 8.0], [3.0, 2.0, 3.0], [6.0, 5.0, 5.0]], [[2.0, 3.0, 3.0], [6.0, 2.0, 8.0], [2.0, 5.0, 7.0]]], [[[6.0, 3.0, 1.0], [7.0, 2.0, 8.0], [6.0, 3.0, 6.0]], [[2.0, 7.0, 6.0], [1.0, 5.0, 6.0], [3.0, 2.0, 6.0]], [[6.0, 7.0, 3.0], [3.0, 1.0, 2.0], [1.0, 3.0, 7.0]]]])
4019          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4020       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4021       def test_setslice_constData_rank4_taggedData_RRLN(self):
4022          arg=Data(numarray.array([[[[6.0, 3.0, 6.0], [1.0, 6.0, 6.0], [5.0, 7.0, 8.0]], [[8.0, 2.0, 4.0], [4.0, 1.0, 3.0], [3.0, 8.0, 5.0]], [[2.0, 7.0, 2.0], [1.0, 8.0, 6.0], [8.0, 3.0, 4.0]]], [[[1.0, 1.0, 1.0], [3.0, 3.0, 4.0], [8.0, 8.0, 4.0]], [[7.0, 1.0, 6.0], [5.0, 2.0, 8.0], [7.0, 4.0, 3.0]], [[1.0, 2.0, 2.0], [1.0, 4.0, 1.0], [1.0, 4.0, 7.0]]], [[[1.0, 5.0, 1.0], [3.0, 6.0, 8.0], [1.0, 7.0, 7.0]], [[2.0, 4.0, 7.0], [8.0, 3.0, 6.0], [7.0, 8.0, 6.0]], [[8.0, 7.0, 4.0], [7.0, 4.0, 5.0], [8.0, 5.0, 4.0]]], [[[2.0, 2.0, 5.0], [1.0, 5.0, 4.0], [7.0, 8.0, 7.0]], [[8.0, 8.0, 5.0], [7.0, 1.0, 5.0], [1.0, 5.0, 3.0]], [[6.0, 6.0, 8.0], [4.0, 6.0, 2.0], [4.0, 5.0, 1.0]]]]),self.functionspace)
4023          val=Data(numarray.array([[[[7.0, 2.0, 1.0]]], [[[3.0, 2.0, 4.0]]]]),self.functionspace)
4024          val.setTaggedValue(1,numarray.array([[[[8.0, 8.0, 8.0]]], [[[8.0, 5.0, 3.0]]]]))
4025          arg[1:3,1:2,2:]=val
4026          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4027          ref=msk_ref*numarray.array([[[[6.0, 3.0, 6.0], [1.0, 6.0, 6.0], [5.0, 7.0, 8.0]], [[8.0, 2.0, 4.0], [4.0, 1.0, 3.0], [3.0, 8.0, 5.0]], [[2.0, 7.0, 2.0], [1.0, 8.0, 6.0], [8.0, 3.0, 4.0]]], [[[1.0, 1.0, 1.0], [3.0, 3.0, 4.0], [8.0, 8.0, 4.0]], [[7.0, 1.0, 6.0], [5.0, 2.0, 8.0], [7.0, 2.0, 1.0]], [[1.0, 2.0, 2.0], [1.0, 4.0, 1.0], [1.0, 4.0, 7.0]]], [[[1.0, 5.0, 1.0], [3.0, 6.0, 8.0], [1.0, 7.0, 7.0]], [[2.0, 4.0, 7.0], [8.0, 3.0, 6.0], [3.0, 2.0, 4.0]], [[8.0, 7.0, 4.0], [7.0, 4.0, 5.0], [8.0, 5.0, 4.0]]], [[[2.0, 2.0, 5.0], [1.0, 5.0, 4.0], [7.0, 8.0, 7.0]], [[8.0, 8.0, 5.0], [7.0, 1.0, 5.0], [1.0, 5.0, 3.0]], [[6.0, 6.0, 8.0], [4.0, 6.0, 2.0], [4.0, 5.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 3.0, 6.0], [1.0, 6.0, 6.0], [5.0, 7.0, 8.0]], [[8.0, 2.0, 4.0], [4.0, 1.0, 3.0], [3.0, 8.0, 5.0]], [[2.0, 7.0, 2.0], [1.0, 8.0, 6.0], [8.0, 3.0, 4.0]]], [[[1.0, 1.0, 1.0], [3.0, 3.0, 4.0], [8.0, 8.0, 4.0]], [[7.0, 1.0, 6.0], [5.0, 2.0, 8.0], [8.0, 8.0, 8.0]], [[1.0, 2.0, 2.0], [1.0, 4.0, 1.0], [1.0, 4.0, 7.0]]], [[[1.0, 5.0, 1.0], [3.0, 6.0, 8.0], [1.0, 7.0, 7.0]], [[2.0, 4.0, 7.0], [8.0, 3.0, 6.0], [8.0, 5.0, 3.0]], [[8.0, 7.0, 4.0], [7.0, 4.0, 5.0], [8.0, 5.0, 4.0]]], [[[2.0, 2.0, 5.0], [1.0, 5.0, 4.0], [7.0, 8.0, 7.0]], [[8.0, 8.0, 5.0], [7.0, 1.0, 5.0], [1.0, 5.0, 3.0]], [[6.0, 6.0, 8.0], [4.0, 6.0, 2.0], [4.0, 5.0, 1.0]]]])
4028          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4029       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4030       def test_setslice_constData_rank4_taggedData_ULUN(self):
4031          arg=Data(numarray.array([[[[6.0, 6.0, 1.0], [4.0, 6.0, 4.0], [6.0, 7.0, 2.0]], [[3.0, 3.0, 3.0], [8.0, 4.0, 8.0], [1.0, 6.0, 8.0]], [[3.0, 4.0, 8.0], [3.0, 1.0, 7.0], [7.0, 4.0, 2.0]]], [[[6.0, 6.0, 2.0], [2.0, 1.0, 2.0], [2.0, 8.0, 3.0]], [[5.0, 3.0, 6.0], [2.0, 1.0, 1.0], [4.0, 3.0, 7.0]], [[6.0, 6.0, 6.0], [1.0, 1.0, 3.0], [2.0, 4.0, 1.0]]], [[[5.0, 4.0, 1.0], [3.0, 7.0, 4.0], [7.0, 7.0, 2.0]], [[1.0, 3.0, 7.0], [7.0, 3.0, 6.0], [4.0, 4.0, 7.0]], [[7.0, 6.0, 3.0], [1.0, 7.0, 1.0], [8.0, 7.0, 4.0]]], [[[5.0, 3.0, 2.0], [3.0, 2.0, 2.0], [7.0, 5.0, 4.0]], [[2.0, 8.0, 3.0], [8.0, 6.0, 4.0], [1.0, 5.0, 8.0]], [[2.0, 5.0, 3.0], [1.0, 5.0, 7.0], [3.0, 5.0, 5.0]]]]),self.functionspace)
4032          val=Data(numarray.array([[[[2.0, 6.0, 2.0], [5.0, 2.0, 5.0]]], [[[5.0, 8.0, 4.0], [8.0, 4.0, 4.0]]], [[[4.0, 7.0, 4.0], [7.0, 7.0, 7.0]]]]),self.functionspace)
4033          val.setTaggedValue(1,numarray.array([[[[6.0, 3.0, 7.0], [6.0, 3.0, 5.0]]], [[[6.0, 8.0, 7.0], [4.0, 6.0, 8.0]]], [[[4.0, 5.0, 4.0], [8.0, 4.0, 8.0]]]]))
4034          arg[:3,2:,:2]=val
4035          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4036          ref=msk_ref*numarray.array([[[[6.0, 6.0, 1.0], [4.0, 6.0, 4.0], [6.0, 7.0, 2.0]], [[3.0, 3.0, 3.0], [8.0, 4.0, 8.0], [1.0, 6.0, 8.0]], [[2.0, 6.0, 2.0], [5.0, 2.0, 5.0], [7.0, 4.0, 2.0]]], [[[6.0, 6.0, 2.0], [2.0, 1.0, 2.0], [2.0, 8.0, 3.0]], [[5.0, 3.0, 6.0], [2.0, 1.0, 1.0], [4.0, 3.0, 7.0]], [[5.0, 8.0, 4.0], [8.0, 4.0, 4.0], [2.0, 4.0, 1.0]]], [[[5.0, 4.0, 1.0], [3.0, 7.0, 4.0], [7.0, 7.0, 2.0]], [[1.0, 3.0, 7.0], [7.0, 3.0, 6.0], [4.0, 4.0, 7.0]], [[4.0, 7.0, 4.0], [7.0, 7.0, 7.0], [8.0, 7.0, 4.0]]], [[[5.0, 3.0, 2.0], [3.0, 2.0, 2.0], [7.0, 5.0, 4.0]], [[2.0, 8.0, 3.0], [8.0, 6.0, 4.0], [1.0, 5.0, 8.0]], [[2.0, 5.0, 3.0], [1.0, 5.0, 7.0], [3.0, 5.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 6.0, 1.0], [4.0, 6.0, 4.0], [6.0, 7.0, 2.0]], [[3.0, 3.0, 3.0], [8.0, 4.0, 8.0], [1.0, 6.0, 8.0]], [[6.0, 3.0, 7.0], [6.0, 3.0, 5.0], [7.0, 4.0, 2.0]]], [[[6.0, 6.0, 2.0], [2.0, 1.0, 2.0], [2.0, 8.0, 3.0]], [[5.0, 3.0, 6.0], [2.0, 1.0, 1.0], [4.0, 3.0, 7.0]], [[6.0, 8.0, 7.0], [4.0, 6.0, 8.0], [2.0, 4.0, 1.0]]], [[[5.0, 4.0, 1.0], [3.0, 7.0, 4.0], [7.0, 7.0, 2.0]], [[1.0, 3.0, 7.0], [7.0, 3.0, 6.0], [4.0, 4.0, 7.0]], [[4.0, 5.0, 4.0], [8.0, 4.0, 8.0], [8.0, 7.0, 4.0]]], [[[5.0, 3.0, 2.0], [3.0, 2.0, 2.0], [7.0, 5.0, 4.0]], [[2.0, 8.0, 3.0], [8.0, 6.0, 4.0], [1.0, 5.0, 8.0]], [[2.0, 5.0, 3.0], [1.0, 5.0, 7.0], [3.0, 5.0, 5.0]]]])
4037          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4038       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4039       def test_setslice_constData_rank4_taggedData_CRRN(self):
4040          arg=Data(numarray.array([[[[2.0, 3.0, 3.0], [1.0, 3.0, 3.0], [4.0, 7.0, 4.0]], [[2.0, 3.0, 8.0], [2.0, 6.0, 6.0], [4.0, 3.0, 8.0]], [[6.0, 7.0, 8.0], [7.0, 8.0, 1.0], [8.0, 8.0, 1.0]]], [[[3.0, 1.0, 2.0], [4.0, 8.0, 7.0], [6.0, 1.0, 7.0]], [[6.0, 3.0, 6.0], [1.0, 6.0, 5.0], [8.0, 5.0, 7.0]], [[6.0, 3.0, 2.0], [4.0, 1.0, 4.0], [6.0, 4.0, 8.0]]], [[[4.0, 1.0, 8.0], [4.0, 5.0, 7.0], [1.0, 3.0, 7.0]], [[5.0, 4.0, 3.0], [3.0, 7.0, 2.0], [8.0, 5.0, 7.0]], [[4.0, 4.0, 2.0], [3.0, 7.0, 2.0], [1.0, 7.0, 6.0]]], [[[1.0, 3.0, 3.0], [6.0, 6.0, 6.0], [2.0, 7.0, 2.0]], [[4.0, 7.0, 8.0], [6.0, 5.0, 7.0], [8.0, 8.0, 4.0]], [[3.0, 8.0, 3.0], [8.0, 7.0, 8.0], [6.0, 7.0, 1.0]]]]),self.functionspace)
4041          val=Data(numarray.array([[[[2.0, 1.0, 6.0]]], [[[1.0, 3.0, 8.0]]], [[[4.0, 3.0, 3.0]]], [[[1.0, 1.0, 7.0]]]]),self.functionspace)
4042          val.setTaggedValue(1,numarray.array([[[[3.0, 6.0, 1.0]]], [[[7.0, 8.0, 2.0]]], [[[6.0, 4.0, 6.0]]], [[[7.0, 3.0, 2.0]]]]))
4043          arg[:,1:2,1:2]=val
4044          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4045          ref=msk_ref*numarray.array([[[[2.0, 3.0, 3.0], [1.0, 3.0, 3.0], [4.0, 7.0, 4.0]], [[2.0, 3.0, 8.0], [2.0, 1.0, 6.0], [4.0, 3.0, 8.0]], [[6.0, 7.0, 8.0], [7.0, 8.0, 1.0], [8.0, 8.0, 1.0]]], [[[3.0, 1.0, 2.0], [4.0, 8.0, 7.0], [6.0, 1.0, 7.0]], [[6.0, 3.0, 6.0], [1.0, 3.0, 8.0], [8.0, 5.0, 7.0]], [[6.0, 3.0, 2.0], [4.0, 1.0, 4.0], [6.0, 4.0, 8.0]]], [[[4.0, 1.0, 8.0], [4.0, 5.0, 7.0], [1.0, 3.0, 7.0]], [[5.0, 4.0, 3.0], [4.0, 3.0, 3.0], [8.0, 5.0, 7.0]], [[4.0, 4.0, 2.0], [3.0, 7.0, 2.0], [1.0, 7.0, 6.0]]], [[[1.0, 3.0, 3.0], [6.0, 6.0, 6.0], [2.0, 7.0, 2.0]], [[4.0, 7.0, 8.0], [1.0, 1.0, 7.0], [8.0, 8.0, 4.0]], [[3.0, 8.0, 3.0], [8.0, 7.0, 8.0], [6.0, 7.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 3.0, 3.0], [1.0, 3.0, 3.0], [4.0, 7.0, 4.0]], [[2.0, 3.0, 8.0], [3.0, 6.0, 1.0], [4.0, 3.0, 8.0]], [[6.0, 7.0, 8.0], [7.0, 8.0, 1.0], [8.0, 8.0, 1.0]]], [[[3.0, 1.0, 2.0], [4.0, 8.0, 7.0], [6.0, 1.0, 7.0]], [[6.0, 3.0, 6.0], [7.0, 8.0, 2.0], [8.0, 5.0, 7.0]], [[6.0, 3.0, 2.0], [4.0, 1.0, 4.0], [6.0, 4.0, 8.0]]], [[[4.0, 1.0, 8.0], [4.0, 5.0, 7.0], [1.0, 3.0, 7.0]], [[5.0, 4.0, 3.0], [6.0, 4.0, 6.0], [8.0, 5.0, 7.0]], [[4.0, 4.0, 2.0], [3.0, 7.0, 2.0], [1.0, 7.0, 6.0]]], [[[1.0, 3.0, 3.0], [6.0, 6.0, 6.0], [2.0, 7.0, 2.0]], [[4.0, 7.0, 8.0], [7.0, 3.0, 2.0], [8.0, 8.0, 4.0]], [[3.0, 8.0, 3.0], [8.0, 7.0, 8.0], [6.0, 7.0, 1.0]]]])
4046          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4047       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4048       def test_setslice_constData_rank4_taggedData_PUPN(self):
4049          arg=Data(numarray.array([[[[8.0, 8.0, 6.0], [4.0, 7.0, 1.0], [3.0, 3.0, 3.0]], [[5.0, 7.0, 6.0], [3.0, 6.0, 1.0], [8.0, 1.0, 1.0]], [[5.0, 7.0, 2.0], [3.0, 3.0, 4.0], [6.0, 7.0, 5.0]]], [[[8.0, 1.0, 8.0], [4.0, 2.0, 5.0], [4.0, 3.0, 8.0]], [[5.0, 4.0, 5.0], [2.0, 2.0, 7.0], [5.0, 4.0, 1.0]], [[4.0, 6.0, 2.0], [3.0, 5.0, 7.0], [2.0, 7.0, 5.0]]], [[[6.0, 3.0, 8.0], [7.0, 3.0, 8.0], [8.0, 5.0, 2.0]], [[3.0, 8.0, 4.0], [2.0, 2.0, 2.0], [1.0, 8.0, 3.0]], [[8.0, 8.0, 5.0], [3.0, 1.0, 6.0], [8.0, 5.0, 6.0]]], [[[2.0, 2.0, 1.0], [1.0, 2.0, 3.0], [3.0, 7.0, 5.0]], [[1.0, 6.0, 1.0], [8.0, 3.0, 1.0], [8.0, 5.0, 7.0]], [[7.0, 7.0, 2.0], [6.0, 1.0, 7.0], [3.0, 1.0, 8.0]]]]),self.functionspace)
4050          val=Data(numarray.array([[2.0, 7.0, 7.0], [3.0, 1.0, 1.0]]),self.functionspace)
4051          val.setTaggedValue(1,numarray.array([[6.0, 4.0, 6.0], [6.0, 3.0, 6.0]]))
4052          arg[2,:2,1]=val
4053          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4054          ref=msk_ref*numarray.array([[[[8.0, 8.0, 6.0], [4.0, 7.0, 1.0], [3.0, 3.0, 3.0]], [[5.0, 7.0, 6.0], [3.0, 6.0, 1.0], [8.0, 1.0, 1.0]], [[5.0, 7.0, 2.0], [3.0, 3.0, 4.0], [6.0, 7.0, 5.0]]], [[[8.0, 1.0, 8.0], [4.0, 2.0, 5.0], [4.0, 3.0, 8.0]], [[5.0, 4.0, 5.0], [2.0, 2.0, 7.0], [5.0, 4.0, 1.0]], [[4.0, 6.0, 2.0], [3.0, 5.0, 7.0], [2.0, 7.0, 5.0]]], [[[6.0, 3.0, 8.0], [2.0, 7.0, 7.0], [8.0, 5.0, 2.0]], [[3.0, 8.0, 4.0], [3.0, 1.0, 1.0], [1.0, 8.0, 3.0]], [[8.0, 8.0, 5.0], [3.0, 1.0, 6.0], [8.0, 5.0, 6.0]]], [[[2.0, 2.0, 1.0], [1.0, 2.0, 3.0], [3.0, 7.0, 5.0]], [[1.0, 6.0, 1.0], [8.0, 3.0, 1.0], [8.0, 5.0, 7.0]], [[7.0, 7.0, 2.0], [6.0, 1.0, 7.0], [3.0, 1.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 8.0, 6.0], [4.0, 7.0, 1.0], [3.0, 3.0, 3.0]], [[5.0, 7.0, 6.0], [3.0, 6.0, 1.0], [8.0, 1.0, 1.0]], [[5.0, 7.0, 2.0], [3.0, 3.0, 4.0], [6.0, 7.0, 5.0]]], [[[8.0, 1.0, 8.0], [4.0, 2.0, 5.0], [4.0, 3.0, 8.0]], [[5.0, 4.0, 5.0], [2.0, 2.0, 7.0], [5.0, 4.0, 1.0]], [[4.0, 6.0, 2.0], [3.0, 5.0, 7.0], [2.0, 7.0, 5.0]]], [[[6.0, 3.0, 8.0], [6.0, 4.0, 6.0], [8.0, 5.0, 2.0]], [[3.0, 8.0, 4.0], [6.0, 3.0, 6.0], [1.0, 8.0, 3.0]], [[8.0, 8.0, 5.0], [3.0, 1.0, 6.0], [8.0, 5.0, 6.0]]], [[[2.0, 2.0, 1.0], [1.0, 2.0, 3.0], [3.0, 7.0, 5.0]], [[1.0, 6.0, 1.0], [8.0, 3.0, 1.0], [8.0, 5.0, 7.0]], [[7.0, 7.0, 2.0], [6.0, 1.0, 7.0], [3.0, 1.0, 8.0]]]])
4055          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4056       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4057       def test_setslice_constData_rank4_taggedData_UURR(self):
4058          arg=Data(numarray.array([[[[1.0, 8.0, 1.0], [6.0, 7.0, 6.0], [4.0, 1.0, 5.0]], [[3.0, 2.0, 7.0], [2.0, 4.0, 8.0], [3.0, 2.0, 2.0]], [[6.0, 3.0, 3.0], [6.0, 5.0, 4.0], [6.0, 1.0, 6.0]]], [[[8.0, 6.0, 4.0], [6.0, 3.0, 1.0], [1.0, 5.0, 6.0]], [[2.0, 6.0, 4.0], [3.0, 3.0, 1.0], [3.0, 5.0, 2.0]], [[2.0, 3.0, 7.0], [5.0, 2.0, 2.0], [7.0, 1.0, 6.0]]], [[[7.0, 6.0, 5.0], [7.0, 1.0, 2.0], [4.0, 7.0, 6.0]], [[5.0, 8.0, 8.0], [2.0, 3.0, 7.0], [1.0, 4.0, 8.0]], [[1.0, 2.0, 6.0], [1.0, 1.0, 3.0], [5.0, 1.0, 7.0]]], [[[2.0, 1.0, 4.0], [1.0, 8.0, 4.0], [6.0, 8.0, 6.0]], [[5.0, 7.0, 2.0], [3.0, 5.0, 8.0], [5.0, 6.0, 1.0]], [[7.0, 8.0, 4.0], [8.0, 5.0, 8.0], [3.0, 5.0, 7.0]]]]),self.functionspace)
4059          val=Data(numarray.array([[[[6.0]], [[1.0]]], [[[1.0]], [[2.0]]], [[[1.0]], [[7.0]]]]),self.functionspace)
4060          val.setTaggedValue(1,numarray.array([[[[6.0]], [[6.0]]], [[[5.0]], [[1.0]]], [[[4.0]], [[1.0]]]]))
4061          arg[:3,:2,1:2,1:2]=val
4062          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4063          ref=msk_ref*numarray.array([[[[1.0, 8.0, 1.0], [6.0, 6.0, 6.0], [4.0, 1.0, 5.0]], [[3.0, 2.0, 7.0], [2.0, 1.0, 8.0], [3.0, 2.0, 2.0]], [[6.0, 3.0, 3.0], [6.0, 5.0, 4.0], [6.0, 1.0, 6.0]]], [[[8.0, 6.0, 4.0], [6.0, 1.0, 1.0], [1.0, 5.0, 6.0]], [[2.0, 6.0, 4.0], [3.0, 2.0, 1.0], [3.0, 5.0, 2.0]], [[2.0, 3.0, 7.0], [5.0, 2.0, 2.0], [7.0, 1.0, 6.0]]], [[[7.0, 6.0, 5.0], [7.0, 1.0, 2.0], [4.0, 7.0, 6.0]], [[5.0, 8.0, 8.0], [2.0, 7.0, 7.0], [1.0, 4.0, 8.0]], [[1.0, 2.0, 6.0], [1.0, 1.0, 3.0], [5.0, 1.0, 7.0]]], [[[2.0, 1.0, 4.0], [1.0, 8.0, 4.0], [6.0, 8.0, 6.0]], [[5.0, 7.0, 2.0], [3.0, 5.0, 8.0], [5.0, 6.0, 1.0]], [[7.0, 8.0, 4.0], [8.0, 5.0, 8.0], [3.0, 5.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 8.0, 1.0], [6.0, 6.0, 6.0], [4.0, 1.0, 5.0]], [[3.0, 2.0, 7.0], [2.0, 6.0, 8.0], [3.0, 2.0, 2.0]], [[6.0, 3.0, 3.0], [6.0, 5.0, 4.0], [6.0, 1.0, 6.0]]], [[[8.0, 6.0, 4.0], [6.0, 5.0, 1.0], [1.0, 5.0, 6.0]], [[2.0, 6.0, 4.0], [3.0, 1.0, 1.0], [3.0, 5.0, 2.0]], [[2.0, 3.0, 7.0], [5.0, 2.0, 2.0], [7.0, 1.0, 6.0]]], [[[7.0, 6.0, 5.0], [7.0, 4.0, 2.0], [4.0, 7.0, 6.0]], [[5.0, 8.0, 8.0], [2.0, 1.0, 7.0], [1.0, 4.0, 8.0]], [[1.0, 2.0, 6.0], [1.0, 1.0, 3.0], [5.0, 1.0, 7.0]]], [[[2.0, 1.0, 4.0], [1.0, 8.0, 4.0], [6.0, 8.0, 6.0]], [[5.0, 7.0, 2.0], [3.0, 5.0, 8.0], [5.0, 6.0, 1.0]], [[7.0, 8.0, 4.0], [8.0, 5.0, 8.0], [3.0, 5.0, 7.0]]]])
4064          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4065       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4066       def test_setslice_constData_rank4_taggedData_CLUN(self):
4067          arg=Data(numarray.array([[[[5.0, 6.0, 7.0], [4.0, 3.0, 5.0], [4.0, 4.0, 7.0]], [[5.0, 7.0, 7.0], [3.0, 3.0, 4.0], [7.0, 1.0, 5.0]], [[3.0, 5.0, 3.0], [1.0, 5.0, 2.0], [2.0, 4.0, 4.0]]], [[[8.0, 1.0, 5.0], [2.0, 7.0, 1.0], [6.0, 7.0, 2.0]], [[8.0, 7.0, 2.0], [1.0, 8.0, 7.0], [2.0, 5.0, 4.0]], [[7.0, 7.0, 4.0], [3.0, 1.0, 8.0], [3.0, 5.0, 3.0]]], [[[5.0, 6.0, 2.0], [1.0, 7.0, 5.0], [4.0, 5.0, 4.0]], [[2.0, 6.0, 1.0], [7.0, 8.0, 7.0], [3.0, 2.0, 6.0]], [[6.0, 4.0, 2.0], [5.0, 7.0, 3.0], [4.0, 6.0, 7.0]]], [[[6.0, 2.0, 3.0], [6.0, 7.0, 1.0], [2.0, 1.0, 8.0]], [[5.0, 3.0, 6.0], [1.0, 6.0, 4.0], [3.0, 5.0, 2.0]], [[6.0, 1.0, 5.0], [1.0, 4.0, 3.0], [3.0, 7.0, 4.0]]]]),self.functionspace)
4068          val=Data(numarray.array([[[[3.0, 4.0, 8.0], [6.0, 7.0, 5.0]]], [[[5.0, 8.0, 4.0], [1.0, 4.0, 6.0]]], [[[2.0, 7.0, 8.0], [1.0, 8.0, 2.0]]], [[[2.0, 3.0, 3.0], [5.0, 7.0, 4.0]]]]),self.functionspace)
4069          val.setTaggedValue(1,numarray.array([[[[5.0, 5.0, 1.0], [7.0, 1.0, 5.0]]], [[[5.0, 8.0, 8.0], [2.0, 3.0, 5.0]]], [[[6.0, 7.0, 6.0], [3.0, 7.0, 2.0]]], [[[6.0, 8.0, 6.0], [2.0, 1.0, 3.0]]]]))
4070          arg[:,2:,:2]=val
4071          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4072          ref=msk_ref*numarray.array([[[[5.0, 6.0, 7.0], [4.0, 3.0, 5.0], [4.0, 4.0, 7.0]], [[5.0, 7.0, 7.0], [3.0, 3.0, 4.0], [7.0, 1.0, 5.0]], [[3.0, 4.0, 8.0], [6.0, 7.0, 5.0], [2.0, 4.0, 4.0]]], [[[8.0, 1.0, 5.0], [2.0, 7.0, 1.0], [6.0, 7.0, 2.0]], [[8.0, 7.0, 2.0], [1.0, 8.0, 7.0], [2.0, 5.0, 4.0]], [[5.0, 8.0, 4.0], [1.0, 4.0, 6.0], [3.0, 5.0, 3.0]]], [[[5.0, 6.0, 2.0], [1.0, 7.0, 5.0], [4.0, 5.0, 4.0]], [[2.0, 6.0, 1.0], [7.0, 8.0, 7.0], [3.0, 2.0, 6.0]], [[2.0, 7.0, 8.0], [1.0, 8.0, 2.0], [4.0, 6.0, 7.0]]], [[[6.0, 2.0, 3.0], [6.0, 7.0, 1.0], [2.0, 1.0, 8.0]], [[5.0, 3.0, 6.0], [1.0, 6.0, 4.0], [3.0, 5.0, 2.0]], [[2.0, 3.0, 3.0], [5.0, 7.0, 4.0], [3.0, 7.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 6.0, 7.0], [4.0, 3.0, 5.0], [4.0, 4.0, 7.0]], [[5.0, 7.0, 7.0], [3.0, 3.0, 4.0], [7.0, 1.0, 5.0]], [[5.0, 5.0, 1.0], [7.0, 1.0, 5.0], [2.0, 4.0, 4.0]]], [[[8.0, 1.0, 5.0], [2.0, 7.0, 1.0], [6.0, 7.0, 2.0]], [[8.0, 7.0, 2.0], [1.0, 8.0, 7.0], [2.0, 5.0, 4.0]], [[5.0, 8.0, 8.0], [2.0, 3.0, 5.0], [3.0, 5.0, 3.0]]], [[[5.0, 6.0, 2.0], [1.0, 7.0, 5.0], [4.0, 5.0, 4.0]], [[2.0, 6.0, 1.0], [7.0, 8.0, 7.0], [3.0, 2.0, 6.0]], [[6.0, 7.0, 6.0], [3.0, 7.0, 2.0], [4.0, 6.0, 7.0]]], [[[6.0, 2.0, 3.0], [6.0, 7.0, 1.0], [2.0, 1.0, 8.0]], [[5.0, 3.0, 6.0], [1.0, 6.0, 4.0], [3.0, 5.0, 2.0]], [[6.0, 8.0, 6.0], [2.0, 1.0, 3.0], [3.0, 7.0, 4.0]]]])
4073          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4074       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4075       def test_setslice_constData_rank4_taggedData_RUCR(self):
4076          arg=Data(numarray.array([[[[8.0, 8.0, 8.0], [1.0, 4.0, 6.0], [7.0, 2.0, 8.0]], [[8.0, 2.0, 6.0], [7.0, 7.0, 1.0], [6.0, 6.0, 6.0]], [[4.0, 4.0, 7.0], [1.0, 7.0, 6.0], [4.0, 1.0, 3.0]]], [[[1.0, 2.0, 7.0], [2.0, 4.0, 6.0], [4.0, 1.0, 8.0]], [[2.0, 3.0, 7.0], [5.0, 8.0, 5.0], [2.0, 5.0, 6.0]], [[7.0, 6.0, 7.0], [4.0, 5.0, 7.0], [1.0, 4.0, 7.0]]], [[[6.0, 6.0, 4.0], [7.0, 8.0, 1.0], [2.0, 4.0, 8.0]], [[1.0, 6.0, 3.0], [3.0, 4.0, 3.0], [2.0, 2.0, 8.0]], [[1.0, 2.0, 4.0], [1.0, 3.0, 7.0], [5.0, 5.0, 7.0]]], [[[2.0, 3.0, 6.0], [2.0, 3.0, 7.0], [4.0, 4.0, 7.0]], [[5.0, 1.0, 3.0], [4.0, 2.0, 3.0], [1.0, 8.0, 7.0]], [[7.0, 8.0, 2.0], [2.0, 2.0, 6.0], [5.0, 8.0, 7.0]]]]),self.functionspace)
4077          val=Data(numarray.array([[[[3.0], [7.0], [7.0]], [[8.0], [8.0], [3.0]]], [[[5.0], [7.0], [7.0]], [[3.0], [2.0], [2.0]]]]),self.functionspace)
4078          val.setTaggedValue(1,numarray.array([[[[7.0], [3.0], [6.0]], [[5.0], [3.0], [6.0]]], [[[8.0], [5.0], [5.0]], [[6.0], [4.0], [2.0]]]]))
4079          arg[1:3,:2,:,1:2]=val
4080          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4081          ref=msk_ref*numarray.array([[[[8.0, 8.0, 8.0], [1.0, 4.0, 6.0], [7.0, 2.0, 8.0]], [[8.0, 2.0, 6.0], [7.0, 7.0, 1.0], [6.0, 6.0, 6.0]], [[4.0, 4.0, 7.0], [1.0, 7.0, 6.0], [4.0, 1.0, 3.0]]], [[[1.0, 3.0, 7.0], [2.0, 7.0, 6.0], [4.0, 7.0, 8.0]], [[2.0, 8.0, 7.0], [5.0, 8.0, 5.0], [2.0, 3.0, 6.0]], [[7.0, 6.0, 7.0], [4.0, 5.0, 7.0], [1.0, 4.0, 7.0]]], [[[6.0, 5.0, 4.0], [7.0, 7.0, 1.0], [2.0, 7.0, 8.0]], [[1.0, 3.0, 3.0], [3.0, 2.0, 3.0], [2.0, 2.0, 8.0]], [[1.0, 2.0, 4.0], [1.0, 3.0, 7.0], [5.0, 5.0, 7.0]]], [[[2.0, 3.0, 6.0], [2.0, 3.0, 7.0], [4.0, 4.0, 7.0]], [[5.0, 1.0, 3.0], [4.0, 2.0, 3.0], [1.0, 8.0, 7.0]], [[7.0, 8.0, 2.0], [2.0, 2.0, 6.0], [5.0, 8.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 8.0, 8.0], [1.0, 4.0, 6.0], [7.0, 2.0, 8.0]], [[8.0, 2.0, 6.0], [7.0, 7.0, 1.0], [6.0, 6.0, 6.0]], [[4.0, 4.0, 7.0], [1.0, 7.0, 6.0], [4.0, 1.0, 3.0]]], [[[1.0, 7.0, 7.0], [2.0, 3.0, 6.0], [4.0, 6.0, 8.0]], [[2.0, 5.0, 7.0], [5.0, 3.0, 5.0], [2.0, 6.0, 6.0]], [[7.0, 6.0, 7.0], [4.0, 5.0, 7.0], [1.0, 4.0, 7.0]]], [[[6.0, 8.0, 4.0], [7.0, 5.0, 1.0], [2.0, 5.0, 8.0]], [[1.0, 6.0, 3.0], [3.0, 4.0, 3.0], [2.0, 2.0, 8.0]], [[1.0, 2.0, 4.0], [1.0, 3.0, 7.0], [5.0, 5.0, 7.0]]], [[[2.0, 3.0, 6.0], [2.0, 3.0, 7.0], [4.0, 4.0, 7.0]], [[5.0, 1.0, 3.0], [4.0, 2.0, 3.0], [1.0, 8.0, 7.0]], [[7.0, 8.0, 2.0], [2.0, 2.0, 6.0], [5.0, 8.0, 7.0]]]])
4082          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4083       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4084       def test_setslice_constData_rank4_taggedData_CURU(self):
4085          arg=Data(numarray.array([[[[2.0, 5.0, 1.0], [1.0, 8.0, 1.0], [4.0, 8.0, 8.0]], [[3.0, 8.0, 6.0], [6.0, 8.0, 3.0], [5.0, 7.0, 5.0]], [[3.0, 2.0, 8.0], [1.0, 3.0, 6.0], [6.0, 3.0, 1.0]]], [[[3.0, 5.0, 1.0], [5.0, 4.0, 2.0], [7.0, 3.0, 6.0]], [[3.0, 4.0, 7.0], [2.0, 7.0, 2.0], [3.0, 7.0, 1.0]], [[8.0, 8.0, 5.0], [3.0, 6.0, 8.0], [2.0, 6.0, 7.0]]], [[[8.0, 6.0, 5.0], [5.0, 3.0, 5.0], [4.0, 5.0, 1.0]], [[3.0, 8.0, 2.0], [2.0, 3.0, 3.0], [1.0, 4.0, 8.0]], [[7.0, 5.0, 5.0], [7.0, 6.0, 1.0], [3.0, 1.0, 5.0]]], [[[4.0, 4.0, 1.0], [7.0, 5.0, 7.0], [7.0, 2.0, 4.0]], [[4.0, 1.0, 6.0], [3.0, 4.0, 6.0], [2.0, 5.0, 1.0]], [[3.0, 6.0, 4.0], [3.0, 4.0, 1.0], [5.0, 3.0, 4.0]]]]),self.functionspace)
4086          val=Data(numarray.array([[[[7.0, 1.0]], [[2.0, 7.0]]], [[[7.0, 5.0]], [[4.0, 8.0]]], [[[3.0, 2.0]], [[5.0, 2.0]]], [[[5.0, 3.0]], [[2.0, 7.0]]]]),self.functionspace)
4087          val.setTaggedValue(1,numarray.array([[[[4.0, 6.0]], [[1.0, 8.0]]], [[[1.0, 8.0]], [[4.0, 6.0]]], [[[5.0, 8.0]], [[2.0, 2.0]]], [[[7.0, 2.0]], [[1.0, 2.0]]]]))
4088          arg[:,:2,1:2,:2]=val
4089          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4090          ref=msk_ref*numarray.array([[[[2.0, 5.0, 1.0], [7.0, 1.0, 1.0], [4.0, 8.0, 8.0]], [[3.0, 8.0, 6.0], [2.0, 7.0, 3.0], [5.0, 7.0, 5.0]], [[3.0, 2.0, 8.0], [1.0, 3.0, 6.0], [6.0, 3.0, 1.0]]], [[[3.0, 5.0, 1.0], [7.0, 5.0, 2.0], [7.0, 3.0, 6.0]], [[3.0, 4.0, 7.0], [4.0, 8.0, 2.0], [3.0, 7.0, 1.0]], [[8.0, 8.0, 5.0], [3.0, 6.0, 8.0], [2.0, 6.0, 7.0]]], [[[8.0, 6.0, 5.0], [3.0, 2.0, 5.0], [4.0, 5.0, 1.0]], [[3.0, 8.0, 2.0], [5.0, 2.0, 3.0], [1.0, 4.0, 8.0]], [[7.0, 5.0, 5.0], [7.0, 6.0, 1.0], [3.0, 1.0, 5.0]]], [[[4.0, 4.0, 1.0], [5.0, 3.0, 7.0], [7.0, 2.0, 4.0]], [[4.0, 1.0, 6.0], [2.0, 7.0, 6.0], [2.0, 5.0, 1.0]], [[3.0, 6.0, 4.0], [3.0, 4.0, 1.0], [5.0, 3.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 5.0, 1.0], [4.0, 6.0, 1.0], [4.0, 8.0, 8.0]], [[3.0, 8.0, 6.0], [1.0, 8.0, 3.0], [5.0, 7.0, 5.0]], [[3.0, 2.0, 8.0], [1.0, 3.0, 6.0], [6.0, 3.0, 1.0]]], [[[3.0, 5.0, 1.0], [1.0, 8.0, 2.0], [7.0, 3.0, 6.0]], [[3.0, 4.0, 7.0], [4.0, 6.0, 2.0], [3.0, 7.0, 1.0]], [[8.0, 8.0, 5.0], [3.0, 6.0, 8.0], [2.0, 6.0, 7.0]]], [[[8.0, 6.0, 5.0], [5.0, 8.0, 5.0], [4.0, 5.0, 1.0]], [[3.0, 8.0, 2.0], [2.0, 2.0, 3.0], [1.0, 4.0, 8.0]], [[7.0, 5.0, 5.0], [7.0, 6.0, 1.0], [3.0, 1.0, 5.0]]], [[[4.0, 4.0, 1.0], [7.0, 2.0, 7.0], [7.0, 2.0, 4.0]], [[4.0, 1.0, 6.0], [1.0, 2.0, 6.0], [2.0, 5.0, 1.0]], [[3.0, 6.0, 4.0], [3.0, 4.0, 1.0], [5.0, 3.0, 4.0]]]])
4091          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4092       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4093       def test_setslice_constData_rank4_taggedData_LRPN(self):
4094          arg=Data(numarray.array([[[[8.0, 6.0, 6.0], [6.0, 3.0, 7.0], [5.0, 8.0, 6.0]], [[2.0, 1.0, 1.0], [4.0, 4.0, 6.0], [6.0, 4.0, 7.0]], [[3.0, 8.0, 1.0], [7.0, 5.0, 8.0], [4.0, 3.0, 8.0]]], [[[8.0, 7.0, 3.0], [1.0, 8.0, 5.0], [5.0, 2.0, 1.0]], [[8.0, 6.0, 1.0], [2.0, 5.0, 3.0], [2.0, 3.0, 4.0]], [[1.0, 6.0, 6.0], [4.0, 2.0, 7.0], [3.0, 5.0, 8.0]]], [[[8.0, 2.0, 1.0], [2.0, 6.0, 6.0], [7.0, 5.0, 4.0]], [[8.0, 4.0, 3.0], [1.0, 8.0, 6.0], [2.0, 6.0, 4.0]], [[4.0, 2.0, 3.0], [8.0, 5.0, 2.0], [5.0, 8.0, 6.0]]], [[[8.0, 6.0, 6.0], [1.0, 6.0, 4.0], [5.0, 7.0, 1.0]], [[6.0, 4.0, 1.0], [6.0, 5.0, 1.0], [7.0, 6.0, 4.0]], [[3.0, 3.0, 7.0], [8.0, 1.0, 7.0], [1.0, 3.0, 5.0]]]]),self.functionspace)
4095          val=Data(numarray.array([[[4.0, 7.0, 3.0]], [[5.0, 6.0, 8.0]]]),self.functionspace)
4096          val.setTaggedValue(1,numarray.array([[[3.0, 1.0, 4.0]], [[3.0, 4.0, 6.0]]]))
4097          arg[2:,1:2,1]=val
4098          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4099          ref=msk_ref*numarray.array([[[[8.0, 6.0, 6.0], [6.0, 3.0, 7.0], [5.0, 8.0, 6.0]], [[2.0, 1.0, 1.0], [4.0, 4.0, 6.0], [6.0, 4.0, 7.0]], [[3.0, 8.0, 1.0], [7.0, 5.0, 8.0], [4.0, 3.0, 8.0]]], [[[8.0, 7.0, 3.0], [1.0, 8.0, 5.0], [5.0, 2.0, 1.0]], [[8.0, 6.0, 1.0], [2.0, 5.0, 3.0], [2.0, 3.0, 4.0]], [[1.0, 6.0, 6.0], [4.0, 2.0, 7.0], [3.0, 5.0, 8.0]]], [[[8.0, 2.0, 1.0], [2.0, 6.0, 6.0], [7.0, 5.0, 4.0]], [[8.0, 4.0, 3.0], [4.0, 7.0, 3.0], [2.0, 6.0, 4.0]], [[4.0, 2.0, 3.0], [8.0, 5.0, 2.0], [5.0, 8.0, 6.0]]], [[[8.0, 6.0, 6.0], [1.0, 6.0, 4.0], [5.0, 7.0, 1.0]], [[6.0, 4.0, 1.0], [5.0, 6.0, 8.0], [7.0, 6.0, 4.0]], [[3.0, 3.0, 7.0], [8.0, 1.0, 7.0], [1.0, 3.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 6.0, 6.0], [6.0, 3.0, 7.0], [5.0, 8.0, 6.0]], [[2.0, 1.0, 1.0], [4.0, 4.0, 6.0], [6.0, 4.0, 7.0]], [[3.0, 8.0, 1.0], [7.0, 5.0, 8.0], [4.0, 3.0, 8.0]]], [[[8.0, 7.0, 3.0], [1.0, 8.0, 5.0], [5.0, 2.0, 1.0]], [[8.0, 6.0, 1.0], [2.0, 5.0, 3.0], [2.0, 3.0, 4.0]], [[1.0, 6.0, 6.0], [4.0, 2.0, 7.0], [3.0, 5.0, 8.0]]], [[[8.0, 2.0, 1.0], [2.0, 6.0, 6.0], [7.0, 5.0, 4.0]], [[8.0, 4.0, 3.0], [3.0, 1.0, 4.0], [2.0, 6.0, 4.0]], [[4.0, 2.0, 3.0], [8.0, 5.0, 2.0], [5.0, 8.0, 6.0]]], [[[8.0, 6.0, 6.0], [1.0, 6.0, 4.0], [5.0, 7.0, 1.0]], [[6.0, 4.0, 1.0], [3.0, 4.0, 6.0], [7.0, 6.0, 4.0]], [[3.0, 3.0, 7.0], [8.0, 1.0, 7.0], [1.0, 3.0, 5.0]]]])
4100          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4101       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4102       def test_setslice_constData_rank4_taggedData_PCRN(self):
4103          arg=Data(numarray.array([[[[2.0, 7.0, 7.0], [8.0, 5.0, 2.0], [1.0, 3.0, 8.0]], [[6.0, 6.0, 7.0], [1.0, 4.0, 4.0], [7.0, 1.0, 8.0]], [[4.0, 3.0, 8.0], [6.0, 2.0, 1.0], [2.0, 2.0, 7.0]]], [[[1.0, 1.0, 1.0], [1.0, 6.0, 5.0], [2.0, 2.0, 6.0]], [[6.0, 3.0, 4.0], [4.0, 1.0, 2.0], [3.0, 5.0, 5.0]], [[2.0, 2.0, 6.0], [2.0, 5.0, 5.0], [6.0, 2.0, 1.0]]], [[[1.0, 5.0, 5.0], [2.0, 1.0, 3.0], [8.0, 3.0, 1.0]], [[6.0, 4.0, 4.0], [5.0, 5.0, 6.0], [4.0, 4.0, 7.0]], [[7.0, 7.0, 5.0], [4.0, 6.0, 4.0], [1.0, 1.0, 6.0]]], [[[4.0, 1.0, 7.0], [8.0, 8.0, 1.0], [3.0, 1.0, 4.0]], [[3.0, 6.0, 1.0], [6.0, 1.0, 7.0], [1.0, 1.0, 4.0]], [[5.0, 6.0, 3.0], [2.0, 2.0, 2.0], [1.0, 1.0, 6.0]]]]),self.functionspace)
4104          val=Data(numarray.array([[[1.0, 3.0, 2.0]], [[5.0, 2.0, 4.0]], [[1.0, 8.0, 4.0]]]),self.functionspace)
4105          val.setTaggedValue(1,numarray.array([[[1.0, 3.0, 6.0]], [[7.0, 2.0, 7.0]], [[5.0, 6.0, 2.0]]]))
4106          arg[2,:,1:2]=val
4107          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4108          ref=msk_ref*numarray.array([[[[2.0, 7.0, 7.0], [8.0, 5.0, 2.0], [1.0, 3.0, 8.0]], [[6.0, 6.0, 7.0], [1.0, 4.0, 4.0], [7.0, 1.0, 8.0]], [[4.0, 3.0, 8.0], [6.0, 2.0, 1.0], [2.0, 2.0, 7.0]]], [[[1.0, 1.0, 1.0], [1.0, 6.0, 5.0], [2.0, 2.0, 6.0]], [[6.0, 3.0, 4.0], [4.0, 1.0, 2.0], [3.0, 5.0, 5.0]], [[2.0, 2.0, 6.0], [2.0, 5.0, 5.0], [6.0, 2.0, 1.0]]], [[[1.0, 5.0, 5.0], [1.0, 3.0, 2.0], [8.0, 3.0, 1.0]], [[6.0, 4.0, 4.0], [5.0, 2.0, 4.0], [4.0, 4.0, 7.0]], [[7.0, 7.0, 5.0], [1.0, 8.0, 4.0], [1.0, 1.0, 6.0]]], [[[4.0, 1.0, 7.0], [8.0, 8.0, 1.0], [3.0, 1.0, 4.0]], [[3.0, 6.0, 1.0], [6.0, 1.0, 7.0], [1.0, 1.0, 4.0]], [[5.0, 6.0, 3.0], [2.0, 2.0, 2.0], [1.0, 1.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 7.0, 7.0], [8.0, 5.0, 2.0], [1.0, 3.0, 8.0]], [[6.0, 6.0, 7.0], [1.0, 4.0, 4.0], [7.0, 1.0, 8.0]], [[4.0, 3.0, 8.0], [6.0, 2.0, 1.0], [2.0, 2.0, 7.0]]], [[[1.0, 1.0, 1.0], [1.0, 6.0, 5.0], [2.0, 2.0, 6.0]], [[6.0, 3.0, 4.0], [4.0, 1.0, 2.0], [3.0, 5.0, 5.0]], [[2.0, 2.0, 6.0], [2.0, 5.0, 5.0], [6.0, 2.0, 1.0]]], [[[1.0, 5.0, 5.0], [1.0, 3.0, 6.0], [8.0, 3.0, 1.0]], [[6.0, 4.0, 4.0], [7.0, 2.0, 7.0], [4.0, 4.0, 7.0]], [[7.0, 7.0, 5.0], [5.0, 6.0, 2.0], [1.0, 1.0, 6.0]]], [[[4.0, 1.0, 7.0], [8.0, 8.0, 1.0], [3.0, 1.0, 4.0]], [[3.0, 6.0, 1.0], [6.0, 1.0, 7.0], [1.0, 1.0, 4.0]], [[5.0, 6.0, 3.0], [2.0, 2.0, 2.0], [1.0, 1.0, 6.0]]]])
4109          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4110       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4111       def test_setslice_constData_rank4_taggedData_UPPP(self):
4112          arg=Data(numarray.array([[[[7.0, 6.0, 4.0], [2.0, 8.0, 2.0], [1.0, 4.0, 8.0]], [[6.0, 2.0, 1.0], [5.0, 3.0, 4.0], [6.0, 6.0, 2.0]], [[4.0, 8.0, 8.0], [1.0, 5.0, 6.0], [7.0, 8.0, 6.0]]], [[[1.0, 1.0, 6.0], [7.0, 7.0, 5.0], [3.0, 2.0, 1.0]], [[6.0, 4.0, 6.0], [8.0, 6.0, 8.0], [5.0, 2.0, 6.0]], [[6.0, 7.0, 1.0], [6.0, 7.0, 7.0], [7.0, 5.0, 8.0]]], [[[8.0, 1.0, 3.0], [1.0, 4.0, 8.0], [2.0, 8.0, 5.0]], [[4.0, 4.0, 7.0], [6.0, 3.0, 2.0], [3.0, 6.0, 8.0]], [[7.0, 6.0, 6.0], [8.0, 6.0, 6.0], [6.0, 6.0, 6.0]]], [[[3.0, 6.0, 4.0], [4.0, 4.0, 4.0], [1.0, 4.0, 3.0]], [[5.0, 5.0, 8.0], [2.0, 5.0, 5.0], [5.0, 8.0, 3.0]], [[1.0, 6.0, 8.0], [6.0, 6.0, 1.0], [5.0, 4.0, 7.0]]]]),self.functionspace)
4113          val=Data(numarray.array([6.0, 4.0, 5.0]),self.functionspace)
4114          val.setTaggedValue(1,numarray.array([4.0, 3.0, 1.0]))
4115          arg[:3,1,1,1]=val
4116          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4117          ref=msk_ref*numarray.array([[[[7.0, 6.0, 4.0], [2.0, 8.0, 2.0], [1.0, 4.0, 8.0]], [[6.0, 2.0, 1.0], [5.0, 6.0, 4.0], [6.0, 6.0, 2.0]], [[4.0, 8.0, 8.0], [1.0, 5.0, 6.0], [7.0, 8.0, 6.0]]], [[[1.0, 1.0, 6.0], [7.0, 7.0, 5.0], [3.0, 2.0, 1.0]], [[6.0, 4.0, 6.0], [8.0, 4.0, 8.0], [5.0, 2.0, 6.0]], [[6.0, 7.0, 1.0], [6.0, 7.0, 7.0], [7.0, 5.0, 8.0]]], [[[8.0, 1.0, 3.0], [1.0, 4.0, 8.0], [2.0, 8.0, 5.0]], [[4.0, 4.0, 7.0], [6.0, 5.0, 2.0], [3.0, 6.0, 8.0]], [[7.0, 6.0, 6.0], [8.0, 6.0, 6.0], [6.0, 6.0, 6.0]]], [[[3.0, 6.0, 4.0], [4.0, 4.0, 4.0], [1.0, 4.0, 3.0]], [[5.0, 5.0, 8.0], [2.0, 5.0, 5.0], [5.0, 8.0, 3.0]], [[1.0, 6.0, 8.0], [6.0, 6.0, 1.0], [5.0, 4.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 6.0, 4.0], [2.0, 8.0, 2.0], [1.0, 4.0, 8.0]], [[6.0, 2.0, 1.0], [5.0, 4.0, 4.0], [6.0, 6.0, 2.0]], [[4.0, 8.0, 8.0], [1.0, 5.0, 6.0], [7.0, 8.0, 6.0]]], [[[1.0, 1.0, 6.0], [7.0, 7.0, 5.0], [3.0, 2.0, 1.0]], [[6.0, 4.0, 6.0], [8.0, 3.0, 8.0], [5.0, 2.0, 6.0]], [[6.0, 7.0, 1.0], [6.0, 7.0, 7.0], [7.0, 5.0, 8.0]]], [[[8.0, 1.0, 3.0], [1.0, 4.0, 8.0], [2.0, 8.0, 5.0]], [[4.0, 4.0, 7.0], [6.0, 1.0, 2.0], [3.0, 6.0, 8.0]], [[7.0, 6.0, 6.0], [8.0, 6.0, 6.0], [6.0, 6.0, 6.0]]], [[[3.0, 6.0, 4.0], [4.0, 4.0, 4.0], [1.0, 4.0, 3.0]], [[5.0, 5.0, 8.0], [2.0, 5.0, 5.0], [5.0, 8.0, 3.0]], [[1.0, 6.0, 8.0], [6.0, 6.0, 1.0], [5.0, 4.0, 7.0]]]])
4118          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4119       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4120       def test_setslice_constData_rank4_taggedData_RLPL(self):
4121          arg=Data(numarray.array([[[[2.0, 7.0, 3.0], [8.0, 6.0, 8.0], [5.0, 7.0, 6.0]], [[7.0, 6.0, 1.0], [7.0, 1.0, 2.0], [2.0, 4.0, 1.0]], [[4.0, 3.0, 7.0], [5.0, 6.0, 5.0], [5.0, 4.0, 1.0]]], [[[7.0, 4.0, 1.0], [3.0, 8.0, 5.0], [3.0, 4.0, 2.0]], [[1.0, 4.0, 1.0], [7.0, 4.0, 1.0], [1.0, 6.0, 8.0]], [[7.0, 7.0, 4.0], [8.0, 5.0, 7.0], [7.0, 7.0, 5.0]]], [[[7.0, 6.0, 5.0], [8.0, 1.0, 5.0], [6.0, 2.0, 7.0]], [[4.0, 7.0, 4.0], [8.0, 3.0, 4.0], [4.0, 6.0, 6.0]], [[6.0, 7.0, 7.0], [4.0, 1.0, 2.0], [6.0, 3.0, 6.0]]], [[[3.0, 3.0, 6.0], [2.0, 8.0, 2.0], [5.0, 1.0, 7.0]], [[8.0, 4.0, 5.0], [3.0, 1.0, 2.0], [3.0, 4.0, 6.0]], [[8.0, 4.0, 8.0], [1.0, 4.0, 2.0], [1.0, 1.0, 2.0]]]]),self.functionspace)
4122          val=Data(numarray.array([[[5.0]], [[6.0]]]),self.functionspace)
4123          val.setTaggedValue(1,numarray.array([[[1.0]], [[3.0]]]))
4124          arg[1:3,2:,1,2:]=val
4125          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4126          ref=msk_ref*numarray.array([[[[2.0, 7.0, 3.0], [8.0, 6.0, 8.0], [5.0, 7.0, 6.0]], [[7.0, 6.0, 1.0], [7.0, 1.0, 2.0], [2.0, 4.0, 1.0]], [[4.0, 3.0, 7.0], [5.0, 6.0, 5.0], [5.0, 4.0, 1.0]]], [[[7.0, 4.0, 1.0], [3.0, 8.0, 5.0], [3.0, 4.0, 2.0]], [[1.0, 4.0, 1.0], [7.0, 4.0, 1.0], [1.0, 6.0, 8.0]], [[7.0, 7.0, 4.0], [8.0, 5.0, 5.0], [7.0, 7.0, 5.0]]], [[[7.0, 6.0, 5.0], [8.0, 1.0, 5.0], [6.0, 2.0, 7.0]], [[4.0, 7.0, 4.0], [8.0, 3.0, 4.0], [4.0, 6.0, 6.0]], [[6.0, 7.0, 7.0], [4.0, 1.0, 6.0], [6.0, 3.0, 6.0]]], [[[3.0, 3.0, 6.0], [2.0, 8.0, 2.0], [5.0, 1.0, 7.0]], [[8.0, 4.0, 5.0], [3.0, 1.0, 2.0], [3.0, 4.0, 6.0]], [[8.0, 4.0, 8.0], [1.0, 4.0, 2.0], [1.0, 1.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 7.0, 3.0], [8.0, 6.0, 8.0], [5.0, 7.0, 6.0]], [[7.0, 6.0, 1.0], [7.0, 1.0, 2.0], [2.0, 4.0, 1.0]], [[4.0, 3.0, 7.0], [5.0, 6.0, 5.0], [5.0, 4.0, 1.0]]], [[[7.0, 4.0, 1.0], [3.0, 8.0, 5.0], [3.0, 4.0, 2.0]], [[1.0, 4.0, 1.0], [7.0, 4.0, 1.0], [1.0, 6.0, 8.0]], [[7.0, 7.0, 4.0], [8.0, 5.0, 1.0], [7.0, 7.0, 5.0]]], [[[7.0, 6.0, 5.0], [8.0, 1.0, 5.0], [6.0, 2.0, 7.0]], [[4.0, 7.0, 4.0], [8.0, 3.0, 4.0], [4.0, 6.0, 6.0]], [[6.0, 7.0, 7.0], [4.0, 1.0, 3.0], [6.0, 3.0, 6.0]]], [[[3.0, 3.0, 6.0], [2.0, 8.0, 2.0], [5.0, 1.0, 7.0]], [[8.0, 4.0, 5.0], [3.0, 1.0, 2.0], [3.0, 4.0, 6.0]], [[8.0, 4.0, 8.0], [1.0, 4.0, 2.0], [1.0, 1.0, 2.0]]]])
4127          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4128       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4129       def test_setslice_constData_rank4_taggedData_UCPP(self):
4130          arg=Data(numarray.array([[[[8.0, 6.0, 3.0], [1.0, 1.0, 6.0], [1.0, 8.0, 4.0]], [[6.0, 3.0, 5.0], [5.0, 3.0, 3.0], [5.0, 8.0, 6.0]], [[3.0, 8.0, 8.0], [1.0, 6.0, 1.0], [3.0, 4.0, 8.0]]], [[[6.0, 7.0, 2.0], [8.0, 4.0, 6.0], [4.0, 8.0, 3.0]], [[8.0, 8.0, 2.0], [4.0, 7.0, 8.0], [1.0, 6.0, 7.0]], [[2.0, 7.0, 2.0], [4.0, 6.0, 4.0], [8.0, 1.0, 7.0]]], [[[2.0, 6.0, 5.0], [1.0, 2.0, 8.0], [2.0, 8.0, 1.0]], [[4.0, 7.0, 1.0], [6.0, 5.0, 4.0], [8.0, 2.0, 8.0]], [[6.0, 8.0, 3.0], [5.0, 5.0, 5.0], [2.0, 8.0, 5.0]]], [[[5.0, 1.0, 8.0], [8.0, 7.0, 5.0], [7.0, 2.0, 3.0]], [[6.0, 8.0, 1.0], [7.0, 5.0, 7.0], [3.0, 5.0, 3.0]], [[8.0, 2.0, 1.0], [3.0, 4.0, 5.0], [2.0, 3.0, 2.0]]]]),self.functionspace)
4131          val=Data(numarray.array([[7.0, 2.0, 3.0], [1.0, 2.0, 8.0], [3.0, 6.0, 8.0]]),self.functionspace)
4132          val.setTaggedValue(1,numarray.array([[4.0, 5.0, 4.0], [7.0, 2.0, 5.0], [2.0, 4.0, 4.0]]))
4133          arg[:3,:,1,1]=val
4134          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4135          ref=msk_ref*numarray.array([[[[8.0, 6.0, 3.0], [1.0, 7.0, 6.0], [1.0, 8.0, 4.0]], [[6.0, 3.0, 5.0], [5.0, 2.0, 3.0], [5.0, 8.0, 6.0]], [[3.0, 8.0, 8.0], [1.0, 3.0, 1.0], [3.0, 4.0, 8.0]]], [[[6.0, 7.0, 2.0], [8.0, 1.0, 6.0], [4.0, 8.0, 3.0]], [[8.0, 8.0, 2.0], [4.0, 2.0, 8.0], [1.0, 6.0, 7.0]], [[2.0, 7.0, 2.0], [4.0, 8.0, 4.0], [8.0, 1.0, 7.0]]], [[[2.0, 6.0, 5.0], [1.0, 3.0, 8.0], [2.0, 8.0, 1.0]], [[4.0, 7.0, 1.0], [6.0, 6.0, 4.0], [8.0, 2.0, 8.0]], [[6.0, 8.0, 3.0], [5.0, 8.0, 5.0], [2.0, 8.0, 5.0]]], [[[5.0, 1.0, 8.0], [8.0, 7.0, 5.0], [7.0, 2.0, 3.0]], [[6.0, 8.0, 1.0], [7.0, 5.0, 7.0], [3.0, 5.0, 3.0]], [[8.0, 2.0, 1.0], [3.0, 4.0, 5.0], [2.0, 3.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 6.0, 3.0], [1.0, 4.0, 6.0], [1.0, 8.0, 4.0]], [[6.0, 3.0, 5.0], [5.0, 5.0, 3.0], [5.0, 8.0, 6.0]], [[3.0, 8.0, 8.0], [1.0, 4.0, 1.0], [3.0, 4.0, 8.0]]], [[[6.0, 7.0, 2.0], [8.0, 7.0, 6.0], [4.0, 8.0, 3.0]], [[8.0, 8.0, 2.0], [4.0, 2.0, 8.0], [1.0, 6.0, 7.0]], [[2.0, 7.0, 2.0], [4.0, 5.0, 4.0], [8.0, 1.0, 7.0]]], [[[2.0, 6.0, 5.0], [1.0, 2.0, 8.0], [2.0, 8.0, 1.0]], [[4.0, 7.0, 1.0], [6.0, 4.0, 4.0], [8.0, 2.0, 8.0]], [[6.0, 8.0, 3.0], [5.0, 4.0, 5.0], [2.0, 8.0, 5.0]]], [[[5.0, 1.0, 8.0], [8.0, 7.0, 5.0], [7.0, 2.0, 3.0]], [[6.0, 8.0, 1.0], [7.0, 5.0, 7.0], [3.0, 5.0, 3.0]], [[8.0, 2.0, 1.0], [3.0, 4.0, 5.0], [2.0, 3.0, 2.0]]]])
4136          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4137       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4138       def test_setslice_constData_rank4_taggedData_PLCN(self):
4139          arg=Data(numarray.array([[[[7.0, 3.0, 8.0], [4.0, 7.0, 4.0], [6.0, 2.0, 7.0]], [[2.0, 5.0, 2.0], [4.0, 2.0, 2.0], [5.0, 5.0, 8.0]], [[6.0, 2.0, 1.0], [2.0, 6.0, 7.0], [6.0, 1.0, 1.0]]], [[[6.0, 2.0, 3.0], [2.0, 3.0, 1.0], [2.0, 4.0, 4.0]], [[2.0, 1.0, 6.0], [3.0, 6.0, 6.0], [4.0, 6.0, 3.0]], [[2.0, 6.0, 7.0], [4.0, 7.0, 3.0], [3.0, 5.0, 6.0]]], [[[1.0, 5.0, 1.0], [6.0, 2.0, 6.0], [3.0, 3.0, 2.0]], [[2.0, 4.0, 5.0], [7.0, 6.0, 4.0], [7.0, 5.0, 3.0]], [[5.0, 1.0, 7.0], [4.0, 5.0, 7.0], [1.0, 1.0, 2.0]]], [[[3.0, 4.0, 3.0], [4.0, 2.0, 8.0], [1.0, 4.0, 3.0]], [[2.0, 1.0, 1.0], [1.0, 3.0, 2.0], [8.0, 6.0, 1.0]], [[5.0, 2.0, 8.0], [3.0, 1.0, 4.0], [2.0, 6.0, 6.0]]]]),self.functionspace)
4140          val=Data(numarray.array([[[3.0, 5.0, 5.0], [4.0, 7.0, 3.0], [4.0, 4.0, 4.0]]]),self.functionspace)
4141          val.setTaggedValue(1,numarray.array([[[7.0, 8.0, 8.0], [8.0, 2.0, 6.0], [4.0, 1.0, 7.0]]]))
4142          arg[2,2:,:]=val
4143          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4144          ref=msk_ref*numarray.array([[[[7.0, 3.0, 8.0], [4.0, 7.0, 4.0], [6.0, 2.0, 7.0]], [[2.0, 5.0, 2.0], [4.0, 2.0, 2.0], [5.0, 5.0, 8.0]], [[6.0, 2.0, 1.0], [2.0, 6.0, 7.0], [6.0, 1.0, 1.0]]], [[[6.0, 2.0, 3.0], [2.0, 3.0, 1.0], [2.0, 4.0, 4.0]], [[2.0, 1.0, 6.0], [3.0, 6.0, 6.0], [4.0, 6.0, 3.0]], [[2.0, 6.0, 7.0], [4.0, 7.0, 3.0], [3.0, 5.0, 6.0]]], [[[1.0, 5.0, 1.0], [6.0, 2.0, 6.0], [3.0, 3.0, 2.0]], [[2.0, 4.0, 5.0], [7.0, 6.0, 4.0], [7.0, 5.0, 3.0]], [[3.0, 5.0, 5.0], [4.0, 7.0, 3.0], [4.0, 4.0, 4.0]]], [[[3.0, 4.0, 3.0], [4.0, 2.0, 8.0], [1.0, 4.0, 3.0]], [[2.0, 1.0, 1.0], [1.0, 3.0, 2.0], [8.0, 6.0, 1.0]], [[5.0, 2.0, 8.0], [3.0, 1.0, 4.0], [2.0, 6.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 3.0, 8.0], [4.0, 7.0, 4.0], [6.0, 2.0, 7.0]], [[2.0, 5.0, 2.0], [4.0, 2.0, 2.0], [5.0, 5.0, 8.0]], [[6.0, 2.0, 1.0], [2.0, 6.0, 7.0], [6.0, 1.0, 1.0]]], [[[6.0, 2.0, 3.0], [2.0, 3.0, 1.0], [2.0, 4.0, 4.0]], [[2.0, 1.0, 6.0], [3.0, 6.0, 6.0], [4.0, 6.0, 3.0]], [[2.0, 6.0, 7.0], [4.0, 7.0, 3.0], [3.0, 5.0, 6.0]]], [[[1.0, 5.0, 1.0], [6.0, 2.0, 6.0], [3.0, 3.0, 2.0]], [[2.0, 4.0, 5.0], [7.0, 6.0, 4.0], [7.0, 5.0, 3.0]], [[7.0, 8.0, 8.0], [8.0, 2.0, 6.0], [4.0, 1.0, 7.0]]], [[[3.0, 4.0, 3.0], [4.0, 2.0, 8.0], [1.0, 4.0, 3.0]], [[2.0, 1.0, 1.0], [1.0, 3.0, 2.0], [8.0, 6.0, 1.0]], [[5.0, 2.0, 8.0], [3.0, 1.0, 4.0], [2.0, 6.0, 6.0]]]])
4145          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4146       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4147       def test_setslice_constData_rank4_taggedData_LPCU(self):
4148          arg=Data(numarray.array([[[[5.0, 2.0, 6.0], [2.0, 5.0, 1.0], [6.0, 7.0, 5.0]], [[4.0, 5.0, 3.0], [3.0, 5.0, 1.0], [6.0, 7.0, 1.0]], [[3.0, 1.0, 8.0], [1.0, 4.0, 2.0], [2.0, 8.0, 2.0]]], [[[1.0, 8.0, 8.0], [1.0, 1.0, 7.0], [2.0, 1.0, 5.0]], [[3.0, 4.0, 7.0], [2.0, 5.0, 8.0], [2.0, 3.0, 5.0]], [[7.0, 6.0, 5.0], [5.0, 3.0, 3.0], [3.0, 7.0, 1.0]]], [[[3.0, 7.0, 4.0], [7.0, 3.0, 4.0], [7.0, 7.0, 5.0]], [[8.0, 6.0, 5.0], [1.0, 8.0, 7.0], [5.0, 2.0, 6.0]], [[4.0, 7.0, 8.0], [6.0, 2.0, 1.0], [5.0, 3.0, 4.0]]], [[[5.0, 4.0, 6.0], [7.0, 6.0, 4.0], [7.0, 3.0, 3.0]], [[3.0, 6.0, 6.0], [6.0, 3.0, 2.0], [1.0, 7.0, 5.0]], [[5.0, 8.0, 4.0], [7.0, 4.0, 6.0], [1.0, 1.0, 7.0]]]]),self.functionspace)
4149          val=Data(numarray.array([[[3.0, 7.0], [1.0, 3.0], [1.0, 8.0]], [[7.0, 5.0], [7.0, 7.0], [7.0, 7.0]]]),self.functionspace)
4150          val.setTaggedValue(1,numarray.array([[[7.0, 8.0], [3.0, 7.0], [2.0, 4.0]], [[8.0, 5.0], [5.0, 4.0], [1.0, 5.0]]]))
4151          arg[2:,1,:,:2]=val
4152          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4153          ref=msk_ref*numarray.array([[[[5.0, 2.0, 6.0], [2.0, 5.0, 1.0], [6.0, 7.0, 5.0]], [[4.0, 5.0, 3.0], [3.0, 5.0, 1.0], [6.0, 7.0, 1.0]], [[3.0, 1.0, 8.0], [1.0, 4.0, 2.0], [2.0, 8.0, 2.0]]], [[[1.0, 8.0, 8.0], [1.0, 1.0, 7.0], [2.0, 1.0, 5.0]], [[3.0, 4.0, 7.0], [2.0, 5.0, 8.0], [2.0, 3.0, 5.0]], [[7.0, 6.0, 5.0], [5.0, 3.0, 3.0], [3.0, 7.0, 1.0]]], [[[3.0, 7.0, 4.0], [7.0, 3.0, 4.0], [7.0, 7.0, 5.0]], [[3.0, 7.0, 5.0], [1.0, 3.0, 7.0], [1.0, 8.0, 6.0]], [[4.0, 7.0, 8.0], [6.0, 2.0, 1.0], [5.0, 3.0, 4.0]]], [[[5.0, 4.0, 6.0], [7.0, 6.0, 4.0], [7.0, 3.0, 3.0]], [[7.0, 5.0, 6.0], [7.0, 7.0, 2.0], [7.0, 7.0, 5.0]], [[5.0, 8.0, 4.0], [7.0, 4.0, 6.0], [1.0, 1.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 2.0, 6.0], [2.0, 5.0, 1.0], [6.0, 7.0, 5.0]], [[4.0, 5.0, 3.0], [3.0, 5.0, 1.0], [6.0, 7.0, 1.0]], [[3.0, 1.0, 8.0], [1.0, 4.0, 2.0], [2.0, 8.0, 2.0]]], [[[1.0, 8.0, 8.0], [1.0, 1.0, 7.0], [2.0, 1.0, 5.0]], [[3.0, 4.0, 7.0], [2.0, 5.0, 8.0], [2.0, 3.0, 5.0]], [[7.0, 6.0, 5.0], [5.0, 3.0, 3.0], [3.0, 7.0, 1.0]]], [[[3.0, 7.0, 4.0], [7.0, 3.0, 4.0], [7.0, 7.0, 5.0]], [[7.0, 8.0, 5.0], [3.0, 7.0, 7.0], [2.0, 4.0, 6.0]], [[4.0, 7.0, 8.0], [6.0, 2.0, 1.0], [5.0, 3.0, 4.0]]], [[[5.0, 4.0, 6.0], [7.0, 6.0, 4.0], [7.0, 3.0, 3.0]], [[8.0, 5.0, 6.0], [5.0, 4.0, 2.0], [1.0, 5.0, 5.0]], [[5.0, 8.0, 4.0], [7.0, 4.0, 6.0], [1.0, 1.0, 7.0]]]])
4154          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4155       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4156       def test_setslice_constData_rank4_taggedData_UCCP(self):
4157          arg=Data(numarray.array([[[[4.0, 5.0, 5.0], [1.0, 1.0, 2.0], [7.0, 4.0, 6.0]], [[6.0, 5.0, 7.0], [3.0, 5.0, 8.0], [4.0, 2.0, 4.0]], [[4.0, 6.0, 1.0], [7.0, 6.0, 3.0], [7.0, 2.0, 4.0]]], [[[6.0, 1.0, 1.0], [7.0, 2.0, 5.0], [4.0, 2.0, 2.0]], [[3.0, 8.0, 6.0], [7.0, 7.0, 2.0], [3.0, 4.0, 6.0]], [[2.0, 8.0, 1.0], [3.0, 1.0, 1.0], [3.0, 4.0, 5.0]]], [[[5.0, 1.0, 6.0], [5.0, 6.0, 1.0], [6.0, 2.0, 2.0]], [[6.0, 7.0, 5.0], [2.0, 1.0, 6.0], [7.0, 8.0, 7.0]], [[3.0, 8.0, 4.0], [1.0, 2.0, 8.0], [1.0, 4.0, 4.0]]], [[[6.0, 7.0, 4.0], [8.0, 2.0, 2.0], [8.0, 8.0, 2.0]], [[4.0, 6.0, 3.0], [5.0, 2.0, 7.0], [5.0, 8.0, 8.0]], [[6.0, 6.0, 7.0], [3.0, 2.0, 4.0], [6.0, 4.0, 4.0]]]]),self.functionspace)
4158          val=Data(numarray.array([[[4.0, 7.0, 5.0], [2.0, 7.0, 2.0], [7.0, 6.0, 8.0]], [[3.0, 3.0, 2.0], [8.0, 3.0, 3.0], [1.0, 6.0, 8.0]], [[8.0, 3.0, 7.0], [3.0, 4.0, 3.0], [2.0, 5.0, 3.0]]]),self.functionspace)
4159          val.setTaggedValue(1,numarray.array([[[4.0, 5.0, 1.0], [1.0, 7.0, 1.0], [1.0, 6.0, 3.0]], [[7.0, 7.0, 3.0], [7.0, 4.0, 5.0], [2.0, 7.0, 6.0]], [[2.0, 6.0, 2.0], [8.0, 7.0, 8.0], [8.0, 8.0, 1.0]]]))
4160          arg[:3,:,:,1]=val
4161          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4162          ref=msk_ref*numarray.array([[[[4.0, 4.0, 5.0], [1.0, 7.0, 2.0], [7.0, 5.0, 6.0]], [[6.0, 2.0, 7.0], [3.0, 7.0, 8.0], [4.0, 2.0, 4.0]], [[4.0, 7.0, 1.0], [7.0, 6.0, 3.0], [7.0, 8.0, 4.0]]], [[[6.0, 3.0, 1.0], [7.0, 3.0, 5.0], [4.0, 2.0, 2.0]], [[3.0, 8.0, 6.0], [7.0, 3.0, 2.0], [3.0, 3.0, 6.0]], [[2.0, 1.0, 1.0], [3.0, 6.0, 1.0], [3.0, 8.0, 5.0]]], [[[5.0, 8.0, 6.0], [5.0, 3.0, 1.0], [6.0, 7.0, 2.0]], [[6.0, 3.0, 5.0], [2.0, 4.0, 6.0], [7.0, 3.0, 7.0]], [[3.0, 2.0, 4.0], [1.0, 5.0, 8.0], [1.0, 3.0, 4.0]]], [[[6.0, 7.0, 4.0], [8.0, 2.0, 2.0], [8.0, 8.0, 2.0]], [[4.0, 6.0, 3.0], [5.0, 2.0, 7.0], [5.0, 8.0, 8.0]], [[6.0, 6.0, 7.0], [3.0, 2.0, 4.0], [6.0, 4.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 4.0, 5.0], [1.0, 5.0, 2.0], [7.0, 1.0, 6.0]], [[6.0, 1.0, 7.0], [3.0, 7.0, 8.0], [4.0, 1.0, 4.0]], [[4.0, 1.0, 1.0], [7.0, 6.0, 3.0], [7.0, 3.0, 4.0]]], [[[6.0, 7.0, 1.0], [7.0, 7.0, 5.0], [4.0, 3.0, 2.0]], [[3.0, 7.0, 6.0], [7.0, 4.0, 2.0], [3.0, 5.0, 6.0]], [[2.0, 2.0, 1.0], [3.0, 7.0, 1.0], [3.0, 6.0, 5.0]]], [[[5.0, 2.0, 6.0], [5.0, 6.0, 1.0], [6.0, 2.0, 2.0]], [[6.0, 8.0, 5.0], [2.0, 7.0, 6.0], [7.0, 8.0, 7.0]], [[3.0, 8.0, 4.0], [1.0, 8.0, 8.0], [1.0, 1.0, 4.0]]], [[[6.0, 7.0, 4.0], [8.0, 2.0, 2.0], [8.0, 8.0, 2.0]], [[4.0, 6.0, 3.0], [5.0, 2.0, 7.0], [5.0, 8.0, 8.0]], [[6.0, 6.0, 7.0], [3.0, 2.0, 4.0], [6.0, 4.0, 4.0]]]])
4163          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4164       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4165       def test_setslice_constData_rank4_taggedData_RLRR(self):
4166          arg=Data(numarray.array([[[[2.0, 4.0, 8.0], [4.0, 4.0, 3.0], [2.0, 5.0, 5.0]], [[6.0, 5.0, 2.0], [1.0, 8.0, 1.0], [4.0, 6.0, 2.0]], [[2.0, 2.0, 7.0], [7.0, 7.0, 8.0], [4.0, 7.0, 1.0]]], [[[7.0, 2.0, 3.0], [1.0, 4.0, 1.0], [7.0, 8.0, 2.0]], [[4.0, 3.0, 1.0], [8.0, 6.0, 3.0], [5.0, 8.0, 1.0]], [[5.0, 1.0, 5.0], [6.0, 1.0, 6.0], [1.0, 3.0, 7.0]]], [[[4.0, 6.0, 5.0], [2.0, 6.0, 1.0], [1.0, 3.0, 6.0]], [[4.0, 8.0, 7.0], [5.0, 7.0, 4.0], [5.0, 4.0, 7.0]], [[5.0, 2.0, 2.0], [7.0, 1.0, 7.0], [3.0, 5.0, 5.0]]], [[[3.0, 1.0, 2.0], [7.0, 6.0, 3.0], [3.0, 5.0, 7.0]], [[5.0, 2.0, 2.0], [8.0, 1.0, 4.0], [3.0, 2.0, 1.0]], [[3.0, 2.0, 8.0], [5.0, 8.0, 7.0], [3.0, 3.0, 5.0]]]]),self.functionspace)
4167          val=Data(numarray.array([[[[7.0]]], [[[7.0]]]]),self.functionspace)
4168          val.setTaggedValue(1,numarray.array([[[[2.0]]], [[[8.0]]]]))
4169          arg[1:3,2:,1:2,1:2]=val
4170          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4171          ref=msk_ref*numarray.array([[[[2.0, 4.0, 8.0], [4.0, 4.0, 3.0], [2.0, 5.0, 5.0]], [[6.0, 5.0, 2.0], [1.0, 8.0, 1.0], [4.0, 6.0, 2.0]], [[2.0, 2.0, 7.0], [7.0, 7.0, 8.0], [4.0, 7.0, 1.0]]], [[[7.0, 2.0, 3.0], [1.0, 4.0, 1.0], [7.0, 8.0, 2.0]], [[4.0, 3.0, 1.0], [8.0, 6.0, 3.0], [5.0, 8.0, 1.0]], [[5.0, 1.0, 5.0], [6.0, 7.0, 6.0], [1.0, 3.0, 7.0]]], [[[4.0, 6.0, 5.0], [2.0, 6.0, 1.0], [1.0, 3.0, 6.0]], [[4.0, 8.0, 7.0], [5.0, 7.0, 4.0], [5.0, 4.0, 7.0]], [[5.0, 2.0, 2.0], [7.0, 7.0, 7.0], [3.0, 5.0, 5.0]]], [[[3.0, 1.0, 2.0], [7.0, 6.0, 3.0], [3.0, 5.0, 7.0]], [[5.0, 2.0, 2.0], [8.0, 1.0, 4.0], [3.0, 2.0, 1.0]], [[3.0, 2.0, 8.0], [5.0, 8.0, 7.0], [3.0, 3.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 4.0, 8.0], [4.0, 4.0, 3.0], [2.0, 5.0, 5.0]], [[6.0, 5.0, 2.0], [1.0, 8.0, 1.0], [4.0, 6.0, 2.0]], [[2.0, 2.0, 7.0], [7.0, 7.0, 8.0], [4.0, 7.0, 1.0]]], [[[7.0, 2.0, 3.0], [1.0, 4.0, 1.0], [7.0, 8.0, 2.0]], [[4.0, 3.0, 1.0], [8.0, 6.0, 3.0], [5.0, 8.0, 1.0]], [[5.0, 1.0, 5.0], [6.0, 2.0, 6.0], [1.0, 3.0, 7.0]]], [[[4.0, 6.0, 5.0], [2.0, 6.0, 1.0], [1.0, 3.0, 6.0]], [[4.0, 8.0, 7.0], [5.0, 7.0, 4.0], [5.0, 4.0, 7.0]], [[5.0, 2.0, 2.0], [7.0, 8.0, 7.0], [3.0, 5.0, 5.0]]], [[[3.0, 1.0, 2.0], [7.0, 6.0, 3.0], [3.0, 5.0, 7.0]], [[5.0, 2.0, 2.0], [8.0, 1.0, 4.0], [3.0, 2.0, 1.0]], [[3.0, 2.0, 8.0], [5.0, 8.0, 7.0], [3.0, 3.0, 5.0]]]])
4172          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4173       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4174       def test_setslice_constData_rank4_taggedData_URRP(self):
4175          arg=Data(numarray.array([[[[3.0, 2.0, 3.0], [5.0, 1.0, 7.0], [5.0, 7.0, 8.0]], [[6.0, 3.0, 8.0], [4.0, 8.0, 2.0], [5.0, 3.0, 4.0]], [[2.0, 2.0, 3.0], [5.0, 1.0, 1.0], [3.0, 2.0, 3.0]]], [[[5.0, 2.0, 1.0], [3.0, 8.0, 3.0], [4.0, 8.0, 4.0]], [[3.0, 2.0, 5.0], [4.0, 3.0, 5.0], [7.0, 1.0, 5.0]], [[8.0, 8.0, 7.0], [4.0, 8.0, 8.0], [2.0, 7.0, 8.0]]], [[[1.0, 8.0, 7.0], [5.0, 4.0, 3.0], [5.0, 7.0, 5.0]], [[8.0, 8.0, 5.0], [3.0, 3.0, 3.0], [7.0, 7.0, 7.0]], [[2.0, 5.0, 8.0], [6.0, 3.0, 8.0], [1.0, 1.0, 3.0]]], [[[4.0, 2.0, 5.0], [3.0, 5.0, 4.0], [3.0, 7.0, 5.0]], [[5.0, 5.0, 4.0], [1.0, 3.0, 3.0], [1.0, 6.0, 1.0]], [[2.0, 7.0, 8.0], [1.0, 1.0, 4.0], [3.0, 1.0, 2.0]]]]),self.functionspace)
4176          val=Data(numarray.array([[[4.0]], [[4.0]], [[7.0]]]),self.functionspace)
4177          val.setTaggedValue(1,numarray.array([[[5.0]], [[7.0]], [[2.0]]]))
4178          arg[:3,1:2,1:2,1]=val
4179          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4180          ref=msk_ref*numarray.array([[[[3.0, 2.0, 3.0], [5.0, 1.0, 7.0], [5.0, 7.0, 8.0]], [[6.0, 3.0, 8.0], [4.0, 4.0, 2.0], [5.0, 3.0, 4.0]], [[2.0, 2.0, 3.0], [5.0, 1.0, 1.0], [3.0, 2.0, 3.0]]], [[[5.0, 2.0, 1.0], [3.0, 8.0, 3.0], [4.0, 8.0, 4.0]], [[3.0, 2.0, 5.0], [4.0, 4.0, 5.0], [7.0, 1.0, 5.0]], [[8.0, 8.0, 7.0], [4.0, 8.0, 8.0], [2.0, 7.0, 8.0]]], [[[1.0, 8.0, 7.0], [5.0, 4.0, 3.0], [5.0, 7.0, 5.0]], [[8.0, 8.0, 5.0], [3.0, 7.0, 3.0], [7.0, 7.0, 7.0]], [[2.0, 5.0, 8.0], [6.0, 3.0, 8.0], [1.0, 1.0, 3.0]]], [[[4.0, 2.0, 5.0], [3.0, 5.0, 4.0], [3.0, 7.0, 5.0]], [[5.0, 5.0, 4.0], [1.0, 3.0, 3.0], [1.0, 6.0, 1.0]], [[2.0, 7.0, 8.0], [1.0, 1.0, 4.0], [3.0, 1.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 2.0, 3.0], [5.0, 1.0, 7.0], [5.0, 7.0, 8.0]], [[6.0, 3.0, 8.0], [4.0, 5.0, 2.0], [5.0, 3.0, 4.0]], [[2.0, 2.0, 3.0], [5.0, 1.0, 1.0], [3.0, 2.0, 3.0]]], [[[5.0, 2.0, 1.0], [3.0, 8.0, 3.0], [4.0, 8.0, 4.0]], [[3.0, 2.0, 5.0], [4.0, 7.0, 5.0], [7.0, 1.0, 5.0]], [[8.0, 8.0, 7.0], [4.0, 8.0, 8.0], [2.0, 7.0, 8.0]]], [[[1.0, 8.0, 7.0], [5.0, 4.0, 3.0], [5.0, 7.0, 5.0]], [[8.0, 8.0, 5.0], [3.0, 2.0, 3.0], [7.0, 7.0, 7.0]], [[2.0, 5.0, 8.0], [6.0, 3.0, 8.0], [1.0, 1.0, 3.0]]], [[[4.0, 2.0, 5.0], [3.0, 5.0, 4.0], [3.0, 7.0, 5.0]], [[5.0, 5.0, 4.0], [1.0, 3.0, 3.0], [1.0, 6.0, 1.0]], [[2.0, 7.0, 8.0], [1.0, 1.0, 4.0], [3.0, 1.0, 2.0]]]])
4181          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4182       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4183       def test_setslice_constData_rank4_taggedData_UUCU(self):
4184          arg=Data(numarray.array([[[[2.0, 7.0, 1.0], [1.0, 5.0, 5.0], [1.0, 7.0, 1.0]], [[5.0, 4.0, 3.0], [2.0, 1.0, 2.0], [1.0, 2.0, 2.0]], [[8.0, 4.0, 5.0], [8.0, 5.0, 5.0], [8.0, 5.0, 4.0]]], [[[2.0, 3.0, 2.0], [5.0, 6.0, 3.0], [5.0, 4.0, 6.0]], [[5.0, 1.0, 2.0], [5.0, 5.0, 7.0], [8.0, 8.0, 1.0]], [[8.0, 7.0, 5.0], [2.0, 2.0, 2.0], [7.0, 2.0, 4.0]]], [[[4.0, 3.0, 1.0], [2.0, 1.0, 5.0], [1.0, 2.0, 2.0]], [[7.0, 7.0, 6.0], [2.0, 4.0, 6.0], [6.0, 5.0, 2.0]], [[7.0, 8.0, 1.0], [5.0, 5.0, 7.0], [3.0, 3.0, 6.0]]], [[[7.0, 6.0, 5.0], [8.0, 1.0, 5.0], [7.0, 4.0, 4.0]], [[4.0, 5.0, 8.0], [5.0, 3.0, 5.0], [3.0, 2.0, 8.0]], [[3.0, 7.0, 2.0], [4.0, 8.0, 8.0], [7.0, 2.0, 1.0]]]]),self.functionspace)
4185          val=Data(numarray.array([[[[3.0, 6.0], [8.0, 5.0], [1.0, 5.0]], [[4.0, 5.0], [4.0, 5.0], [6.0, 2.0]]], [[[3.0, 8.0], [1.0, 4.0], [8.0, 7.0]], [[5.0, 6.0], [6.0, 6.0], [7.0, 7.0]]], [[[3.0, 3.0], [6.0, 8.0], [7.0, 6.0]], [[6.0, 3.0], [7.0, 7.0], [7.0, 8.0]]]]),self.functionspace)
4186          val.setTaggedValue(1,numarray.array([[[[8.0, 1.0], [3.0, 6.0], [6.0, 4.0]], [[2.0, 4.0], [2.0, 8.0], [1.0, 2.0]]], [[[8.0, 3.0], [8.0, 7.0], [4.0, 8.0]], [[5.0, 3.0], [1.0, 5.0], [3.0, 6.0]]], [[[2.0, 4.0], [1.0, 7.0], [4.0, 8.0]], [[5.0, 6.0], [8.0, 3.0], [4.0, 3.0]]]]))
4187          arg[:3,:2,:,:2]=val
4188          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4189          ref=msk_ref*numarray.array([[[[3.0, 6.0, 1.0], [8.0, 5.0, 5.0], [1.0, 5.0, 1.0]], [[4.0, 5.0, 3.0], [4.0, 5.0, 2.0], [6.0, 2.0, 2.0]], [[8.0, 4.0, 5.0], [8.0, 5.0, 5.0], [8.0, 5.0, 4.0]]], [[[3.0, 8.0, 2.0], [1.0, 4.0, 3.0], [8.0, 7.0, 6.0]], [[5.0, 6.0, 2.0], [6.0, 6.0, 7.0], [7.0, 7.0, 1.0]], [[8.0, 7.0, 5.0], [2.0, 2.0, 2.0], [7.0, 2.0, 4.0]]], [[[3.0, 3.0, 1.0], [6.0, 8.0, 5.0], [7.0, 6.0, 2.0]], [[6.0, 3.0, 6.0], [7.0, 7.0, 6.0], [7.0, 8.0, 2.0]], [[7.0, 8.0, 1.0], [5.0, 5.0, 7.0], [3.0, 3.0, 6.0]]], [[[7.0, 6.0, 5.0], [8.0, 1.0, 5.0], [7.0, 4.0, 4.0]], [[4.0, 5.0, 8.0], [5.0, 3.0, 5.0], [3.0, 2.0, 8.0]], [[3.0, 7.0, 2.0], [4.0, 8.0, 8.0], [7.0, 2.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 1.0, 1.0], [3.0, 6.0, 5.0], [6.0, 4.0, 1.0]], [[2.0, 4.0, 3.0], [2.0, 8.0, 2.0], [1.0, 2.0, 2.0]], [[8.0, 4.0, 5.0], [8.0, 5.0, 5.0], [8.0, 5.0, 4.0]]], [[[8.0, 3.0, 2.0], [8.0, 7.0, 3.0], [4.0, 8.0, 6.0]], [[5.0, 3.0, 2.0], [1.0, 5.0, 7.0], [3.0, 6.0, 1.0]], [[8.0, 7.0, 5.0], [2.0, 2.0, 2.0], [7.0, 2.0, 4.0]]], [[[2.0, 4.0, 1.0], [1.0, 7.0, 5.0], [4.0, 8.0, 2.0]], [[5.0, 6.0, 6.0], [8.0, 3.0, 6.0], [4.0, 3.0, 2.0]], [[7.0, 8.0, 1.0], [5.0, 5.0, 7.0], [3.0, 3.0, 6.0]]], [[[7.0, 6.0, 5.0], [8.0, 1.0, 5.0], [7.0, 4.0, 4.0]], [[4.0, 5.0, 8.0], [5.0, 3.0, 5.0], [3.0, 2.0, 8.0]], [[3.0, 7.0, 2.0], [4.0, 8.0, 8.0], [7.0, 2.0, 1.0]]]])
4190          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4191       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4192       def test_setslice_constData_rank4_taggedData_CPRL(self):
4193          arg=Data(numarray.array([[[[4.0, 2.0, 4.0], [6.0, 3.0, 2.0], [2.0, 1.0, 5.0]], [[2.0, 7.0, 4.0], [4.0, 6.0, 2.0], [8.0, 3.0, 2.0]], [[1.0, 7.0, 6.0], [3.0, 1.0, 4.0], [6.0, 7.0, 8.0]]], [[[1.0, 1.0, 8.0], [2.0, 1.0, 4.0], [7.0, 1.0, 2.0]], [[2.0, 3.0, 1.0], [7.0, 4.0, 8.0], [3.0, 5.0, 3.0]], [[3.0, 2.0, 2.0], [8.0, 3.0, 8.0], [6.0, 4.0, 7.0]]], [[[6.0, 6.0, 1.0], [2.0, 2.0, 8.0], [7.0, 5.0, 4.0]], [[4.0, 7.0, 8.0], [5.0, 4.0, 2.0], [1.0, 3.0, 7.0]], [[7.0, 2.0, 3.0], [8.0, 4.0, 3.0], [1.0, 8.0, 8.0]]], [[[6.0, 5.0, 3.0], [5.0, 3.0, 3.0], [2.0, 1.0, 8.0]], [[1.0, 8.0, 6.0], [7.0, 1.0, 4.0], [2.0, 3.0, 3.0]], [[3.0, 4.0, 3.0], [5.0, 4.0, 5.0], [3.0, 4.0, 6.0]]]]),self.functionspace)
4194          val=Data(numarray.array([[[5.0]], [[8.0]], [[7.0]], [[3.0]]]),self.functionspace)
4195          val.setTaggedValue(1,numarray.array([[[2.0]], [[7.0]], [[4.0]], [[4.0]]]))
4196          arg[:,1,1:2,2:]=val
4197          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4198          ref=msk_ref*numarray.array([[[[4.0, 2.0, 4.0], [6.0, 3.0, 2.0], [2.0, 1.0, 5.0]], [[2.0, 7.0, 4.0], [4.0, 6.0, 5.0], [8.0, 3.0, 2.0]], [[1.0, 7.0, 6.0], [3.0, 1.0, 4.0], [6.0, 7.0, 8.0]]], [[[1.0, 1.0, 8.0], [2.0, 1.0, 4.0], [7.0, 1.0, 2.0]], [[2.0, 3.0, 1.0], [7.0, 4.0, 8.0], [3.0, 5.0, 3.0]], [[3.0, 2.0, 2.0], [8.0, 3.0, 8.0], [6.0, 4.0, 7.0]]], [[[6.0, 6.0, 1.0], [2.0, 2.0, 8.0], [7.0, 5.0, 4.0]], [[4.0, 7.0, 8.0], [5.0, 4.0, 7.0], [1.0, 3.0, 7.0]], [[7.0, 2.0, 3.0], [8.0, 4.0, 3.0], [1.0, 8.0, 8.0]]], [[[6.0, 5.0, 3.0], [5.0, 3.0, 3.0], [2.0, 1.0, 8.0]], [[1.0, 8.0, 6.0], [7.0, 1.0, 3.0], [2.0, 3.0, 3.0]], [[3.0, 4.0, 3.0], [5.0, 4.0, 5.0], [3.0, 4.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 2.0, 4.0], [6.0, 3.0, 2.0], [2.0, 1.0, 5.0]], [[2.0, 7.0, 4.0], [4.0, 6.0, 2.0], [8.0, 3.0, 2.0]], [[1.0, 7.0, 6.0], [3.0, 1.0, 4.0], [6.0, 7.0, 8.0]]], [[[1.0, 1.0, 8.0], [2.0, 1.0, 4.0], [7.0, 1.0, 2.0]], [[2.0, 3.0, 1.0], [7.0, 4.0, 7.0], [3.0, 5.0, 3.0]], [[3.0, 2.0, 2.0], [8.0, 3.0, 8.0], [6.0, 4.0, 7.0]]], [[[6.0, 6.0, 1.0], [2.0, 2.0, 8.0], [7.0, 5.0, 4.0]], [[4.0, 7.0, 8.0], [5.0, 4.0, 4.0], [1.0, 3.0, 7.0]], [[7.0, 2.0, 3.0], [8.0, 4.0, 3.0], [1.0, 8.0, 8.0]]], [[[6.0, 5.0, 3.0], [5.0, 3.0, 3.0], [2.0, 1.0, 8.0]], [[1.0, 8.0, 6.0], [7.0, 1.0, 4.0], [2.0, 3.0, 3.0]], [[3.0, 4.0, 3.0], [5.0, 4.0, 5.0], [3.0, 4.0, 6.0]]]])
4199          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4200       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4201       def test_setslice_constData_rank4_taggedData_URUN(self):
4202          arg=Data(numarray.array([[[[5.0, 1.0, 5.0], [6.0, 8.0, 1.0], [7.0, 5.0, 2.0]], [[8.0, 6.0, 2.0], [1.0, 8.0, 3.0], [5.0, 7.0, 6.0]], [[4.0, 5.0, 5.0], [3.0, 5.0, 5.0], [3.0, 7.0, 7.0]]], [[[8.0, 5.0, 2.0], [7.0, 3.0, 2.0], [1.0, 3.0, 4.0]], [[6.0, 8.0, 3.0], [3.0, 4.0, 3.0], [2.0, 5.0, 8.0]], [[7.0, 1.0, 1.0], [5.0, 1.0, 6.0], [3.0, 2.0, 6.0]]], [[[6.0, 3.0, 8.0], [3.0, 7.0, 2.0], [8.0, 3.0, 6.0]], [[2.0, 7.0, 4.0], [3.0, 4.0, 8.0], [4.0, 6.0, 8.0]], [[6.0, 3.0, 1.0], [1.0, 5.0, 4.0], [1.0, 8.0, 4.0]]], [[[7.0, 2.0, 8.0], [4.0, 5.0, 5.0], [1.0, 6.0, 4.0]], [[4.0, 2.0, 3.0], [7.0, 4.0, 3.0], [8.0, 2.0, 6.0]], [[3.0, 4.0, 4.0], [2.0, 7.0, 8.0], [8.0, 3.0, 6.0]]]]),self.functionspace)
4203          val=Data(numarray.array([[[[6.0, 8.0, 1.0], [6.0, 4.0, 8.0]]], [[[6.0, 1.0, 3.0], [5.0, 2.0, 7.0]]], [[[4.0, 3.0, 5.0], [5.0, 7.0, 2.0]]]]),self.functionspace)
4204          val.setTaggedValue(1,numarray.array([[[[4.0, 5.0, 7.0], [2.0, 6.0, 6.0]]], [[[3.0, 4.0, 1.0], [6.0, 7.0, 5.0]]], [[[6.0, 5.0, 8.0], [5.0, 5.0, 8.0]]]]))
4205          arg[:3,1:2,:2]=val
4206          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4207          ref=msk_ref*numarray.array([[[[5.0, 1.0, 5.0], [6.0, 8.0, 1.0], [7.0, 5.0, 2.0]], [[6.0, 8.0, 1.0], [6.0, 4.0, 8.0], [5.0, 7.0, 6.0]], [[4.0, 5.0, 5.0], [3.0, 5.0, 5.0], [3.0, 7.0, 7.0]]], [[[8.0, 5.0, 2.0], [7.0, 3.0, 2.0], [1.0, 3.0, 4.0]], [[6.0, 1.0, 3.0], [5.0, 2.0, 7.0], [2.0, 5.0, 8.0]], [[7.0, 1.0, 1.0], [5.0, 1.0, 6.0], [3.0, 2.0, 6.0]]], [[[6.0, 3.0, 8.0], [3.0, 7.0, 2.0], [8.0, 3.0, 6.0]], [[4.0, 3.0, 5.0], [5.0, 7.0, 2.0], [4.0, 6.0, 8.0]], [[6.0, 3.0, 1.0], [1.0, 5.0, 4.0], [1.0, 8.0, 4.0]]], [[[7.0, 2.0, 8.0], [4.0, 5.0, 5.0], [1.0, 6.0, 4.0]], [[4.0, 2.0, 3.0], [7.0, 4.0, 3.0], [8.0, 2.0, 6.0]], [[3.0, 4.0, 4.0], [2.0, 7.0, 8.0], [8.0, 3.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 1.0, 5.0], [6.0, 8.0, 1.0], [7.0, 5.0, 2.0]], [[4.0, 5.0, 7.0], [2.0, 6.0, 6.0], [5.0, 7.0, 6.0]], [[4.0, 5.0, 5.0], [3.0, 5.0, 5.0], [3.0, 7.0, 7.0]]], [[[8.0, 5.0, 2.0], [7.0, 3.0, 2.0], [1.0, 3.0, 4.0]], [[3.0, 4.0, 1.0], [6.0, 7.0, 5.0], [2.0, 5.0, 8.0]], [[7.0, 1.0, 1.0], [5.0, 1.0, 6.0], [3.0, 2.0, 6.0]]], [[[6.0, 3.0, 8.0], [3.0, 7.0, 2.0], [8.0, 3.0, 6.0]], [[6.0, 5.0, 8.0], [5.0, 5.0, 8.0], [4.0, 6.0, 8.0]], [[6.0, 3.0, 1.0], [1.0, 5.0, 4.0], [1.0, 8.0, 4.0]]], [[[7.0, 2.0, 8.0], [4.0, 5.0, 5.0], [1.0, 6.0, 4.0]], [[4.0, 2.0, 3.0], [7.0, 4.0, 3.0], [8.0, 2.0, 6.0]], [[3.0, 4.0, 4.0], [2.0, 7.0, 8.0], [8.0, 3.0, 6.0]]]])
4208          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4209       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4210       def test_setslice_constData_rank4_taggedData_PUCN(self):
4211          arg=Data(numarray.array([[[[6.0, 5.0, 5.0], [2.0, 7.0, 3.0], [3.0, 5.0, 2.0]], [[3.0, 1.0, 5.0], [7.0, 1.0, 3.0], [8.0, 3.0, 1.0]], [[4.0, 7.0, 2.0], [2.0, 1.0, 4.0], [3.0, 8.0, 5.0]]], [[[8.0, 5.0, 4.0], [1.0, 4.0, 5.0], [8.0, 1.0, 8.0]], [[4.0, 6.0, 4.0], [1.0, 4.0, 7.0], [3.0, 7.0, 5.0]], [[8.0, 5.0, 2.0], [3.0, 3.0, 4.0], [1.0, 4.0, 1.0]]], [[[6.0, 8.0, 5.0], [8.0, 6.0, 7.0], [7.0, 7.0, 3.0]], [[8.0, 2.0, 5.0], [5.0, 2.0, 3.0], [4.0, 2.0, 6.0]], [[7.0, 6.0, 3.0], [2.0, 7.0, 7.0], [1.0, 8.0, 3.0]]], [[[4.0, 7.0, 5.0], [1.0, 7.0, 6.0], [5.0, 3.0, 7.0]], [[6.0, 3.0, 4.0], [6.0, 3.0, 5.0], [2.0, 6.0, 1.0]], [[5.0, 5.0, 6.0], [8.0, 7.0, 6.0], [2.0, 8.0, 1.0]]]]),self.functionspace)
4212          val=Data(numarray.array([[[4.0, 1.0, 5.0], [1.0, 3.0, 5.0], [3.0, 2.0, 7.0]], [[4.0, 3.0, 7.0], [2.0, 4.0, 2.0], [5.0, 1.0, 6.0]]]),self.functionspace)
4213          val.setTaggedValue(1,numarray.array([[[7.0, 1.0, 3.0], [5.0, 1.0, 3.0], [3.0, 7.0, 7.0]], [[2.0, 1.0, 6.0], [4.0, 5.0, 3.0], [2.0, 6.0, 2.0]]]))
4214          arg[2,:2,:]=val
4215          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4216          ref=msk_ref*numarray.array([[[[6.0, 5.0, 5.0], [2.0, 7.0, 3.0], [3.0, 5.0, 2.0]], [[3.0, 1.0, 5.0], [7.0, 1.0, 3.0], [8.0, 3.0, 1.0]], [[4.0, 7.0, 2.0], [2.0, 1.0, 4.0], [3.0, 8.0, 5.0]]], [[[8.0, 5.0, 4.0], [1.0, 4.0, 5.0], [8.0, 1.0, 8.0]], [[4.0, 6.0, 4.0], [1.0, 4.0, 7.0], [3.0, 7.0, 5.0]], [[8.0, 5.0, 2.0], [3.0, 3.0, 4.0], [1.0, 4.0, 1.0]]], [[[4.0, 1.0, 5.0], [1.0, 3.0, 5.0], [3.0, 2.0, 7.0]], [[4.0, 3.0, 7.0], [2.0, 4.0, 2.0], [5.0, 1.0, 6.0]], [[7.0, 6.0, 3.0], [2.0, 7.0, 7.0], [1.0, 8.0, 3.0]]], [[[4.0, 7.0, 5.0], [1.0, 7.0, 6.0], [5.0, 3.0, 7.0]], [[6.0, 3.0, 4.0], [6.0, 3.0, 5.0], [2.0, 6.0, 1.0]], [[5.0, 5.0, 6.0], [8.0, 7.0, 6.0], [2.0, 8.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 5.0, 5.0], [2.0, 7.0, 3.0], [3.0, 5.0, 2.0]], [[3.0, 1.0, 5.0], [7.0, 1.0, 3.0], [8.0, 3.0, 1.0]], [[4.0, 7.0, 2.0], [2.0, 1.0, 4.0], [3.0, 8.0, 5.0]]], [[[8.0, 5.0, 4.0], [1.0, 4.0, 5.0], [8.0, 1.0, 8.0]], [[4.0, 6.0, 4.0], [1.0, 4.0, 7.0], [3.0, 7.0, 5.0]], [[8.0, 5.0, 2.0], [3.0, 3.0, 4.0], [1.0, 4.0, 1.0]]], [[[7.0, 1.0, 3.0], [5.0, 1.0, 3.0], [3.0, 7.0, 7.0]], [[2.0, 1.0, 6.0], [4.0, 5.0, 3.0], [2.0, 6.0, 2.0]], [[7.0, 6.0, 3.0], [2.0, 7.0, 7.0], [1.0, 8.0, 3.0]]], [[[4.0, 7.0, 5.0], [1.0, 7.0, 6.0], [5.0, 3.0, 7.0]], [[6.0, 3.0, 4.0], [6.0, 3.0, 5.0], [2.0, 6.0, 1.0]], [[5.0, 5.0, 6.0], [8.0, 7.0, 6.0], [2.0, 8.0, 1.0]]]])
4217          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4218       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4219       def test_setslice_constData_rank4_taggedData_ULRP(self):
4220          arg=Data(numarray.array([[[[2.0, 5.0, 3.0], [4.0, 4.0, 1.0], [4.0, 6.0, 1.0]], [[6.0, 8.0, 1.0], [3.0, 2.0, 7.0], [2.0, 6.0, 3.0]], [[2.0, 8.0, 7.0], [5.0, 8.0, 4.0], [7.0, 5.0, 5.0]]], [[[3.0, 8.0, 7.0], [7.0, 4.0, 2.0], [4.0, 6.0, 2.0]], [[3.0, 5.0, 1.0], [3.0, 7.0, 4.0], [5.0, 2.0, 8.0]], [[6.0, 4.0, 2.0], [3.0, 8.0, 1.0], [1.0, 5.0, 8.0]]], [[[2.0, 6.0, 5.0], [6.0, 5.0, 3.0], [1.0, 7.0, 3.0]], [[3.0, 4.0, 2.0], [6.0, 4.0, 6.0], [1.0, 3.0, 2.0]], [[5.0, 5.0, 4.0], [6.0, 3.0, 6.0], [8.0, 3.0, 5.0]]], [[[4.0, 1.0, 6.0], [4.0, 2.0, 1.0], [8.0, 3.0, 8.0]], [[3.0, 6.0, 1.0], [1.0, 3.0, 3.0], [7.0, 2.0, 7.0]], [[6.0, 2.0, 7.0], [7.0, 2.0, 7.0], [4.0, 8.0, 6.0]]]]),self.functionspace)
4221          val=Data(numarray.array([[[8.0]], [[3.0]], [[2.0]]]),self.functionspace)
4222          val.setTaggedValue(1,numarray.array([[[6.0]], [[5.0]], [[2.0]]]))
4223          arg[:3,2:,1:2,1]=val
4224          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4225          ref=msk_ref*numarray.array([[[[2.0, 5.0, 3.0], [4.0, 4.0, 1.0], [4.0, 6.0, 1.0]], [[6.0, 8.0, 1.0], [3.0, 2.0, 7.0], [2.0, 6.0, 3.0]], [[2.0, 8.0, 7.0], [5.0, 8.0, 4.0], [7.0, 5.0, 5.0]]], [[[3.0, 8.0, 7.0], [7.0, 4.0, 2.0], [4.0, 6.0, 2.0]], [[3.0, 5.0, 1.0], [3.0, 7.0, 4.0], [5.0, 2.0, 8.0]], [[6.0, 4.0, 2.0], [3.0, 3.0, 1.0], [1.0, 5.0, 8.0]]], [[[2.0, 6.0, 5.0], [6.0, 5.0, 3.0], [1.0, 7.0, 3.0]], [[3.0, 4.0, 2.0], [6.0, 4.0, 6.0], [1.0, 3.0, 2.0]], [[5.0, 5.0, 4.0], [6.0, 2.0, 6.0], [8.0, 3.0, 5.0]]], [[[4.0, 1.0, 6.0], [4.0, 2.0, 1.0], [8.0, 3.0, 8.0]], [[3.0, 6.0, 1.0], [1.0, 3.0, 3.0], [7.0, 2.0, 7.0]], [[6.0, 2.0, 7.0], [7.0, 2.0, 7.0], [4.0, 8.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 5.0, 3.0], [4.0, 4.0, 1.0], [4.0, 6.0, 1.0]], [[6.0, 8.0, 1.0], [3.0, 2.0, 7.0], [2.0, 6.0, 3.0]], [[2.0, 8.0, 7.0], [5.0, 6.0, 4.0], [7.0, 5.0, 5.0]]], [[[3.0, 8.0, 7.0], [7.0, 4.0, 2.0], [4.0, 6.0, 2.0]], [[3.0, 5.0, 1.0], [3.0, 7.0, 4.0], [5.0, 2.0, 8.0]], [[6.0, 4.0, 2.0], [3.0, 5.0, 1.0], [1.0, 5.0, 8.0]]], [[[2.0, 6.0, 5.0], [6.0, 5.0, 3.0], [1.0, 7.0, 3.0]], [[3.0, 4.0, 2.0], [6.0, 4.0, 6.0], [1.0, 3.0, 2.0]], [[5.0, 5.0, 4.0], [6.0, 2.0, 6.0], [8.0, 3.0, 5.0]]], [[[4.0, 1.0, 6.0], [4.0, 2.0, 1.0], [8.0, 3.0, 8.0]], [[3.0, 6.0, 1.0], [1.0, 3.0, 3.0], [7.0, 2.0, 7.0]], [[6.0, 2.0, 7.0], [7.0, 2.0, 7.0], [4.0, 8.0, 6.0]]]])
4226          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4227       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4228       def test_setslice_constData_rank4_taggedData_RPUN(self):
4229          arg=Data(numarray.array([[[[1.0, 4.0, 6.0], [4.0, 2.0, 1.0], [3.0, 3.0, 2.0]], [[7.0, 4.0, 8.0], [8.0, 4.0, 1.0], [1.0, 3.0, 1.0]], [[4.0, 7.0, 5.0], [1.0, 7.0, 8.0], [2.0, 1.0, 5.0]]], [[[5.0, 2.0, 7.0], [4.0, 7.0, 7.0], [4.0, 4.0, 5.0]], [[3.0, 8.0, 6.0], [5.0, 2.0, 8.0], [4.0, 5.0, 6.0]], [[7.0, 3.0, 2.0], [1.0, 7.0, 4.0], [4.0, 6.0, 3.0]]], [[[6.0, 7.0, 2.0], [1.0, 5.0, 2.0], [5.0, 2.0, 4.0]], [[2.0, 6.0, 1.0], [5.0, 5.0, 2.0], [7.0, 5.0, 3.0]], [[3.0, 5.0, 8.0], [4.0, 3.0, 4.0], [7.0, 1.0, 3.0]]], [[[1.0, 1.0, 6.0], [8.0, 5.0, 5.0], [3.0, 2.0, 8.0]], [[4.0, 3.0, 3.0], [6.0, 4.0, 2.0], [1.0, 5.0, 6.0]], [[5.0, 1.0, 4.0], [4.0, 5.0, 8.0], [1.0, 5.0, 4.0]]]]),self.functionspace)
4230          val=Data(numarray.array([[[6.0, 8.0, 3.0], [6.0, 6.0, 4.0]], [[2.0, 8.0, 3.0], [4.0, 7.0, 4.0]]]),self.functionspace)
4231          val.setTaggedValue(1,numarray.array([[[6.0, 6.0, 5.0], [6.0, 7.0, 3.0]], [[1.0, 5.0, 3.0], [3.0, 6.0, 2.0]]]))
4232          arg[1:3,1,:2]=val
4233          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4234          ref=msk_ref*numarray.array([[[[1.0, 4.0, 6.0], [4.0, 2.0, 1.0], [3.0, 3.0, 2.0]], [[7.0, 4.0, 8.0], [8.0, 4.0, 1.0], [1.0, 3.0, 1.0]], [[4.0, 7.0, 5.0], [1.0, 7.0, 8.0], [2.0, 1.0, 5.0]]], [[[5.0, 2.0, 7.0], [4.0, 7.0, 7.0], [4.0, 4.0, 5.0]], [[6.0, 8.0, 3.0], [6.0, 6.0, 4.0], [4.0, 5.0, 6.0]], [[7.0, 3.0, 2.0], [1.0, 7.0, 4.0], [4.0, 6.0, 3.0]]], [[[6.0, 7.0, 2.0], [1.0, 5.0, 2.0], [5.0, 2.0, 4.0]], [[2.0, 8.0, 3.0], [4.0, 7.0, 4.0], [7.0, 5.0, 3.0]], [[3.0, 5.0, 8.0], [4.0, 3.0, 4.0], [7.0, 1.0, 3.0]]], [[[1.0, 1.0, 6.0], [8.0, 5.0, 5.0], [3.0, 2.0, 8.0]], [[4.0, 3.0, 3.0], [6.0, 4.0, 2.0], [1.0, 5.0, 6.0]], [[5.0, 1.0, 4.0], [4.0, 5.0, 8.0], [1.0, 5.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 4.0, 6.0], [4.0, 2.0, 1.0], [3.0, 3.0, 2.0]], [[7.0, 4.0, 8.0], [8.0, 4.0, 1.0], [1.0, 3.0, 1.0]], [[4.0, 7.0, 5.0], [1.0, 7.0, 8.0], [2.0, 1.0, 5.0]]], [[[5.0, 2.0, 7.0], [4.0, 7.0, 7.0], [4.0, 4.0, 5.0]], [[6.0, 6.0, 5.0], [6.0, 7.0, 3.0], [4.0, 5.0, 6.0]], [[7.0, 3.0, 2.0], [1.0, 7.0, 4.0], [4.0, 6.0, 3.0]]], [[[6.0, 7.0, 2.0], [1.0, 5.0, 2.0], [5.0, 2.0, 4.0]], [[1.0, 5.0, 3.0], [3.0, 6.0, 2.0], [7.0, 5.0, 3.0]], [[3.0, 5.0, 8.0], [4.0, 3.0, 4.0], [7.0, 1.0, 3.0]]], [[[1.0, 1.0, 6.0], [8.0, 5.0, 5.0], [3.0, 2.0, 8.0]], [[4.0, 3.0, 3.0], [6.0, 4.0, 2.0], [1.0, 5.0, 6.0]], [[5.0, 1.0, 4.0], [4.0, 5.0, 8.0], [1.0, 5.0, 4.0]]]])
4235          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4236       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4237       def test_setslice_constData_rank4_taggedData_RPPN(self):
4238          arg=Data(numarray.array([[[[4.0, 5.0, 2.0], [2.0, 6.0, 8.0], [4.0, 6.0, 4.0]], [[1.0, 6.0, 5.0], [6.0, 4.0, 5.0], [6.0, 1.0, 8.0]], [[7.0, 2.0, 3.0], [7.0, 4.0, 4.0], [5.0, 7.0, 3.0]]], [[[8.0, 4.0, 6.0], [7.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[4.0, 2.0, 6.0], [5.0, 3.0, 2.0], [6.0, 4.0, 7.0]], [[6.0, 3.0, 5.0], [2.0, 6.0, 4.0], [1.0, 5.0, 2.0]]], [[[1.0, 6.0, 8.0], [6.0, 8.0, 3.0], [1.0, 7.0, 6.0]], [[3.0, 8.0, 5.0], [2.0, 2.0, 6.0], [2.0, 8.0, 3.0]], [[4.0, 7.0, 4.0], [5.0, 4.0, 2.0], [1.0, 3.0, 8.0]]], [[[2.0, 3.0, 7.0], [2.0, 3.0, 7.0], [7.0, 8.0, 3.0]], [[1.0, 2.0, 5.0], [3.0, 3.0, 8.0], [4.0, 4.0, 8.0]], [[5.0, 5.0, 2.0], [2.0, 6.0, 4.0], [1.0, 8.0, 1.0]]]]),self.functionspace)
4239          val=Data(numarray.array([[2.0, 2.0, 8.0], [7.0, 1.0, 2.0]]),self.functionspace)
4240          val.setTaggedValue(1,numarray.array([[4.0, 2.0, 1.0], [8.0, 6.0, 3.0]]))
4241          arg[1:3,1,1]=val
4242          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4243          ref=msk_ref*numarray.array([[[[4.0, 5.0, 2.0], [2.0, 6.0, 8.0], [4.0, 6.0, 4.0]], [[1.0, 6.0, 5.0], [6.0, 4.0, 5.0], [6.0, 1.0, 8.0]], [[7.0, 2.0, 3.0], [7.0, 4.0, 4.0], [5.0, 7.0, 3.0]]], [[[8.0, 4.0, 6.0], [7.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[4.0, 2.0, 6.0], [2.0, 2.0, 8.0], [6.0, 4.0, 7.0]], [[6.0, 3.0, 5.0], [2.0, 6.0, 4.0], [1.0, 5.0, 2.0]]], [[[1.0, 6.0, 8.0], [6.0, 8.0, 3.0], [1.0, 7.0, 6.0]], [[3.0, 8.0, 5.0], [7.0, 1.0, 2.0], [2.0, 8.0, 3.0]], [[4.0, 7.0, 4.0], [5.0, 4.0, 2.0], [1.0, 3.0, 8.0]]], [[[2.0, 3.0, 7.0], [2.0, 3.0, 7.0], [7.0, 8.0, 3.0]], [[1.0, 2.0, 5.0], [3.0, 3.0, 8.0], [4.0, 4.0, 8.0]], [[5.0, 5.0, 2.0], [2.0, 6.0, 4.0], [1.0, 8.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 5.0, 2.0], [2.0, 6.0, 8.0], [4.0, 6.0, 4.0]], [[1.0, 6.0, 5.0], [6.0, 4.0, 5.0], [6.0, 1.0, 8.0]], [[7.0, 2.0, 3.0], [7.0, 4.0, 4.0], [5.0, 7.0, 3.0]]], [[[8.0, 4.0, 6.0], [7.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[4.0, 2.0, 6.0], [4.0, 2.0, 1.0], [6.0, 4.0, 7.0]], [[6.0, 3.0, 5.0], [2.0, 6.0, 4.0], [1.0, 5.0, 2.0]]], [[[1.0, 6.0, 8.0], [6.0, 8.0, 3.0], [1.0, 7.0, 6.0]], [[3.0, 8.0, 5.0], [8.0, 6.0, 3.0], [2.0, 8.0, 3.0]], [[4.0, 7.0, 4.0], [5.0, 4.0, 2.0], [1.0, 3.0, 8.0]]], [[[2.0, 3.0, 7.0], [2.0, 3.0, 7.0], [7.0, 8.0, 3.0]], [[1.0, 2.0, 5.0], [3.0, 3.0, 8.0], [4.0, 4.0, 8.0]], [[5.0, 5.0, 2.0], [2.0, 6.0, 4.0], [1.0, 8.0, 1.0]]]])
4244          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4245       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4246       def test_setslice_constData_rank4_taggedData_PPPC(self):
4247          arg=Data(numarray.array([[[[1.0, 3.0, 4.0], [4.0, 4.0, 6.0], [7.0, 3.0, 3.0]], [[2.0, 2.0, 1.0], [2.0, 7.0, 3.0], [8.0, 2.0, 4.0]], [[3.0, 8.0, 5.0], [5.0, 5.0, 3.0], [3.0, 3.0, 1.0]]], [[[6.0, 4.0, 7.0], [1.0, 4.0, 1.0], [8.0, 6.0, 3.0]], [[3.0, 1.0, 5.0], [5.0, 2.0, 6.0], [2.0, 2.0, 1.0]], [[6.0, 2.0, 4.0], [4.0, 4.0, 7.0], [1.0, 3.0, 8.0]]], [[[8.0, 3.0, 2.0], [7.0, 6.0, 1.0], [6.0, 5.0, 1.0]], [[5.0, 3.0, 3.0], [4.0, 7.0, 3.0], [5.0, 4.0, 1.0]], [[3.0, 4.0, 6.0], [6.0, 2.0, 2.0], [7.0, 5.0, 8.0]]], [[[5.0, 1.0, 7.0], [4.0, 6.0, 8.0], [1.0, 2.0, 2.0]], [[4.0, 8.0, 2.0], [2.0, 5.0, 5.0], [1.0, 3.0, 8.0]], [[4.0, 6.0, 2.0], [2.0, 6.0, 2.0], [6.0, 2.0, 3.0]]]]),self.functionspace)
4248          val=Data(numarray.array([2.0, 8.0, 6.0]),self.functionspace)
4249          val.setTaggedValue(1,numarray.array([6.0, 1.0, 6.0]))
4250          arg[2,1,1,:]=val
4251          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4252          ref=msk_ref*numarray.array([[[[1.0, 3.0, 4.0], [4.0, 4.0, 6.0], [7.0, 3.0, 3.0]], [[2.0, 2.0, 1.0], [2.0, 7.0, 3.0], [8.0, 2.0, 4.0]], [[3.0, 8.0, 5.0], [5.0, 5.0, 3.0], [3.0, 3.0, 1.0]]], [[[6.0, 4.0, 7.0], [1.0, 4.0, 1.0], [8.0, 6.0, 3.0]], [[3.0, 1.0, 5.0], [5.0, 2.0, 6.0], [2.0, 2.0, 1.0]], [[6.0, 2.0, 4.0], [4.0, 4.0, 7.0], [1.0, 3.0, 8.0]]], [[[8.0, 3.0, 2.0], [7.0, 6.0, 1.0], [6.0, 5.0, 1.0]], [[5.0, 3.0, 3.0], [2.0, 8.0, 6.0], [5.0, 4.0, 1.0]], [[3.0, 4.0, 6.0], [6.0, 2.0, 2.0], [7.0, 5.0, 8.0]]], [[[5.0, 1.0, 7.0], [4.0, 6.0, 8.0], [1.0, 2.0, 2.0]], [[4.0, 8.0, 2.0], [2.0, 5.0, 5.0], [1.0, 3.0, 8.0]], [[4.0, 6.0, 2.0], [2.0, 6.0, 2.0], [6.0, 2.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 3.0, 4.0], [4.0, 4.0, 6.0], [7.0, 3.0, 3.0]], [[2.0, 2.0, 1.0], [2.0, 7.0, 3.0], [8.0, 2.0, 4.0]], [[3.0, 8.0, 5.0], [5.0, 5.0, 3.0], [3.0, 3.0, 1.0]]], [[[6.0, 4.0, 7.0], [1.0, 4.0, 1.0], [8.0, 6.0, 3.0]], [[3.0, 1.0, 5.0], [5.0, 2.0, 6.0], [2.0, 2.0, 1.0]], [[6.0, 2.0, 4.0], [4.0, 4.0, 7.0], [1.0, 3.0, 8.0]]], [[[8.0, 3.0, 2.0], [7.0, 6.0, 1.0], [6.0, 5.0, 1.0]], [[5.0, 3.0, 3.0], [6.0, 1.0, 6.0], [5.0, 4.0, 1.0]], [[3.0, 4.0, 6.0], [6.0, 2.0, 2.0], [7.0, 5.0, 8.0]]], [[[5.0, 1.0, 7.0], [4.0, 6.0, 8.0], [1.0, 2.0, 2.0]], [[4.0, 8.0, 2.0], [2.0, 5.0, 5.0], [1.0, 3.0, 8.0]], [[4.0, 6.0, 2.0], [2.0, 6.0, 2.0], [6.0, 2.0, 3.0]]]])
4253          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4254       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4255       def test_setslice_constData_rank4_taggedData_PLPR(self):
4256          arg=Data(numarray.array([[[[6.0, 5.0, 4.0], [3.0, 7.0, 2.0], [3.0, 8.0, 5.0]], [[8.0, 1.0, 2.0], [5.0, 4.0, 6.0], [5.0, 4.0, 3.0]], [[8.0, 3.0, 2.0], [3.0, 4.0, 3.0], [1.0, 4.0, 3.0]]], [[[5.0, 5.0, 2.0], [3.0, 2.0, 2.0], [8.0, 2.0, 1.0]], [[1.0, 1.0, 4.0], [3.0, 2.0, 4.0], [5.0, 2.0, 1.0]], [[2.0, 7.0, 4.0], [3.0, 2.0, 6.0], [3.0, 5.0, 5.0]]], [[[6.0, 3.0, 1.0], [5.0, 7.0, 5.0], [7.0, 1.0, 6.0]], [[5.0, 4.0, 5.0], [1.0, 6.0, 7.0], [6.0, 2.0, 7.0]], [[8.0, 2.0, 3.0], [3.0, 4.0, 2.0], [1.0, 6.0, 1.0]]], [[[3.0, 3.0, 7.0], [1.0, 3.0, 2.0], [8.0, 4.0, 6.0]], [[1.0, 3.0, 2.0], [6.0, 2.0, 8.0], [8.0, 6.0, 2.0]], [[7.0, 1.0, 3.0], [4.0, 3.0, 6.0], [2.0, 1.0, 7.0]]]]),self.functionspace)
4257          val=Data(numarray.array([[8.0]]),self.functionspace)
4258          val.setTaggedValue(1,numarray.array([[8.0]]))
4259          arg[2,2:,1,1:2]=val
4260          ref=Data(numarray.array([[[[6.0, 5.0, 4.0], [3.0, 7.0, 2.0], [3.0, 8.0, 5.0]], [[8.0, 1.0, 2.0], [5.0, 4.0, 6.0], [5.0, 4.0, 3.0]], [[8.0, 3.0, 2.0], [3.0, 4.0, 3.0], [1.0, 4.0, 3.0]]], [[[5.0, 5.0, 2.0], [3.0, 2.0, 2.0], [8.0, 2.0, 1.0]], [[1.0, 1.0, 4.0], [3.0, 2.0, 4.0], [5.0, 2.0, 1.0]], [[2.0, 7.0, 4.0], [3.0, 2.0, 6.0], [3.0, 5.0, 5.0]]], [[[6.0, 3.0, 1.0], [5.0, 7.0, 5.0], [7.0, 1.0, 6.0]], [[5.0, 4.0, 5.0], [1.0, 6.0, 7.0], [6.0, 2.0, 7.0]], [[8.0, 2.0, 3.0], [3.0, 8.0, 2.0], [1.0, 6.0, 1.0]]], [[[3.0, 3.0, 7.0], [1.0, 3.0, 2.0], [8.0, 4.0, 6.0]], [[1.0, 3.0, 2.0], [6.0, 2.0, 8.0], [8.0, 6.0, 2.0]], [[7.0, 1.0, 3.0], [4.0, 3.0, 6.0], [2.0, 1.0, 7.0]]]]),self.functionspace)
4261          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4262       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4263       def test_setslice_constData_rank4_taggedData_UUUN(self):
4264          arg=Data(numarray.array([[[[1.0, 5.0, 2.0], [5.0, 8.0, 8.0], [5.0, 7.0, 7.0]], [[7.0, 1.0, 6.0], [5.0, 6.0, 2.0], [5.0, 7.0, 4.0]], [[7.0, 4.0, 6.0], [8.0, 5.0, 5.0], [7.0, 8.0, 5.0]]], [[[3.0, 4.0, 6.0], [1.0, 5.0, 3.0], [2.0, 2.0, 1.0]], [[4.0, 7.0, 3.0], [5.0, 4.0, 4.0], [4.0, 3.0, 1.0]], [[2.0, 7.0, 7.0], [1.0, 5.0, 3.0], [5.0, 7.0, 7.0]]], [[[5.0, 2.0, 5.0], [6.0, 4.0, 7.0], [1.0, 4.0, 4.0]], [[4.0, 7.0, 7.0], [3.0, 3.0, 5.0], [3.0, 3.0, 2.0]], [[7.0, 4.0, 5.0], [7.0, 5.0, 8.0], [1.0, 3.0, 2.0]]], [[[6.0, 2.0, 4.0], [1.0, 5.0, 7.0], [1.0, 8.0, 4.0]], [[5.0, 6.0, 8.0], [1.0, 1.0, 2.0], [2.0, 3.0, 3.0]], [[7.0, 1.0, 8.0], [1.0, 2.0, 2.0], [1.0, 3.0, 8.0]]]]),self.functionspace)
4265          val=Data(numarray.array([[[[5.0, 4.0, 6.0], [2.0, 3.0, 3.0]], [[6.0, 6.0, 4.0], [8.0, 8.0, 3.0]]], [[[2.0, 4.0, 1.0], [3.0, 2.0, 6.0]], [[3.0, 1.0, 6.0], [2.0, 6.0, 4.0]]], [[[3.0, 3.0, 4.0], [2.0, 1.0, 6.0]], [[1.0, 6.0, 7.0], [6.0, 5.0, 1.0]]]]),self.functionspace)
4266          val.setTaggedValue(1,numarray.array([[[[6.0, 3.0, 4.0], [1.0, 3.0, 3.0]], [[5.0, 5.0, 4.0], [2.0, 8.0, 4.0]]], [[[6.0, 8.0, 2.0], [4.0, 1.0, 1.0]], [[7.0, 5.0, 5.0], [1.0, 1.0, 4.0]]], [[[1.0, 7.0, 3.0], [7.0, 8.0, 7.0]], [[2.0, 1.0, 1.0], [2.0, 3.0, 1.0]]]]))
4267          arg[:3,:2,:2]=val
4268          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4269          ref=msk_ref*numarray.array([[[[5.0, 4.0, 6.0], [2.0, 3.0, 3.0], [5.0, 7.0, 7.0]], [[6.0, 6.0, 4.0], [8.0, 8.0, 3.0], [5.0, 7.0, 4.0]], [[7.0, 4.0, 6.0], [8.0, 5.0, 5.0], [7.0, 8.0, 5.0]]], [[[2.0, 4.0, 1.0], [3.0, 2.0, 6.0], [2.0, 2.0, 1.0]], [[3.0, 1.0, 6.0], [2.0, 6.0, 4.0], [4.0, 3.0, 1.0]], [[2.0, 7.0, 7.0], [1.0, 5.0, 3.0], [5.0, 7.0, 7.0]]], [[[3.0, 3.0, 4.0], [2.0, 1.0, 6.0], [1.0, 4.0, 4.0]], [[1.0, 6.0, 7.0], [6.0, 5.0, 1.0], [3.0, 3.0, 2.0]], [[7.0, 4.0, 5.0], [7.0, 5.0, 8.0], [1.0, 3.0, 2.0]]], [[[6.0, 2.0, 4.0], [1.0, 5.0, 7.0], [1.0, 8.0, 4.0]], [[5.0, 6.0, 8.0], [1.0, 1.0, 2.0], [2.0, 3.0, 3.0]], [[7.0, 1.0, 8.0], [1.0, 2.0, 2.0], [1.0, 3.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 3.0, 4.0], [1.0, 3.0, 3.0], [5.0, 7.0, 7.0]], [[5.0, 5.0, 4.0], [2.0, 8.0, 4.0], [5.0, 7.0, 4.0]], [[7.0, 4.0, 6.0], [8.0, 5.0, 5.0], [7.0, 8.0, 5.0]]], [[[6.0, 8.0, 2.0], [4.0, 1.0, 1.0], [2.0, 2.0, 1.0]], [[7.0, 5.0, 5.0], [1.0, 1.0, 4.0], [4.0, 3.0, 1.0]], [[2.0, 7.0, 7.0], [1.0, 5.0, 3.0], [5.0, 7.0, 7.0]]], [[[1.0, 7.0, 3.0], [7.0, 8.0, 7.0], [1.0, 4.0, 4.0]], [[2.0, 1.0, 1.0], [2.0, 3.0, 1.0], [3.0, 3.0, 2.0]], [[7.0, 4.0, 5.0], [7.0, 5.0, 8.0], [1.0, 3.0, 2.0]]], [[[6.0, 2.0, 4.0], [1.0, 5.0, 7.0], [1.0, 8.0, 4.0]], [[5.0, 6.0, 8.0], [1.0, 1.0, 2.0], [2.0, 3.0, 3.0]], [[7.0, 1.0, 8.0], [1.0, 2.0, 2.0], [1.0, 3.0, 8.0]]]])
4270          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4271       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4272       def test_setslice_constData_rank4_taggedData_UURN(self):
4273          arg=Data(numarray.array([[[[5.0, 1.0, 5.0], [8.0, 6.0, 3.0], [8.0, 8.0, 5.0]], [[3.0, 8.0, 5.0], [4.0, 3.0, 5.0], [6.0, 8.0, 5.0]], [[3.0, 8.0, 5.0], [2.0, 4.0, 5.0], [7.0, 6.0, 5.0]]], [[[6.0, 4.0, 5.0], [5.0, 5.0, 1.0], [5.0, 7.0, 3.0]], [[1.0, 6.0, 4.0], [1.0, 1.0, 4.0], [8.0, 4.0, 1.0]], [[5.0, 1.0, 4.0], [8.0, 6.0, 8.0], [6.0, 4.0, 4.0]]], [[[8.0, 5.0, 5.0], [5.0, 4.0, 4.0], [6.0, 4.0, 2.0]], [[2.0, 1.0, 8.0], [1.0, 7.0, 2.0], [3.0, 5.0, 7.0]], [[3.0, 1.0, 8.0], [8.0, 5.0, 8.0], [4.0, 6.0, 3.0]]], [[[3.0, 5.0, 8.0], [7.0, 1.0, 4.0], [1.0, 2.0, 3.0]], [[4.0, 2.0, 4.0], [5.0, 4.0, 4.0], [6.0, 5.0, 1.0]], [[2.0, 1.0, 1.0], [5.0, 3.0, 4.0], [4.0, 6.0, 3.0]]]]),self.functionspace)
4274          val=Data(numarray.array([[[[8.0, 6.0, 7.0]], [[6.0, 6.0, 3.0]]], [[[2.0, 1.0, 2.0]], [[2.0, 4.0, 3.0]]], [[[2.0, 8.0, 2.0]], [[1.0, 2.0, 6.0]]]]),self.functionspace)
4275          val.setTaggedValue(1,numarray.array([[[[8.0, 2.0, 2.0]], [[5.0, 8.0, 3.0]]], [[[3.0, 4.0, 4.0]], [[6.0, 8.0, 5.0]]], [[[7.0, 6.0, 1.0]], [[8.0, 1.0, 3.0]]]]))
4276          arg[:3,:2,1:2]=val
4277          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4278          ref=msk_ref*numarray.array([[[[5.0, 1.0, 5.0], [8.0, 6.0, 7.0], [8.0, 8.0, 5.0]], [[3.0, 8.0, 5.0], [6.0, 6.0, 3.0], [6.0, 8.0, 5.0]], [[3.0, 8.0, 5.0], [2.0, 4.0, 5.0], [7.0, 6.0, 5.0]]], [[[6.0, 4.0, 5.0], [2.0, 1.0, 2.0], [5.0, 7.0, 3.0]], [[1.0, 6.0, 4.0], [2.0, 4.0, 3.0], [8.0, 4.0, 1.0]], [[5.0, 1.0, 4.0], [8.0, 6.0, 8.0], [6.0, 4.0, 4.0]]], [[[8.0, 5.0, 5.0], [2.0, 8.0, 2.0], [6.0, 4.0, 2.0]], [[2.0, 1.0, 8.0], [1.0, 2.0, 6.0], [3.0, 5.0, 7.0]], [[3.0, 1.0, 8.0], [8.0, 5.0, 8.0], [4.0, 6.0, 3.0]]], [[[3.0, 5.0, 8.0], [7.0, 1.0, 4.0], [1.0, 2.0, 3.0]], [[4.0, 2.0, 4.0], [5.0, 4.0, 4.0], [6.0, 5.0, 1.0]], [[2.0, 1.0, 1.0], [5.0, 3.0, 4.0], [4.0, 6.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 1.0, 5.0], [8.0, 2.0, 2.0], [8.0, 8.0, 5.0]], [[3.0, 8.0, 5.0], [5.0, 8.0, 3.0], [6.0, 8.0, 5.0]], [[3.0, 8.0, 5.0], [2.0, 4.0, 5.0], [7.0, 6.0, 5.0]]], [[[6.0, 4.0, 5.0], [3.0, 4.0, 4.0], [5.0, 7.0, 3.0]], [[1.0, 6.0, 4.0], [6.0, 8.0, 5.0], [8.0, 4.0, 1.0]], [[5.0, 1.0, 4.0], [8.0, 6.0, 8.0], [6.0, 4.0, 4.0]]], [[[8.0, 5.0, 5.0], [7.0, 6.0, 1.0], [6.0, 4.0, 2.0]], [[2.0, 1.0, 8.0], [8.0, 1.0, 3.0], [3.0, 5.0, 7.0]], [[3.0, 1.0, 8.0], [8.0, 5.0, 8.0], [4.0, 6.0, 3.0]]], [[[3.0, 5.0, 8.0], [7.0, 1.0, 4.0], [1.0, 2.0, 3.0]], [[4.0, 2.0, 4.0], [5.0, 4.0, 4.0], [6.0, 5.0, 1.0]], [[2.0, 1.0, 1.0], [5.0, 3.0, 4.0], [4.0, 6.0, 3.0]]]])
4279          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4280       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4281       def test_setslice_constData_rank4_taggedData_LCRC(self):
4282          arg=Data(numarray.array([[[[2.0, 8.0, 8.0], [1.0, 6.0, 2.0], [1.0, 6.0, 1.0]], [[5.0, 4.0, 3.0], [2.0, 5.0, 2.0], [4.0, 4.0, 3.0]], [[4.0, 6.0, 2.0], [4.0, 1.0, 3.0], [8.0, 6.0, 2.0]]], [[[1.0, 5.0, 8.0], [4.0, 5.0, 5.0], [1.0, 6.0, 1.0]], [[3.0, 1.0, 8.0], [7.0, 6.0, 6.0], [1.0, 1.0, 6.0]], [[5.0, 8.0, 8.0], [1.0, 7.0, 1.0], [1.0, 8.0, 6.0]]], [[[1.0, 7.0, 2.0], [2.0, 2.0, 2.0], [4.0, 2.0, 1.0]], [[6.0, 2.0, 5.0], [1.0, 5.0, 4.0], [5.0, 2.0, 2.0]], [[3.0, 4.0, 7.0], [6.0, 5.0, 3.0], [3.0, 7.0, 2.0]]], [[[8.0, 4.0, 3.0], [3.0, 3.0, 8.0], [4.0, 2.0, 4.0]], [[6.0, 4.0, 8.0], [5.0, 3.0, 6.0], [5.0, 4.0, 1.0]], [[7.0, 6.0, 2.0], [4.0, 8.0, 1.0], [3.0, 4.0, 3.0]]]]),self.functionspace)
4283          val=Data(numarray.array([[[[3.0, 6.0, 1.0]], [[6.0, 2.0, 7.0]], [[1.0, 5.0, 8.0]]], [[[4.0, 4.0, 5.0]], [[3.0, 3.0, 4.0]], [[8.0, 5.0, 8.0]]]]),self.functionspace)
4284          val.setTaggedValue(1,numarray.array([[[[6.0, 6.0, 1.0]], [[5.0, 3.0, 6.0]], [[8.0, 1.0, 5.0]]], [[[8.0, 3.0, 1.0]], [[5.0, 7.0, 3.0]], [[1.0, 1.0, 6.0]]]]))
4285          arg[2:,:,1:2,:]=val
4286          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4287          ref=msk_ref*numarray.array([[[[2.0, 8.0, 8.0], [1.0, 6.0, 2.0], [1.0, 6.0, 1.0]], [[5.0, 4.0, 3.0], [2.0, 5.0, 2.0], [4.0, 4.0, 3.0]], [[4.0, 6.0, 2.0], [4.0, 1.0, 3.0], [8.0, 6.0, 2.0]]], [[[1.0, 5.0, 8.0], [4.0, 5.0, 5.0], [1.0, 6.0, 1.0]], [[3.0, 1.0, 8.0], [7.0, 6.0, 6.0], [1.0, 1.0, 6.0]], [[5.0, 8.0, 8.0], [1.0, 7.0, 1.0], [1.0, 8.0, 6.0]]], [[[1.0, 7.0, 2.0], [3.0, 6.0, 1.0], [4.0, 2.0, 1.0]], [[6.0, 2.0, 5.0], [6.0, 2.0, 7.0], [5.0, 2.0, 2.0]], [[3.0, 4.0, 7.0], [1.0, 5.0, 8.0], [3.0, 7.0, 2.0]]], [[[8.0, 4.0, 3.0], [4.0, 4.0, 5.0], [4.0, 2.0, 4.0]], [[6.0, 4.0, 8.0], [3.0, 3.0, 4.0], [5.0, 4.0, 1.0]], [[7.0, 6.0, 2.0], [8.0, 5.0, 8.0], [3.0, 4.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 8.0, 8.0], [1.0, 6.0, 2.0], [1.0, 6.0, 1.0]], [[5.0, 4.0, 3.0], [2.0, 5.0, 2.0], [4.0, 4.0, 3.0]], [[4.0, 6.0, 2.0], [4.0, 1.0, 3.0], [8.0, 6.0, 2.0]]], [[[1.0, 5.0, 8.0], [4.0, 5.0, 5.0], [1.0, 6.0, 1.0]], [[3.0, 1.0, 8.0], [7.0, 6.0, 6.0], [1.0, 1.0, 6.0]], [[5.0, 8.0, 8.0], [1.0, 7.0, 1.0], [1.0, 8.0, 6.0]]], [[[1.0, 7.0, 2.0], [6.0, 6.0, 1.0], [4.0, 2.0, 1.0]], [[6.0, 2.0, 5.0], [5.0, 3.0, 6.0], [5.0, 2.0, 2.0]], [[3.0, 4.0, 7.0], [8.0, 1.0, 5.0], [3.0, 7.0, 2.0]]], [[[8.0, 4.0, 3.0], [8.0, 3.0, 1.0], [4.0, 2.0, 4.0]], [[6.0, 4.0, 8.0], [5.0, 7.0, 3.0], [5.0, 4.0, 1.0]], [[7.0, 6.0, 2.0], [1.0, 1.0, 6.0], [3.0, 4.0, 3.0]]]])
4288          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4289       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4290       def test_setslice_constData_rank4_taggedData_ULPN(self):
4291          arg=Data(numarray.array([[[[7.0, 6.0, 7.0], [5.0, 7.0, 5.0], [2.0, 2.0, 3.0]], [[4.0, 6.0, 8.0], [6.0, 3.0, 8.0], [8.0, 4.0, 1.0]], [[1.0, 7.0, 8.0], [6.0, 5.0, 1.0], [1.0, 3.0, 2.0]]], [[[5.0, 7.0, 7.0], [7.0, 3.0, 2.0], [1.0, 7.0, 1.0]], [[2.0, 1.0, 5.0], [7.0, 1.0, 2.0], [5.0, 2.0, 1.0]], [[8.0, 5.0, 2.0], [2.0, 6.0, 5.0], [1.0, 3.0, 7.0]]], [[[6.0, 8.0, 3.0], [1.0, 5.0, 5.0], [5.0, 8.0, 1.0]], [[1.0, 7.0, 1.0], [8.0, 5.0, 3.0], [6.0, 7.0, 5.0]], [[7.0, 6.0, 6.0], [6.0, 6.0, 8.0], [8.0, 2.0, 2.0]]], [[[5.0, 1.0, 5.0], [3.0, 7.0, 6.0], [1.0, 7.0, 6.0]], [[7.0, 5.0, 5.0], [1.0, 6.0, 6.0], [4.0, 1.0, 5.0]], [[6.0, 3.0, 3.0], [6.0, 2.0, 1.0], [7.0, 2.0, 7.0]]]]),self.functionspace)
4292          val=Data(numarray.array([[[7.0, 8.0, 7.0]], [[4.0, 1.0, 2.0]], [[7.0, 2.0, 3.0]]]),self.functionspace)
4293          val.setTaggedValue(1,numarray.array([[[3.0, 4.0, 3.0]], [[8.0, 1.0, 4.0]], [[8.0, 8.0, 8.0]]]))
4294          arg[:3,2:,1]=val
4295          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4296          ref=msk_ref*numarray.array([[[[7.0, 6.0, 7.0], [5.0, 7.0, 5.0], [2.0, 2.0, 3.0]], [[4.0, 6.0, 8.0], [6.0, 3.0, 8.0], [8.0, 4.0, 1.0]], [[1.0, 7.0, 8.0], [7.0, 8.0, 7.0], [1.0, 3.0, 2.0]]], [[[5.0, 7.0, 7.0], [7.0, 3.0, 2.0], [1.0, 7.0, 1.0]], [[2.0, 1.0, 5.0], [7.0, 1.0, 2.0], [5.0, 2.0, 1.0]], [[8.0, 5.0, 2.0], [4.0, 1.0, 2.0], [1.0, 3.0, 7.0]]], [[[6.0, 8.0, 3.0], [1.0, 5.0, 5.0], [5.0, 8.0, 1.0]], [[1.0, 7.0, 1.0], [8.0, 5.0, 3.0], [6.0, 7.0, 5.0]], [[7.0, 6.0, 6.0], [7.0, 2.0, 3.0], [8.0, 2.0, 2.0]]], [[[5.0, 1.0, 5.0], [3.0, 7.0, 6.0], [1.0, 7.0, 6.0]], [[7.0, 5.0, 5.0], [1.0, 6.0, 6.0], [4.0, 1.0, 5.0]], [[6.0, 3.0, 3.0], [6.0, 2.0, 1.0], [7.0, 2.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 6.0, 7.0], [5.0, 7.0, 5.0], [2.0, 2.0, 3.0]], [[4.0, 6.0, 8.0], [6.0, 3.0, 8.0], [8.0, 4.0, 1.0]], [[1.0, 7.0, 8.0], [3.0, 4.0, 3.0], [1.0, 3.0, 2.0]]], [[[5.0, 7.0, 7.0], [7.0, 3.0, 2.0], [1.0, 7.0, 1.0]], [[2.0, 1.0, 5.0], [7.0, 1.0, 2.0], [5.0, 2.0, 1.0]], [[8.0, 5.0, 2.0], [8.0, 1.0, 4.0], [1.0, 3.0, 7.0]]], [[[6.0, 8.0, 3.0], [1.0, 5.0, 5.0], [5.0, 8.0, 1.0]], [[1.0, 7.0, 1.0], [8.0, 5.0, 3.0], [6.0, 7.0, 5.0]], [[7.0, 6.0, 6.0], [8.0, 8.0, 8.0], [8.0, 2.0, 2.0]]], [[[5.0, 1.0, 5.0], [3.0, 7.0, 6.0], [1.0, 7.0, 6.0]], [[7.0, 5.0, 5.0], [1.0, 6.0, 6.0], [4.0, 1.0, 5.0]], [[6.0, 3.0, 3.0], [6.0, 2.0, 1.0], [7.0, 2.0, 7.0]]]])
4297          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4298       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4299       def test_setslice_constData_rank4_taggedData_ULCU(self):
4300          arg=Data(numarray.array([[[[5.0, 6.0, 8.0], [8.0, 5.0, 4.0], [2.0, 1.0, 8.0]], [[1.0, 6.0, 6.0], [8.0, 4.0, 2.0], [5.0, 3.0, 7.0]], [[7.0, 4.0, 6.0], [2.0, 8.0, 5.0], [4.0, 5.0, 3.0]]], [[[4.0, 7.0, 8.0], [4.0, 1.0, 4.0], [8.0, 8.0, 6.0]], [[4.0, 3.0, 3.0], [6.0, 8.0, 3.0], [8.0, 4.0, 7.0]], [[2.0, 5.0, 8.0], [5.0, 5.0, 6.0], [1.0, 6.0, 2.0]]], [[[8.0, 3.0, 3.0], [3.0, 5.0, 5.0], [3.0, 2.0, 2.0]], [[1.0, 7.0, 8.0], [8.0, 1.0, 7.0], [8.0, 6.0, 6.0]], [[7.0, 3.0, 2.0], [3.0, 3.0, 3.0], [7.0, 6.0, 1.0]]], [[[1.0, 6.0, 8.0], [7.0, 3.0, 7.0], [2.0, 5.0, 4.0]], [[4.0, 2.0, 5.0], [4.0, 4.0, 3.0], [1.0, 5.0, 6.0]], [[3.0, 3.0, 5.0], [7.0, 4.0, 3.0], [6.0, 6.0, 2.0]]]]),self.functionspace)
4301          val=Data(numarray.array([[[[5.0, 1.0], [4.0, 4.0], [6.0, 5.0]]], [[[6.0, 1.0], [3.0, 6.0], [8.0, 5.0]]], [[[7.0, 4.0], [1.0, 2.0], [5.0, 5.0]]]]),self.functionspace)
4302          val.setTaggedValue(1,numarray.array([[[[5.0, 2.0], [1.0, 8.0], [6.0, 2.0]]], [[[6.0, 6.0], [4.0, 3.0], [7.0, 6.0]]], [[[3.0, 5.0], [2.0, 2.0], [7.0, 1.0]]]]))
4303          arg[:3,2:,:,:2]=val
4304          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4305          ref=msk_ref*numarray.array([[[[5.0, 6.0, 8.0], [8.0, 5.0, 4.0], [2.0, 1.0, 8.0]], [[1.0, 6.0, 6.0], [8.0, 4.0, 2.0], [5.0, 3.0, 7.0]], [[5.0, 1.0, 6.0], [4.0, 4.0, 5.0], [6.0, 5.0, 3.0]]], [[[4.0, 7.0, 8.0], [4.0, 1.0, 4.0], [8.0, 8.0, 6.0]], [[4.0, 3.0, 3.0], [6.0, 8.0, 3.0], [8.0, 4.0, 7.0]], [[6.0, 1.0, 8.0], [3.0, 6.0, 6.0], [8.0, 5.0, 2.0]]], [[[8.0, 3.0, 3.0], [3.0, 5.0, 5.0], [3.0, 2.0, 2.0]], [[1.0, 7.0, 8.0], [8.0, 1.0, 7.0], [8.0, 6.0, 6.0]], [[7.0, 4.0, 2.0], [1.0, 2.0, 3.0], [5.0, 5.0, 1.0]]], [[[1.0, 6.0, 8.0], [7.0, 3.0, 7.0], [2.0, 5.0, 4.0]], [[4.0, 2.0, 5.0], [4.0, 4.0, 3.0], [1.0, 5.0, 6.0]], [[3.0, 3.0, 5.0], [7.0, 4.0, 3.0], [6.0, 6.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 6.0, 8.0], [8.0, 5.0, 4.0], [2.0, 1.0, 8.0]], [[1.0, 6.0, 6.0], [8.0, 4.0, 2.0], [5.0, 3.0, 7.0]], [[5.0, 2.0, 6.0], [1.0, 8.0, 5.0], [6.0, 2.0, 3.0]]], [[[4.0, 7.0, 8.0], [4.0, 1.0, 4.0], [8.0, 8.0, 6.0]], [[4.0, 3.0, 3.0], [6.0, 8.0, 3.0], [8.0, 4.0, 7.0]], [[6.0, 6.0, 8.0], [4.0, 3.0, 6.0], [7.0, 6.0, 2.0]]], [[[8.0, 3.0, 3.0], [3.0, 5.0, 5.0], [3.0, 2.0, 2.0]], [[1.0, 7.0, 8.0], [8.0, 1.0, 7.0], [8.0, 6.0, 6.0]], [[3.0, 5.0, 2.0], [2.0, 2.0, 3.0], [7.0, 1.0, 1.0]]], [[[1.0, 6.0, 8.0], [7.0, 3.0, 7.0], [2.0, 5.0, 4.0]], [[4.0, 2.0, 5.0], [4.0, 4.0, 3.0], [1.0, 5.0, 6.0]], [[3.0, 3.0, 5.0], [7.0, 4.0, 3.0], [6.0, 6.0, 2.0]]]])
4306          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4307       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4308       def test_setslice_constData_rank4_taggedData_CCLC(self):
4309          arg=Data(numarray.array([[[[5.0, 8.0, 4.0], [7.0, 5.0, 3.0], [2.0, 7.0, 4.0]], [[2.0, 5.0, 2.0], [4.0, 8.0, 8.0], [2.0, 5.0, 8.0]], [[5.0, 5.0, 4.0], [6.0, 8.0, 2.0], [6.0, 5.0, 7.0]]], [[[1.0, 3.0, 4.0], [7.0, 1.0, 8.0], [3.0, 4.0, 5.0]], [[2.0, 7.0, 2.0], [5.0, 4.0, 2.0], [2.0, 2.0, 6.0]], [[8.0, 1.0, 1.0], [1.0, 8.0, 8.0], [1.0, 6.0, 6.0]]], [[[6.0, 2.0, 7.0], [8.0, 4.0, 5.0], [7.0, 6.0, 1.0]], [[6.0, 5.0, 8.0], [4.0, 5.0, 7.0], [6.0, 4.0, 2.0]], [[5.0, 2.0, 6.0], [7.0, 6.0, 5.0], [5.0, 7.0, 1.0]]], [[[5.0, 2.0, 7.0], [4.0, 3.0, 6.0], [1.0, 3.0, 5.0]], [[5.0, 7.0, 3.0], [7.0, 1.0, 4.0], [8.0, 5.0, 8.0]], [[5.0, 7.0, 2.0], [7.0, 2.0, 3.0], [4.0, 4.0, 2.0]]]]),self.functionspace)
4310          val=Data(numarray.array([[[[4.0, 3.0, 6.0]], [[2.0, 2.0, 4.0]], [[2.0, 6.0, 5.0]]], [[[7.0, 4.0, 8.0]], [[6.0, 2.0, 1.0]], [[2.0, 1.0, 5.0]]], [[[5.0, 7.0, 7.0]], [[7.0, 1.0, 7.0]], [[4.0, 2.0, 8.0]]], [[[3.0, 4.0, 8.0]], [[1.0, 6.0, 8.0]], [[1.0, 6.0, 1.0]]]]),self.functionspace)
4311          val.setTaggedValue(1,numarray.array([[[[8.0, 7.0, 4.0]], [[3.0, 2.0, 2.0]], [[3.0, 3.0, 2.0]]], [[[4.0, 6.0, 7.0]], [[6.0, 4.0, 7.0]], [[8.0, 6.0, 3.0]]], [[[7.0, 8.0, 3.0]], [[2.0, 7.0, 2.0]], [[1.0, 4.0, 8.0]]], [[[7.0, 5.0, 6.0]], [[3.0, 8.0, 7.0]], [[4.0, 1.0, 8.0]]]]))
4312          arg[:,:,2:,:]=val
4313          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4314          ref=msk_ref*numarray.array([[[[5.0, 8.0, 4.0], [7.0, 5.0, 3.0], [4.0, 3.0, 6.0]], [[2.0, 5.0, 2.0], [4.0, 8.0, 8.0], [2.0, 2.0, 4.0]], [[5.0, 5.0, 4.0], [6.0, 8.0, 2.0], [2.0, 6.0, 5.0]]], [[[1.0, 3.0, 4.0], [7.0, 1.0, 8.0], [7.0, 4.0, 8.0]], [[2.0, 7.0, 2.0], [5.0, 4.0, 2.0], [6.0, 2.0, 1.0]], [[8.0, 1.0, 1.0], [1.0, 8.0, 8.0], [2.0, 1.0, 5.0]]], [[[6.0, 2.0, 7.0], [8.0, 4.0, 5.0], [5.0, 7.0, 7.0]], [[6.0, 5.0, 8.0], [4.0, 5.0, 7.0], [7.0, 1.0, 7.0]], [[5.0, 2.0, 6.0], [7.0, 6.0, 5.0], [4.0, 2.0, 8.0]]], [[[5.0, 2.0, 7.0], [4.0, 3.0, 6.0], [3.0, 4.0, 8.0]], [[5.0, 7.0, 3.0], [7.0, 1.0, 4.0], [1.0, 6.0, 8.0]], [[5.0, 7.0, 2.0], [7.0, 2.0, 3.0], [1.0, 6.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 8.0, 4.0], [7.0, 5.0, 3.0], [8.0, 7.0, 4.0]], [[2.0, 5.0, 2.0], [4.0, 8.0, 8.0], [3.0, 2.0, 2.0]], [[5.0, 5.0, 4.0], [6.0, 8.0, 2.0], [3.0, 3.0, 2.0]]], [[[1.0, 3.0, 4.0], [7.0, 1.0, 8.0], [4.0, 6.0, 7.0]], [[2.0, 7.0, 2.0], [5.0, 4.0, 2.0], [6.0, 4.0, 7.0]], [[8.0, 1.0, 1.0], [1.0, 8.0, 8.0], [8.0, 6.0, 3.0]]], [[[6.0, 2.0, 7.0], [8.0, 4.0, 5.0], [7.0, 8.0, 3.0]], [[6.0, 5.0, 8.0], [4.0, 5.0, 7.0], [2.0, 7.0, 2.0]], [[5.0, 2.0, 6.0], [7.0, 6.0, 5.0], [1.0, 4.0, 8.0]]], [[[5.0, 2.0, 7.0], [4.0, 3.0, 6.0], [7.0, 5.0, 6.0]], [[5.0, 7.0, 3.0], [7.0, 1.0, 4.0], [3.0, 8.0, 7.0]], [[5.0, 7.0, 2.0], [7.0, 2.0, 3.0], [4.0, 1.0, 8.0]]]])
4315          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4316       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4317       def test_setslice_constData_rank4_taggedData_CCLL(self):
4318          arg=Data(numarray.array([[[[8.0, 1.0, 1.0], [4.0, 5.0, 6.0], [5.0, 7.0, 8.0]], [[6.0, 7.0, 4.0], [7.0, 2.0, 7.0], [2.0, 1.0, 3.0]], [[4.0, 1.0, 4.0], [8.0, 4.0, 7.0], [4.0, 6.0, 2.0]]], [[[2.0, 5.0, 7.0], [5.0, 2.0, 2.0], [2.0, 4.0, 5.0]], [[3.0, 2.0, 6.0], [5.0, 5.0, 8.0], [6.0, 3.0, 3.0]], [[7.0, 5.0, 5.0], [8.0, 1.0, 6.0], [6.0, 6.0, 5.0]]], [[[8.0, 5.0, 6.0], [8.0, 6.0, 2.0], [6.0, 5.0, 5.0]], [[7.0, 8.0, 3.0], [6.0, 1.0, 5.0], [7.0, 3.0, 6.0]], [[6.0, 4.0, 4.0], [7.0, 1.0, 6.0], [4.0, 1.0, 8.0]]], [[[8.0, 1.0, 3.0], [5.0, 7.0, 3.0], [2.0, 4.0, 1.0]], [[3.0, 6.0, 1.0], [1.0, 5.0, 7.0], [8.0, 4.0, 4.0]], [[4.0, 3.0, 5.0], [3.0, 3.0, 7.0], [1.0, 3.0, 6.0]]]]),self.functionspace)
4319          val=Data(numarray.array([[[[7.0]], [[6.0]], [[1.0]]], [[[2.0]], [[1.0]], [[6.0]]], [[[8.0]], [[2.0]], [[7.0]]], [[[1.0]], [[4.0]], [[5.0]]]]),self.functionspace)
4320          val.setTaggedValue(1,numarray.array([[[[5.0]], [[6.0]], [[8.0]]], [[[4.0]], [[3.0]], [[3.0]]], [[[6.0]], [[3.0]], [[5.0]]], [[[4.0]], [[5.0]], [[1.0]]]]))
4321          arg[:,:,2:,2:]=val
4322          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4323          ref=msk_ref*numarray.array([[[[8.0, 1.0, 1.0], [4.0, 5.0, 6.0], [5.0, 7.0, 7.0]], [[6.0, 7.0, 4.0], [7.0, 2.0, 7.0], [2.0, 1.0, 6.0]], [[4.0, 1.0, 4.0], [8.0, 4.0, 7.0], [4.0, 6.0, 1.0]]], [[[2.0, 5.0, 7.0], [5.0, 2.0, 2.0], [2.0, 4.0, 2.0]], [[3.0, 2.0, 6.0], [5.0, 5.0, 8.0], [6.0, 3.0, 1.0]], [[7.0, 5.0, 5.0], [8.0, 1.0, 6.0], [6.0, 6.0, 6.0]]], [[[8.0, 5.0, 6.0], [8.0, 6.0, 2.0], [6.0, 5.0, 8.0]], [[7.0, 8.0, 3.0], [6.0, 1.0, 5.0], [7.0, 3.0, 2.0]], [[6.0, 4.0, 4.0], [7.0, 1.0, 6.0], [4.0, 1.0, 7.0]]], [[[8.0, 1.0, 3.0], [5.0, 7.0, 3.0], [2.0, 4.0, 1.0]], [[3.0, 6.0, 1.0], [1.0, 5.0, 7.0], [8.0, 4.0, 4.0]], [[4.0, 3.0, 5.0], [3.0, 3.0, 7.0], [1.0, 3.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 1.0, 1.0], [4.0, 5.0, 6.0], [5.0, 7.0, 5.0]], [[6.0, 7.0, 4.0], [7.0, 2.0, 7.0], [2.0, 1.0, 6.0]], [[4.0, 1.0, 4.0], [8.0, 4.0, 7.0], [4.0, 6.0, 8.0]]], [[[2.0, 5.0, 7.0], [5.0, 2.0, 2.0], [2.0, 4.0, 4.0]], [[3.0, 2.0, 6.0], [5.0, 5.0, 8.0], [6.0, 3.0, 3.0]], [[7.0, 5.0, 5.0], [8.0, 1.0, 6.0], [6.0, 6.0, 3.0]]], [[[8.0, 5.0, 6.0], [8.0, 6.0, 2.0], [6.0, 5.0, 6.0]], [[7.0, 8.0, 3.0], [6.0, 1.0, 5.0], [7.0, 3.0, 3.0]], [[6.0, 4.0, 4.0], [7.0, 1.0, 6.0], [4.0, 1.0, 5.0]]], [[[8.0, 1.0, 3.0], [5.0, 7.0, 3.0], [2.0, 4.0, 4.0]], [[3.0, 6.0, 1.0], [1.0, 5.0, 7.0], [8.0, 4.0, 5.0]], [[4.0, 3.0, 5.0], [3.0, 3.0, 7.0], [1.0, 3.0, 1.0]]]])
4324          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4325       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4326       def test_setslice_constData_rank4_taggedData_RLLC(self):
4327          arg=Data(numarray.array([[[[4.0, 1.0, 1.0], [2.0, 4.0, 5.0], [7.0, 6.0, 2.0]], [[1.0, 7.0, 1.0], [6.0, 8.0, 1.0], [8.0, 6.0, 2.0]], [[7.0, 8.0, 6.0], [6.0, 6.0, 3.0], [5.0, 4.0, 6.0]]], [[[1.0, 8.0, 1.0], [7.0, 4.0, 1.0], [5.0, 3.0, 8.0]], [[5.0, 1.0, 4.0], [3.0, 2.0, 7.0], [5.0, 8.0, 3.0]], [[4.0, 1.0, 1.0], [7.0, 7.0, 3.0], [7.0, 4.0, 5.0]]], [[[2.0, 1.0, 2.0], [5.0, 2.0, 4.0], [4.0, 1.0, 3.0]], [[1.0, 1.0, 7.0], [3.0, 1.0, 2.0], [6.0, 1.0, 1.0]], [[4.0, 4.0, 5.0], [5.0, 5.0, 2.0], [1.0, 8.0, 8.0]]], [[[5.0, 6.0, 5.0], [7.0, 2.0, 1.0], [8.0, 6.0, 6.0]], [[2.0, 1.0, 6.0], [4.0, 8.0, 3.0], [2.0, 1.0, 4.0]], [[5.0, 1.0, 3.0], [3.0, 8.0, 1.0], [3.0, 4.0, 2.0]]]]),self.functionspace)
4328          val=Data(numarray.array([[[[6.0, 2.0, 1.0]]], [[[3.0, 1.0, 1.0]]]]),self.functionspace)
4329          val.setTaggedValue(1,numarray.array([[[[7.0, 1.0, 4.0]]], [[[1.0, 4.0, 5.0]]]]))
4330          arg[1:3,2:,2:,:]=val
4331          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4332          ref=msk_ref*numarray.array([[[[4.0, 1.0, 1.0], [2.0, 4.0, 5.0], [7.0, 6.0, 2.0]], [[1.0, 7.0, 1.0], [6.0, 8.0, 1.0], [8.0, 6.0, 2.0]], [[7.0, 8.0, 6.0], [6.0, 6.0, 3.0], [5.0, 4.0, 6.0]]], [[[1.0, 8.0, 1.0], [7.0, 4.0, 1.0], [5.0, 3.0, 8.0]], [[5.0, 1.0, 4.0], [3.0, 2.0, 7.0], [5.0, 8.0, 3.0]], [[4.0, 1.0, 1.0], [7.0, 7.0, 3.0], [6.0, 2.0, 1.0]]], [[[2.0, 1.0, 2.0], [5.0, 2.0, 4.0], [4.0, 1.0, 3.0]], [[1.0, 1.0, 7.0], [3.0, 1.0, 2.0], [6.0, 1.0, 1.0]], [[4.0, 4.0, 5.0], [5.0, 5.0, 2.0], [3.0, 1.0, 1.0]]], [[[5.0, 6.0, 5.0], [7.0, 2.0, 1.0], [8.0, 6.0, 6.0]], [[2.0, 1.0, 6.0], [4.0, 8.0, 3.0], [2.0, 1.0, 4.0]], [[5.0, 1.0, 3.0], [3.0, 8.0, 1.0], [3.0, 4.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 1.0, 1.0], [2.0, 4.0, 5.0], [7.0, 6.0, 2.0]], [[1.0, 7.0, 1.0], [6.0, 8.0, 1.0], [8.0, 6.0, 2.0]], [[7.0, 8.0, 6.0], [6.0, 6.0, 3.0], [5.0, 4.0, 6.0]]], [[[1.0, 8.0, 1.0], [7.0, 4.0, 1.0], [5.0, 3.0, 8.0]], [[5.0, 1.0, 4.0], [3.0, 2.0, 7.0], [5.0, 8.0, 3.0]], [[4.0, 1.0, 1.0], [7.0, 7.0, 3.0], [7.0, 1.0, 4.0]]], [[[2.0, 1.0, 2.0], [5.0, 2.0, 4.0], [4.0, 1.0, 3.0]], [[1.0, 1.0, 7.0], [3.0, 1.0, 2.0], [6.0, 1.0, 1.0]], [[4.0, 4.0, 5.0], [5.0, 5.0, 2.0], [1.0, 4.0, 5.0]]], [[[5.0, 6.0, 5.0], [7.0, 2.0, 1.0], [8.0, 6.0, 6.0]], [[2.0, 1.0, 6.0], [4.0, 8.0, 3.0], [2.0, 1.0, 4.0]], [[5.0, 1.0, 3.0], [3.0, 8.0, 1.0], [3.0, 4.0, 2.0]]]])
4333          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4334       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4335       def test_setslice_constData_rank4_taggedData_LRLL(self):
4336          arg=Data(numarray.array([[[[1.0, 2.0, 7.0], [7.0, 5.0, 1.0], [3.0, 1.0, 3.0]], [[6.0, 5.0, 2.0], [8.0, 8.0, 2.0], [5.0, 3.0, 2.0]], [[5.0, 6.0, 1.0], [1.0, 4.0, 4.0], [3.0, 3.0, 2.0]]], [[[4.0, 5.0, 3.0], [8.0, 6.0, 1.0], [6.0, 7.0, 5.0]], [[1.0, 5.0, 7.0], [7.0, 7.0, 6.0], [1.0, 5.0, 7.0]], [[8.0, 3.0, 1.0], [5.0, 4.0, 5.0], [6.0, 4.0, 4.0]]], [[[2.0, 5.0, 6.0], [8.0, 1.0, 4.0], [4.0, 7.0, 2.0]], [[1.0, 2.0, 2.0], [1.0, 5.0, 7.0], [6.0, 4.0, 3.0]], [[6.0, 5.0, 5.0], [3.0, 7.0, 4.0], [2.0, 8.0, 1.0]]], [[[7.0, 6.0, 6.0], [4.0, 5.0, 8.0], [8.0, 6.0, 7.0]], [[7.0, 1.0, 6.0], [7.0, 4.0, 5.0], [4.0, 7.0, 3.0]], [[8.0, 1.0, 5.0], [2.0, 4.0, 3.0], [2.0, 7.0, 4.0]]]]),self.functionspace)
4337          val=Data(numarray.array([[[[3.0]]], [[[1.0]]]]),self.functionspace)
4338          val.setTaggedValue(1,numarray.array([[[[4.0]]], [[[6.0]]]]))
4339          arg[2:,1:2,2:,2:]=val
4340          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4341          ref=msk_ref*numarray.array([[[[1.0, 2.0, 7.0], [7.0, 5.0, 1.0], [3.0, 1.0, 3.0]], [[6.0, 5.0, 2.0], [8.0, 8.0, 2.0], [5.0, 3.0, 2.0]], [[5.0, 6.0, 1.0], [1.0, 4.0, 4.0], [3.0, 3.0, 2.0]]], [[[4.0, 5.0, 3.0], [8.0, 6.0, 1.0], [6.0, 7.0, 5.0]], [[1.0, 5.0, 7.0], [7.0, 7.0, 6.0], [1.0, 5.0, 7.0]], [[8.0, 3.0, 1.0], [5.0, 4.0, 5.0], [6.0, 4.0, 4.0]]], [[[2.0, 5.0, 6.0], [8.0, 1.0, 4.0], [4.0, 7.0, 2.0]], [[1.0, 2.0, 2.0], [1.0, 5.0, 7.0], [6.0, 4.0, 3.0]], [[6.0, 5.0, 5.0], [3.0, 7.0, 4.0], [2.0, 8.0, 1.0]]], [[[7.0, 6.0, 6.0], [4.0, 5.0, 8.0], [8.0, 6.0, 7.0]], [[7.0, 1.0, 6.0], [7.0, 4.0, 5.0], [4.0, 7.0, 1.0]], [[8.0, 1.0, 5.0], [2.0, 4.0, 3.0], [2.0, 7.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 2.0, 7.0], [7.0, 5.0, 1.0], [3.0, 1.0, 3.0]], [[6.0, 5.0, 2.0], [8.0, 8.0, 2.0], [5.0, 3.0, 2.0]], [[5.0, 6.0, 1.0], [1.0, 4.0, 4.0], [3.0, 3.0, 2.0]]], [[[4.0, 5.0, 3.0], [8.0, 6.0, 1.0], [6.0, 7.0, 5.0]], [[1.0, 5.0, 7.0], [7.0, 7.0, 6.0], [1.0, 5.0, 7.0]], [[8.0, 3.0, 1.0], [5.0, 4.0, 5.0], [6.0, 4.0, 4.0]]], [[[2.0, 5.0, 6.0], [8.0, 1.0, 4.0], [4.0, 7.0, 2.0]], [[1.0, 2.0, 2.0], [1.0, 5.0, 7.0], [6.0, 4.0, 4.0]], [[6.0, 5.0, 5.0], [3.0, 7.0, 4.0], [2.0, 8.0, 1.0]]], [[[7.0, 6.0, 6.0], [4.0, 5.0, 8.0], [8.0, 6.0, 7.0]], [[7.0, 1.0, 6.0], [7.0, 4.0, 5.0], [4.0, 7.0, 6.0]], [[8.0, 1.0, 5.0], [2.0, 4.0, 3.0], [2.0, 7.0, 4.0]]]])
4342          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4343       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4344       def test_setslice_constData_rank4_taggedData_CCCN(self):
4345          arg=Data(numarray.array([[[[8.0, 2.0, 2.0], [5.0, 7.0, 6.0], [7.0, 5.0, 3.0]], [[2.0, 4.0, 6.0], [1.0, 5.0, 8.0], [6.0, 3.0, 4.0]], [[1.0, 7.0, 1.0], [3.0, 3.0, 4.0], [3.0, 5.0, 8.0]]], [[[1.0, 5.0, 8.0], [6.0, 7.0, 8.0], [8.0, 3.0, 1.0]], [[2.0, 7.0, 6.0], [4.0, 7.0, 8.0], [6.0, 7.0, 5.0]], [[8.0, 3.0, 2.0], [7.0, 7.0, 1.0], [2.0, 7.0, 1.0]]], [[[6.0, 1.0, 3.0], [6.0, 2.0, 2.0], [1.0, 3.0, 5.0]], [[4.0, 3.0, 1.0], [6.0, 2.0, 7.0], [4.0, 4.0, 8.0]], [[7.0, 7.0, 8.0], [5.0, 4.0, 6.0], [6.0, 3.0, 4.0]]], [[[5.0, 3.0, 6.0], [6.0, 1.0, 6.0], [7.0, 7.0, 4.0]], [[2.0, 8.0, 8.0], [4.0, 4.0, 7.0], [7.0, 5.0, 3.0]], [[2.0, 8.0, 1.0], [2.0, 6.0, 5.0], [3.0, 8.0, 5.0]]]]),self.functionspace)
4346          val=Data(numarray.array([[[[4.0, 8.0, 8.0], [2.0, 6.0, 5.0], [1.0, 7.0, 5.0]], [[5.0, 5.0, 1.0], [7.0, 6.0, 5.0], [7.0, 3.0, 2.0]], [[3.0, 3.0, 7.0], [4.0, 7.0, 3.0], [4.0, 4.0, 6.0]]], [[[6.0, 2.0, 5.0], [8.0, 7.0, 2.0], [6.0, 7.0, 6.0]], [[7.0, 3.0, 2.0], [6.0, 8.0, 3.0], [4.0, 1.0, 3.0]], [[3.0, 4.0, 6.0], [7.0, 4.0, 3.0], [5.0, 2.0, 7.0]]], [[[8.0, 6.0, 1.0], [3.0, 6.0, 1.0], [7.0, 7.0, 3.0]], [[4.0, 6.0, 8.0], [4.0, 1.0, 7.0], [8.0, 3.0, 4.0]], [[1.0, 4.0, 6.0], [7.0, 6.0, 5.0], [4.0, 5.0, 4.0]]], [[[3.0, 2.0, 4.0], [2.0, 7.0, 4.0], [6.0, 2.0, 5.0]], [[4.0, 8.0, 4.0], [3.0, 8.0, 3.0], [6.0, 5.0, 7.0]], [[7.0, 6.0, 3.0], [1.0, 1.0, 3.0], [2.0, 6.0, 4.0]]]]),self.functionspace)
4347          val.setTaggedValue(1,numarray.array([[[[5.0, 1.0, 5.0], [6.0, 4.0, 7.0], [7.0, 8.0, 4.0]], [[8.0, 7.0, 7.0], [5.0, 2.0, 4.0], [1.0, 3.0, 4.0]], [[5.0, 1.0, 2.0], [1.0, 1.0, 2.0], [4.0, 2.0, 6.0]]], [[[3.0, 3.0, 6.0], [8.0, 5.0, 3.0], [6.0, 1.0, 7.0]], [[8.0, 6.0, 7.0], [1.0, 2.0, 2.0], [4.0, 6.0, 7.0]], [[3.0, 3.0, 8.0], [7.0, 3.0, 5.0], [1.0, 8.0, 8.0]]], [[[4.0, 5.0, 5.0], [4.0, 5.0, 2.0], [5.0, 8.0, 4.0]], [[1.0, 6.0, 8.0], [3.0, 7.0, 3.0], [2.0, 5.0, 8.0]], [[4.0, 4.0, 4.0], [8.0, 7.0, 8.0], [4.0, 5.0, 2.0]]], [[[6.0, 4.0, 5.0], [6.0, 2.0, 2.0], [6.0, 1.0, 6.0]], [[2.0, 5.0, 7.0], [1.0, 2.0, 8.0], [7.0, 2.0, 3.0]], [[6.0, 5.0, 6.0], [7.0, 1.0, 4.0], [7.0, 3.0, 6.0]]]]))
4348          arg[:,:,:]=val
4349          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4350          ref=msk_ref*numarray.array([[[[4.0, 8.0, 8.0], [2.0, 6.0, 5.0], [1.0, 7.0, 5.0]], [[5.0, 5.0, 1.0], [7.0, 6.0, 5.0], [7.0, 3.0, 2.0]], [[3.0, 3.0, 7.0], [4.0, 7.0, 3.0], [4.0, 4.0, 6.0]]], [[[6.0, 2.0, 5.0], [8.0, 7.0, 2.0], [6.0, 7.0, 6.0]], [[7.0, 3.0, 2.0], [6.0, 8.0, 3.0], [4.0, 1.0, 3.0]], [[3.0, 4.0, 6.0], [7.0, 4.0, 3.0], [5.0, 2.0, 7.0]]], [[[8.0, 6.0, 1.0], [3.0, 6.0, 1.0], [7.0, 7.0, 3.0]], [[4.0, 6.0, 8.0], [4.0, 1.0, 7.0], [8.0, 3.0, 4.0]], [[1.0, 4.0, 6.0], [7.0, 6.0, 5.0], [4.0, 5.0, 4.0]]], [[[3.0, 2.0, 4.0], [2.0, 7.0, 4.0], [6.0, 2.0, 5.0]], [[4.0, 8.0, 4.0], [3.0, 8.0, 3.0], [6.0, 5.0, 7.0]], [[7.0, 6.0, 3.0], [1.0, 1.0, 3.0], [2.0, 6.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 1.0, 5.0], [6.0, 4.0, 7.0], [7.0, 8.0, 4.0]], [[8.0, 7.0, 7.0], [5.0, 2.0, 4.0], [1.0, 3.0, 4.0]], [[5.0, 1.0, 2.0], [1.0, 1.0, 2.0], [4.0, 2.0, 6.0]]], [[[3.0, 3.0, 6.0], [8.0, 5.0, 3.0], [6.0, 1.0, 7.0]], [[8.0, 6.0, 7.0], [1.0, 2.0, 2.0], [4.0, 6.0, 7.0]], [[3.0, 3.0, 8.0], [7.0, 3.0, 5.0], [1.0, 8.0, 8.0]]], [[[4.0, 5.0, 5.0], [4.0, 5.0, 2.0], [5.0, 8.0, 4.0]], [[1.0, 6.0, 8.0], [3.0, 7.0, 3.0], [2.0, 5.0, 8.0]], [[4.0, 4.0, 4.0], [8.0, 7.0, 8.0], [4.0, 5.0, 2.0]]], [[[6.0, 4.0, 5.0], [6.0, 2.0, 2.0], [6.0, 1.0, 6.0]], [[2.0, 5.0, 7.0], [1.0, 2.0, 8.0], [7.0, 2.0, 3.0]], [[6.0, 5.0, 6.0], [7.0, 1.0, 4.0], [7.0, 3.0, 6.0]]]])
4351          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4352       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4353       def test_setslice_constData_rank4_taggedData_RUCN(self):
4354          arg=Data(numarray.array([[[[2.0, 5.0, 7.0], [2.0, 5.0, 2.0], [6.0, 8.0, 1.0]], [[3.0, 5.0, 5.0], [7.0, 6.0, 8.0], [2.0, 8.0, 7.0]], [[7.0, 4.0, 2.0], [3.0, 8.0, 8.0], [3.0, 2.0, 3.0]]], [[[5.0, 4.0, 3.0], [4.0, 1.0, 3.0], [5.0, 5.0, 5.0]], [[5.0, 2.0, 3.0], [1.0, 5.0, 8.0], [8.0, 4.0, 2.0]], [[4.0, 3.0, 1.0], [7.0, 3.0, 7.0], [3.0, 7.0, 6.0]]], [[[7.0, 8.0, 6.0], [1.0, 2.0, 5.0], [5.0, 4.0, 4.0]], [[7.0, 6.0, 6.0], [5.0, 7.0, 3.0], [4.0, 1.0, 5.0]], [[4.0, 8.0, 2.0], [4.0, 8.0, 6.0], [1.0, 7.0, 7.0]]], [[[7.0, 6.0, 8.0], [6.0, 6.0, 8.0], [1.0, 5.0, 5.0]], [[1.0, 6.0, 8.0], [6.0, 5.0, 8.0], [2.0, 8.0, 8.0]], [[8.0, 6.0, 6.0], [4.0, 7.0, 2.0], [2.0, 1.0, 8.0]]]]),self.functionspace)
4355          val=Data(numarray.array([[[[5.0, 3.0, 4.0], [6.0, 1.0, 8.0], [1.0, 8.0, 6.0]], [[1.0, 5.0, 8.0], [3.0, 5.0, 8.0], [4.0, 5.0, 7.0]]], [[[2.0, 1.0, 7.0], [8.0, 4.0, 8.0], [6.0, 1.0, 5.0]], [[7.0, 2.0, 7.0], [5.0, 5.0, 7.0], [6.0, 2.0, 2.0]]]]),self.functionspace)
4356          val.setTaggedValue(1,numarray.array([[[[4.0, 6.0, 5.0], [1.0, 3.0, 3.0], [8.0, 3.0, 6.0]], [[6.0, 5.0, 5.0], [2.0, 3.0, 3.0], [5.0, 1.0, 4.0]]], [[[1.0, 7.0, 1.0], [1.0, 3.0, 6.0], [3.0, 3.0, 4.0]], [[6.0, 8.0, 5.0], [8.0, 1.0, 8.0], [2.0, 3.0, 6.0]]]]))
4357          arg[1:3,:2,:]=val
4358          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4359          ref=msk_ref*numarray.array([[[[2.0, 5.0, 7.0], [2.0, 5.0, 2.0], [6.0, 8.0, 1.0]], [[3.0, 5.0, 5.0], [7.0, 6.0, 8.0], [2.0, 8.0, 7.0]], [[7.0, 4.0, 2.0], [3.0, 8.0, 8.0], [3.0, 2.0, 3.0]]], [[[5.0, 3.0, 4.0], [6.0, 1.0, 8.0], [1.0, 8.0, 6.0]], [[1.0, 5.0, 8.0], [3.0, 5.0, 8.0], [4.0, 5.0, 7.0]], [[4.0, 3.0, 1.0], [7.0, 3.0, 7.0], [3.0, 7.0, 6.0]]], [[[2.0, 1.0, 7.0], [8.0, 4.0, 8.0], [6.0, 1.0, 5.0]], [[7.0, 2.0, 7.0], [5.0, 5.0, 7.0], [6.0, 2.0, 2.0]], [[4.0, 8.0, 2.0], [4.0, 8.0, 6.0], [1.0, 7.0, 7.0]]], [[[7.0, 6.0, 8.0], [6.0, 6.0, 8.0], [1.0, 5.0, 5.0]], [[1.0, 6.0, 8.0], [6.0, 5.0, 8.0], [2.0, 8.0, 8.0]], [[8.0, 6.0, 6.0], [4.0, 7.0, 2.0], [2.0, 1.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 5.0, 7.0], [2.0, 5.0, 2.0], [6.0, 8.0, 1.0]], [[3.0, 5.0, 5.0], [7.0, 6.0, 8.0], [2.0, 8.0, 7.0]], [[7.0, 4.0, 2.0], [3.0, 8.0, 8.0], [3.0, 2.0, 3.0]]], [[[4.0, 6.0, 5.0], [1.0, 3.0, 3.0], [8.0, 3.0, 6.0]], [[6.0, 5.0, 5.0], [2.0, 3.0, 3.0], [5.0, 1.0, 4.0]], [[4.0, 3.0, 1.0], [7.0, 3.0, 7.0], [3.0, 7.0, 6.0]]], [[[1.0, 7.0, 1.0], [1.0, 3.0, 6.0], [3.0, 3.0, 4.0]], [[6.0, 8.0, 5.0], [8.0, 1.0, 8.0], [2.0, 3.0, 6.0]], [[4.0, 8.0, 2.0], [4.0, 8.0, 6.0], [1.0, 7.0, 7.0]]], [[[7.0, 6.0, 8.0], [6.0, 6.0, 8.0], [1.0, 5.0, 5.0]], [[1.0, 6.0, 8.0], [6.0, 5.0, 8.0], [2.0, 8.0, 8.0]], [[8.0, 6.0, 6.0], [4.0, 7.0, 2.0], [2.0, 1.0, 8.0]]]])
4360          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4361       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4362       def test_setslice_constData_rank4_taggedData_PRUN(self):
4363          arg=Data(numarray.array([[[[6.0, 8.0, 6.0], [6.0, 4.0, 7.0], [4.0, 2.0, 4.0]], [[4.0, 1.0, 8.0], [8.0, 1.0, 2.0], [6.0, 3.0, 6.0]], [[3.0, 2.0, 4.0], [5.0, 6.0, 6.0], [4.0, 2.0, 8.0]]], [[[1.0, 5.0, 4.0], [2.0, 1.0, 2.0], [4.0, 2.0, 7.0]], [[1.0, 7.0, 6.0], [4.0, 2.0, 3.0], [4.0, 8.0, 4.0]], [[2.0, 6.0, 3.0], [4.0, 8.0, 6.0], [2.0, 4.0, 2.0]]], [[[4.0, 2.0, 2.0], [7.0, 7.0, 5.0], [2.0, 2.0, 7.0]], [[3.0, 3.0, 5.0], [7.0, 7.0, 7.0], [5.0, 1.0, 7.0]], [[6.0, 2.0, 3.0], [7.0, 6.0, 2.0], [8.0, 6.0, 5.0]]], [[[8.0, 5.0, 6.0], [6.0, 5.0, 7.0], [5.0, 4.0, 4.0]], [[6.0, 6.0, 4.0], [8.0, 2.0, 1.0], [7.0, 8.0, 5.0]], [[3.0, 2.0, 7.0], [4.0, 5.0, 4.0], [2.0, 5.0, 2.0]]]]),self.functionspace)
4364          val=Data(numarray.array([[[3.0, 7.0, 2.0], [6.0, 8.0, 2.0]]]),self.functionspace)
4365          val.setTaggedValue(1,numarray.array([[[6.0, 1.0, 1.0], [8.0, 1.0, 1.0]]]))
4366          arg[2,1:2,:2]=val
4367          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4368          ref=msk_ref*numarray.array([[[[6.0, 8.0, 6.0], [6.0, 4.0, 7.0], [4.0, 2.0, 4.0]], [[4.0, 1.0, 8.0], [8.0, 1.0, 2.0], [6.0, 3.0, 6.0]], [[3.0, 2.0, 4.0], [5.0, 6.0, 6.0], [4.0, 2.0, 8.0]]], [[[1.0, 5.0, 4.0], [2.0, 1.0, 2.0], [4.0, 2.0, 7.0]], [[1.0, 7.0, 6.0], [4.0, 2.0, 3.0], [4.0, 8.0, 4.0]], [[2.0, 6.0, 3.0], [4.0, 8.0, 6.0], [2.0, 4.0, 2.0]]], [[[4.0, 2.0, 2.0], [7.0, 7.0, 5.0], [2.0, 2.0, 7.0]], [[3.0, 7.0, 2.0], [6.0, 8.0, 2.0], [5.0, 1.0, 7.0]], [[6.0, 2.0, 3.0], [7.0, 6.0, 2.0], [8.0, 6.0, 5.0]]], [[[8.0, 5.0, 6.0], [6.0, 5.0, 7.0], [5.0, 4.0, 4.0]], [[6.0, 6.0, 4.0], [8.0, 2.0, 1.0], [7.0, 8.0, 5.0]], [[3.0, 2.0, 7.0], [4.0, 5.0, 4.0], [2.0, 5.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 8.0, 6.0], [6.0, 4.0, 7.0], [4.0, 2.0, 4.0]], [[4.0, 1.0, 8.0], [8.0, 1.0, 2.0], [6.0, 3.0, 6.0]], [[3.0, 2.0, 4.0], [5.0, 6.0, 6.0], [4.0, 2.0, 8.0]]], [[[1.0, 5.0, 4.0], [2.0, 1.0, 2.0], [4.0, 2.0, 7.0]], [[1.0, 7.0, 6.0], [4.0, 2.0, 3.0], [4.0, 8.0, 4.0]], [[2.0, 6.0, 3.0], [4.0, 8.0, 6.0], [2.0, 4.0, 2.0]]], [[[4.0, 2.0, 2.0], [7.0, 7.0, 5.0], [2.0, 2.0, 7.0]], [[6.0, 1.0, 1.0], [8.0, 1.0, 1.0], [5.0, 1.0, 7.0]], [[6.0, 2.0, 3.0], [7.0, 6.0, 2.0], [8.0, 6.0, 5.0]]], [[[8.0, 5.0, 6.0], [6.0, 5.0, 7.0], [5.0, 4.0, 4.0]], [[6.0, 6.0, 4.0], [8.0, 2.0, 1.0], [7.0, 8.0, 5.0]], [[3.0, 2.0, 7.0], [4.0, 5.0, 4.0], [2.0, 5.0, 2.0]]]])
4369          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4370       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4371       def test_setslice_constData_rank4_taggedData_LULU(self):
4372          arg=Data(numarray.array([[[[3.0, 8.0, 5.0], [2.0, 8.0, 5.0], [2.0, 5.0, 5.0]], [[6.0, 6.0, 7.0], [6.0, 3.0, 3.0], [3.0, 3.0, 7.0]], [[2.0, 6.0, 7.0], [6.0, 7.0, 7.0], [3.0, 5.0, 4.0]]], [[[8.0, 7.0, 4.0], [2.0, 4.0, 1.0], [6.0, 1.0, 6.0]], [[6.0, 6.0, 4.0], [4.0, 4.0, 2.0], [4.0, 2.0, 4.0]], [[5.0, 6.0, 4.0], [1.0, 5.0, 7.0], [6.0, 4.0, 8.0]]], [[[1.0, 5.0, 4.0], [8.0, 4.0, 6.0], [8.0, 7.0, 8.0]], [[6.0, 8.0, 2.0], [2.0, 4.0, 1.0], [4.0, 5.0, 6.0]], [[8.0, 2.0, 8.0], [8.0, 1.0, 7.0], [3.0, 1.0, 3.0]]], [[[7.0, 5.0, 1.0], [6.0, 6.0, 7.0], [7.0, 1.0, 5.0]], [[5.0, 7.0, 8.0], [8.0, 3.0, 4.0], [8.0, 2.0, 4.0]], [[7.0, 5.0, 3.0], [4.0, 2.0, 1.0], [6.0, 3.0, 1.0]]]]),self.functionspace)
4373          val=Data(numarray.array([[[[8.0, 4.0]], [[2.0, 6.0]]], [[[2.0, 3.0]], [[5.0, 3.0]]]]),self.functionspace)
4374          val.setTaggedValue(1,numarray.array([[[[8.0, 3.0]], [[6.0, 8.0]]], [[[4.0, 5.0]], [[3.0, 7.0]]]]))
4375          arg[2:,:2,2:,:2]=val
4376          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4377          ref=msk_ref*numarray.array([[[[3.0, 8.0, 5.0], [2.0, 8.0, 5.0], [2.0, 5.0, 5.0]], [[6.0, 6.0, 7.0], [6.0, 3.0, 3.0], [3.0, 3.0, 7.0]], [[2.0, 6.0, 7.0], [6.0, 7.0, 7.0], [3.0, 5.0, 4.0]]], [[[8.0, 7.0, 4.0], [2.0, 4.0, 1.0], [6.0, 1.0, 6.0]], [[6.0, 6.0, 4.0], [4.0, 4.0, 2.0], [4.0, 2.0, 4.0]], [[5.0, 6.0, 4.0], [1.0, 5.0, 7.0], [6.0, 4.0, 8.0]]], [[[1.0, 5.0, 4.0], [8.0, 4.0, 6.0], [8.0, 4.0, 8.0]], [[6.0, 8.0, 2.0], [2.0, 4.0, 1.0], [2.0, 6.0, 6.0]], [[8.0, 2.0, 8.0], [8.0, 1.0, 7.0], [3.0, 1.0, 3.0]]], [[[7.0, 5.0, 1.0], [6.0, 6.0, 7.0], [2.0, 3.0, 5.0]], [[5.0, 7.0, 8.0], [8.0, 3.0, 4.0], [5.0, 3.0, 4.0]], [[7.0, 5.0, 3.0], [4.0, 2.0, 1.0], [6.0, 3.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 8.0, 5.0], [2.0, 8.0, 5.0], [2.0, 5.0, 5.0]], [[6.0, 6.0, 7.0], [6.0, 3.0, 3.0], [3.0, 3.0, 7.0]], [[2.0, 6.0, 7.0], [6.0, 7.0, 7.0], [3.0, 5.0, 4.0]]], [[[8.0, 7.0, 4.0], [2.0, 4.0, 1.0], [6.0, 1.0, 6.0]], [[6.0, 6.0, 4.0], [4.0, 4.0, 2.0], [4.0, 2.0, 4.0]], [[5.0, 6.0, 4.0], [1.0, 5.0, 7.0], [6.0, 4.0, 8.0]]], [[[1.0, 5.0, 4.0], [8.0, 4.0, 6.0], [8.0, 3.0, 8.0]], [[6.0, 8.0, 2.0], [2.0, 4.0, 1.0], [6.0, 8.0, 6.0]], [[8.0, 2.0, 8.0], [8.0, 1.0, 7.0], [3.0, 1.0, 3.0]]], [[[7.0, 5.0, 1.0], [6.0, 6.0, 7.0], [4.0, 5.0, 5.0]], [[5.0, 7.0, 8.0], [8.0, 3.0, 4.0], [3.0, 7.0, 4.0]], [[7.0, 5.0, 3.0], [4.0, 2.0, 1.0], [6.0, 3.0, 1.0]]]])
4378          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4379       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4380       def test_setslice_constData_rank4_taggedData_UCPU(self):
4381          arg=Data(numarray.array([[[[2.0, 4.0, 8.0], [4.0, 5.0, 2.0], [8.0, 1.0, 7.0]], [[2.0, 6.0, 7.0], [2.0, 2.0, 1.0], [2.0, 8.0, 7.0]], [[8.0, 8.0, 6.0], [3.0, 8.0, 5.0], [5.0, 8.0, 8.0]]], [[[4.0, 5.0, 5.0], [7.0, 4.0, 2.0], [2.0, 4.0, 5.0]], [[8.0, 1.0, 3.0], [1.0, 3.0, 2.0], [8.0, 5.0, 3.0]], [[8.0, 4.0, 6.0], [5.0, 5.0, 5.0], [4.0, 3.0, 6.0]]], [[[5.0, 6.0, 2.0], [2.0, 5.0, 1.0], [6.0, 4.0, 2.0]], [[8.0, 7.0, 1.0], [7.0, 3.0, 7.0], [2.0, 5.0, 4.0]], [[3.0, 8.0, 5.0], [8.0, 5.0, 8.0], [2.0, 3.0, 2.0]]], [[[1.0, 1.0, 1.0], [6.0, 3.0, 3.0], [1.0, 5.0, 1.0]], [[1.0, 4.0, 1.0], [2.0, 2.0, 2.0], [7.0, 7.0, 1.0]], [[8.0, 3.0, 7.0], [2.0, 7.0, 8.0], [3.0, 7.0, 4.0]]]]),self.functionspace)
4382          val=Data(numarray.array([[[7.0, 5.0], [8.0, 1.0], [5.0, 7.0]], [[5.0, 3.0], [7.0, 2.0], [7.0, 8.0]], [[2.0, 5.0], [4.0, 2.0], [4.0, 3.0]]]),self.functionspace)
4383          val.setTaggedValue(1,numarray.array([[[5.0, 5.0], [7.0, 6.0], [6.0, 3.0]], [[5.0, 3.0], [1.0, 7.0], [1.0, 6.0]], [[7.0, 2.0], [2.0, 7.0], [7.0, 5.0]]]))
4384          arg[:3,:,1,:2]=val
4385          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4386          ref=msk_ref*numarray.array([[[[2.0, 4.0, 8.0], [7.0, 5.0, 2.0], [8.0, 1.0, 7.0]], [[2.0, 6.0, 7.0], [8.0, 1.0, 1.0], [2.0, 8.0, 7.0]], [[8.0, 8.0, 6.0], [5.0, 7.0, 5.0], [5.0, 8.0, 8.0]]], [[[4.0, 5.0, 5.0], [5.0, 3.0, 2.0], [2.0, 4.0, 5.0]], [[8.0, 1.0, 3.0], [7.0, 2.0, 2.0], [8.0, 5.0, 3.0]], [[8.0, 4.0, 6.0], [7.0, 8.0, 5.0], [4.0, 3.0, 6.0]]], [[[5.0, 6.0, 2.0], [2.0, 5.0, 1.0], [6.0, 4.0, 2.0]], [[8.0, 7.0, 1.0], [4.0, 2.0, 7.0], [2.0, 5.0, 4.0]], [[3.0, 8.0, 5.0], [4.0, 3.0, 8.0], [2.0, 3.0, 2.0]]], [[[1.0, 1.0, 1.0], [6.0, 3.0, 3.0], [1.0, 5.0, 1.0]], [[1.0, 4.0, 1.0], [2.0, 2.0, 2.0], [7.0, 7.0, 1.0]], [[8.0, 3.0, 7.0], [2.0, 7.0, 8.0], [3.0, 7.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 4.0, 8.0], [5.0, 5.0, 2.0], [8.0, 1.0, 7.0]], [[2.0, 6.0, 7.0], [7.0, 6.0, 1.0], [2.0, 8.0, 7.0]], [[8.0, 8.0, 6.0], [6.0, 3.0, 5.0], [5.0, 8.0, 8.0]]], [[[4.0, 5.0, 5.0], [5.0, 3.0, 2.0], [2.0, 4.0, 5.0]], [[8.0, 1.0, 3.0], [1.0, 7.0, 2.0], [8.0, 5.0, 3.0]], [[8.0, 4.0, 6.0], [1.0, 6.0, 5.0], [4.0, 3.0, 6.0]]], [[[5.0, 6.0, 2.0], [7.0, 2.0, 1.0], [6.0, 4.0, 2.0]], [[8.0, 7.0, 1.0], [2.0, 7.0, 7.0], [2.0, 5.0, 4.0]], [[3.0, 8.0, 5.0], [7.0, 5.0, 8.0], [2.0, 3.0, 2.0]]], [[[1.0, 1.0, 1.0], [6.0, 3.0, 3.0], [1.0, 5.0, 1.0]], [[1.0, 4.0, 1.0], [2.0, 2.0, 2.0], [7.0, 7.0, 1.0]], [[8.0, 3.0, 7.0], [2.0, 7.0, 8.0], [3.0, 7.0, 4.0]]]])
4387          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4388       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4389       def test_setslice_constData_rank4_taggedData_RLRL(self):
4390          arg=Data(numarray.array([[[[7.0, 7.0, 1.0], [5.0, 7.0, 2.0], [6.0, 5.0, 2.0]], [[1.0, 4.0, 8.0], [3.0, 5.0, 2.0], [1.0, 4.0, 4.0]], [[1.0, 3.0, 6.0], [3.0, 6.0, 7.0], [7.0, 8.0, 7.0]]], [[[4.0, 8.0, 1.0], [1.0, 5.0, 1.0], [4.0, 6.0, 2.0]], [[4.0, 5.0, 6.0], [4.0, 7.0, 1.0], [7.0, 6.0, 8.0]], [[2.0, 4.0, 2.0], [5.0, 2.0, 8.0], [8.0, 7.0, 2.0]]], [[[1.0, 5.0, 3.0], [7.0, 3.0, 3.0], [6.0, 8.0, 7.0]], [[5.0, 8.0, 2.0], [6.0, 5.0, 2.0], [5.0, 3.0, 6.0]], [[1.0, 2.0, 5.0], [6.0, 3.0, 5.0], [5.0, 1.0, 2.0]]], [[[7.0, 6.0, 6.0], [8.0, 4.0, 2.0], [2.0, 6.0, 7.0]], [[2.0, 6.0, 2.0], [7.0, 2.0, 1.0], [7.0, 1.0, 3.0]], [[1.0, 5.0, 2.0], [7.0, 2.0, 3.0], [4.0, 2.0, 4.0]]]]),self.functionspace)
4391          val=Data(numarray.array([[[[2.0]]], [[[1.0]]]]),self.functionspace)
4392          val.setTaggedValue(1,numarray.array([[[[1.0]]], [[[2.0]]]]))
4393          arg[1:3,2:,1:2,2:]=val
4394          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4395          ref=msk_ref*numarray.array([[[[7.0, 7.0, 1.0], [5.0, 7.0, 2.0], [6.0, 5.0, 2.0]], [[1.0, 4.0, 8.0], [3.0, 5.0, 2.0], [1.0, 4.0, 4.0]], [[1.0, 3.0, 6.0], [3.0, 6.0, 7.0], [7.0, 8.0, 7.0]]], [[[4.0, 8.0, 1.0], [1.0, 5.0, 1.0], [4.0, 6.0, 2.0]], [[4.0, 5.0, 6.0], [4.0, 7.0, 1.0], [7.0, 6.0, 8.0]], [[2.0, 4.0, 2.0], [5.0, 2.0, 2.0], [8.0, 7.0, 2.0]]], [[[1.0, 5.0, 3.0], [7.0, 3.0, 3.0], [6.0, 8.0, 7.0]], [[5.0, 8.0, 2.0], [6.0, 5.0, 2.0], [5.0, 3.0, 6.0]], [[1.0, 2.0, 5.0], [6.0, 3.0, 1.0], [5.0, 1.0, 2.0]]], [[[7.0, 6.0, 6.0], [8.0, 4.0, 2.0], [2.0, 6.0, 7.0]], [[2.0, 6.0, 2.0], [7.0, 2.0, 1.0], [7.0, 1.0, 3.0]], [[1.0, 5.0, 2.0], [7.0, 2.0, 3.0], [4.0, 2.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 7.0, 1.0], [5.0, 7.0, 2.0], [6.0, 5.0, 2.0]], [[1.0, 4.0, 8.0], [3.0, 5.0, 2.0], [1.0, 4.0, 4.0]], [[1.0, 3.0, 6.0], [3.0, 6.0, 7.0], [7.0, 8.0, 7.0]]], [[[4.0, 8.0, 1.0], [1.0, 5.0, 1.0], [4.0, 6.0, 2.0]], [[4.0, 5.0, 6.0], [4.0, 7.0, 1.0], [7.0, 6.0, 8.0]], [[2.0, 4.0, 2.0], [5.0, 2.0, 1.0], [8.0, 7.0, 2.0]]], [[[1.0, 5.0, 3.0], [7.0, 3.0, 3.0], [6.0, 8.0, 7.0]], [[5.0, 8.0, 2.0], [6.0, 5.0, 2.0], [5.0, 3.0, 6.0]], [[1.0, 2.0, 5.0], [6.0, 3.0, 2.0], [5.0, 1.0, 2.0]]], [[[7.0, 6.0, 6.0], [8.0, 4.0, 2.0], [2.0, 6.0, 7.0]], [[2.0, 6.0, 2.0], [7.0, 2.0, 1.0], [7.0, 1.0, 3.0]], [[1.0, 5.0, 2.0], [7.0, 2.0, 3.0], [4.0, 2.0, 4.0]]]])
4396          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4397       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4398       def test_setslice_constData_rank4_taggedData_PCLN(self):
4399          arg=Data(numarray.array([[[[3.0, 5.0, 6.0], [6.0, 1.0, 5.0], [8.0, 3.0, 6.0]], [[2.0, 5.0, 8.0], [7.0, 2.0, 2.0], [7.0, 6.0, 7.0]], [[7.0, 5.0, 8.0], [4.0, 2.0, 8.0], [6.0, 3.0, 7.0]]], [[[6.0, 1.0, 4.0], [2.0, 4.0, 2.0], [2.0, 8.0, 6.0]], [[7.0, 5.0, 6.0], [6.0, 4.0, 4.0], [7.0, 8.0, 5.0]], [[6.0, 4.0, 5.0], [6.0, 7.0, 2.0], [4.0, 1.0, 2.0]]], [[[4.0, 7.0, 1.0], [2.0, 3.0, 6.0], [6.0, 2.0, 3.0]], [[6.0, 6.0, 3.0], [2.0, 3.0, 6.0], [3.0, 7.0, 7.0]], [[6.0, 3.0, 8.0], [1.0, 3.0, 6.0], [4.0, 5.0, 7.0]]], [[[4.0, 4.0, 7.0], [1.0, 2.0, 3.0], [2.0, 7.0, 2.0]], [[2.0, 3.0, 5.0], [2.0, 1.0, 7.0], [6.0, 8.0, 2.0]], [[1.0, 5.0, 6.0], [7.0, 5.0, 5.0], [6.0, 7.0, 1.0]]]]),self.functionspace)
4400          val=Data(numarray.array([[[8.0, 3.0, 2.0]], [[8.0, 4.0, 7.0]], [[7.0, 2.0, 3.0]]]),self.functionspace)
4401          val.setTaggedValue(1,numarray.array([[[2.0, 8.0, 8.0]], [[5.0, 4.0, 2.0]], [[4.0, 2.0, 6.0]]]))
4402          arg[2,:,2:]=val
4403          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4404          ref=msk_ref*numarray.array([[[[3.0, 5.0, 6.0], [6.0, 1.0, 5.0], [8.0, 3.0, 6.0]], [[2.0, 5.0, 8.0], [7.0, 2.0, 2.0], [7.0, 6.0, 7.0]], [[7.0, 5.0, 8.0], [4.0, 2.0, 8.0], [6.0, 3.0, 7.0]]], [[[6.0, 1.0, 4.0], [2.0, 4.0, 2.0], [2.0, 8.0, 6.0]], [[7.0, 5.0, 6.0], [6.0, 4.0, 4.0], [7.0, 8.0, 5.0]], [[6.0, 4.0, 5.0], [6.0, 7.0, 2.0], [4.0, 1.0, 2.0]]], [[[4.0, 7.0, 1.0], [2.0, 3.0, 6.0], [8.0, 3.0, 2.0]], [[6.0, 6.0, 3.0], [2.0, 3.0, 6.0], [8.0, 4.0, 7.0]], [[6.0, 3.0, 8.0], [1.0, 3.0, 6.0], [7.0, 2.0, 3.0]]], [[[4.0, 4.0, 7.0], [1.0, 2.0, 3.0], [2.0, 7.0, 2.0]], [[2.0, 3.0, 5.0], [2.0, 1.0, 7.0], [6.0, 8.0, 2.0]], [[1.0, 5.0, 6.0], [7.0, 5.0, 5.0], [6.0, 7.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 5.0, 6.0], [6.0, 1.0, 5.0], [8.0, 3.0, 6.0]], [[2.0, 5.0, 8.0], [7.0, 2.0, 2.0], [7.0, 6.0, 7.0]], [[7.0, 5.0, 8.0], [4.0, 2.0, 8.0], [6.0, 3.0, 7.0]]], [[[6.0, 1.0, 4.0], [2.0, 4.0, 2.0], [2.0, 8.0, 6.0]], [[7.0, 5.0, 6.0], [6.0, 4.0, 4.0], [7.0, 8.0, 5.0]], [[6.0, 4.0, 5.0], [6.0, 7.0, 2.0], [4.0, 1.0, 2.0]]], [[[4.0, 7.0, 1.0], [2.0, 3.0, 6.0], [2.0, 8.0, 8.0]], [[6.0, 6.0, 3.0], [2.0, 3.0, 6.0], [5.0, 4.0, 2.0]], [[6.0, 3.0, 8.0], [1.0, 3.0, 6.0], [4.0, 2.0, 6.0]]], [[[4.0, 4.0, 7.0], [1.0, 2.0, 3.0], [2.0, 7.0, 2.0]], [[2.0, 3.0, 5.0], [2.0, 1.0, 7.0], [6.0, 8.0, 2.0]], [[1.0, 5.0, 6.0], [7.0, 5.0, 5.0], [6.0, 7.0, 1.0]]]])
4405          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4406       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4407       def test_setslice_constData_rank4_taggedData_CCPN(self):
4408          arg=Data(numarray.array([[[[6.0, 1.0, 1.0], [8.0, 1.0, 5.0], [2.0, 4.0, 1.0]], [[6.0, 4.0, 3.0], [6.0, 7.0, 7.0], [2.0, 8.0, 8.0]], [[4.0, 4.0, 6.0], [8.0, 2.0, 6.0], [3.0, 2.0, 7.0]]], [[[1.0, 1.0, 1.0], [8.0, 8.0, 2.0], [1.0, 2.0, 1.0]], [[3.0, 3.0, 8.0], [4.0, 2.0, 3.0], [8.0, 6.0, 6.0]], [[6.0, 6.0, 6.0], [6.0, 2.0, 4.0], [3.0, 8.0, 1.0]]], [[[6.0, 4.0, 7.0], [1.0, 6.0, 4.0], [8.0, 8.0, 3.0]], [[2.0, 7.0, 1.0], [3.0, 3.0, 5.0], [5.0, 3.0, 7.0]], [[8.0, 2.0, 4.0], [4.0, 8.0, 1.0], [7.0, 7.0, 8.0]]], [[[7.0, 1.0, 3.0], [8.0, 5.0, 8.0], [2.0, 1.0, 3.0]], [[3.0, 1.0, 6.0], [4.0, 8.0, 3.0], [6.0, 2.0, 6.0]], [[4.0, 2.0, 2.0], [2.0, 1.0, 8.0], [2.0, 1.0, 3.0]]]]),self.functionspace)
4409          val=Data(numarray.array([[[7.0, 8.0, 6.0], [8.0, 8.0, 8.0], [4.0, 4.0, 7.0]], [[5.0, 7.0, 7.0], [6.0, 7.0, 6.0], [7.0, 6.0, 5.0]], [[7.0, 2.0, 8.0], [5.0, 3.0, 6.0], [6.0, 3.0, 6.0]], [[7.0, 7.0, 2.0], [7.0, 3.0, 8.0], [3.0, 7.0, 8.0]]]),self.functionspace)
4410          val.setTaggedValue(1,numarray.array([[[5.0, 8.0, 3.0], [1.0, 1.0, 6.0], [5.0, 1.0, 2.0]], [[7.0, 2.0, 8.0], [8.0, 7.0, 6.0], [1.0, 1.0, 2.0]], [[4.0, 3.0, 3.0], [1.0, 1.0, 6.0], [8.0, 8.0, 5.0]], [[3.0, 4.0, 1.0], [7.0, 4.0, 4.0], [4.0, 3.0, 3.0]]]))
4411          arg[:,:,1]=val
4412          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4413          ref=msk_ref*numarray.array([[[[6.0, 1.0, 1.0], [7.0, 8.0, 6.0], [2.0, 4.0, 1.0]], [[6.0, 4.0, 3.0], [8.0, 8.0, 8.0], [2.0, 8.0, 8.0]], [[4.0, 4.0, 6.0], [4.0, 4.0, 7.0], [3.0, 2.0, 7.0]]], [[[1.0, 1.0, 1.0], [5.0, 7.0, 7.0], [1.0, 2.0, 1.0]], [[3.0, 3.0, 8.0], [6.0, 7.0, 6.0], [8.0, 6.0, 6.0]], [[6.0, 6.0, 6.0], [7.0, 6.0, 5.0], [3.0, 8.0, 1.0]]], [[[6.0, 4.0, 7.0], [7.0, 2.0, 8.0], [8.0, 8.0, 3.0]], [[2.0, 7.0, 1.0], [5.0, 3.0, 6.0], [5.0, 3.0, 7.0]], [[8.0, 2.0, 4.0], [6.0, 3.0, 6.0], [7.0, 7.0, 8.0]]], [[[7.0, 1.0, 3.0], [7.0, 7.0, 2.0], [2.0, 1.0, 3.0]], [[3.0, 1.0, 6.0], [7.0, 3.0, 8.0], [6.0, 2.0, 6.0]], [[4.0, 2.0, 2.0], [3.0, 7.0, 8.0], [2.0, 1.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 1.0, 1.0], [5.0, 8.0, 3.0], [2.0, 4.0, 1.0]], [[6.0, 4.0, 3.0], [1.0, 1.0, 6.0], [2.0, 8.0, 8.0]], [[4.0, 4.0, 6.0], [5.0, 1.0, 2.0], [3.0, 2.0, 7.0]]], [[[1.0, 1.0, 1.0], [7.0, 2.0, 8.0], [1.0, 2.0, 1.0]], [[3.0, 3.0, 8.0], [8.0, 7.0, 6.0], [8.0, 6.0, 6.0]], [[6.0, 6.0, 6.0], [1.0, 1.0, 2.0], [3.0, 8.0, 1.0]]], [[[6.0, 4.0, 7.0], [4.0, 3.0, 3.0], [8.0, 8.0, 3.0]], [[2.0, 7.0, 1.0], [1.0, 1.0, 6.0], [5.0, 3.0, 7.0]], [[8.0, 2.0, 4.0], [8.0, 8.0, 5.0], [7.0, 7.0, 8.0]]], [[[7.0, 1.0, 3.0], [3.0, 4.0, 1.0], [2.0, 1.0, 3.0]], [[3.0, 1.0, 6.0], [7.0, 4.0, 4.0], [6.0, 2.0, 6.0]], [[4.0, 2.0, 2.0], [4.0, 3.0, 3.0], [2.0, 1.0, 3.0]]]])
4414          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4415       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4416       def test_setslice_constData_rank4_taggedData_ULCN(self):
4417          arg=Data(numarray.array([[[[1.0, 4.0, 7.0], [8.0, 2.0, 1.0], [3.0, 2.0, 5.0]], [[7.0, 3.0, 8.0], [2.0, 6.0, 7.0], [6.0, 3.0, 3.0]], [[7.0, 5.0, 4.0], [2.0, 2.0, 1.0], [4.0, 1.0, 8.0]]], [[[5.0, 3.0, 7.0], [7.0, 5.0, 4.0], [5.0, 3.0, 1.0]], [[6.0, 2.0, 4.0], [1.0, 4.0, 1.0], [3.0, 4.0, 5.0]], [[1.0, 1.0, 3.0], [7.0, 2.0, 2.0], [4.0, 5.0, 3.0]]], [[[4.0, 4.0, 4.0], [2.0, 3.0, 5.0], [2.0, 6.0, 5.0]], [[2.0, 5.0, 1.0], [2.0, 8.0, 8.0], [5.0, 1.0, 6.0]], [[1.0, 5.0, 4.0], [3.0, 3.0, 4.0], [3.0, 5.0, 8.0]]], [[[3.0, 2.0, 7.0], [1.0, 3.0, 8.0], [8.0, 2.0, 8.0]], [[8.0, 7.0, 7.0], [2.0, 2.0, 2.0], [1.0, 4.0, 1.0]], [[2.0, 3.0, 2.0], [4.0, 1.0, 1.0], [3.0, 7.0, 2.0]]]]),self.functionspace)
4418          val=Data(numarray.array([[[[6.0, 5.0, 8.0], [1.0, 7.0, 4.0], [4.0, 2.0, 5.0]]], [[[8.0, 5.0, 5.0], [7.0, 8.0, 4.0], [3.0, 4.0, 4.0]]], [[[8.0, 7.0, 1.0], [6.0, 1.0, 5.0], [6.0, 5.0, 4.0]]]]),self.functionspace)
4419          val.setTaggedValue(1,numarray.array([[[[3.0, 2.0, 4.0], [8.0, 3.0, 5.0], [4.0, 5.0, 4.0]]], [[[4.0, 6.0, 8.0], [7.0, 8.0, 8.0], [8.0, 7.0, 1.0]]], [[[1.0, 3.0, 4.0], [7.0, 4.0, 3.0], [4.0, 5.0, 7.0]]]]))
4420          arg[:3,2:,:]=val
4421          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4422          ref=msk_ref*numarray.array([[[[1.0, 4.0, 7.0], [8.0, 2.0, 1.0], [3.0, 2.0, 5.0]], [[7.0, 3.0, 8.0], [2.0, 6.0, 7.0], [6.0, 3.0, 3.0]], [[6.0, 5.0, 8.0], [1.0, 7.0, 4.0], [4.0, 2.0, 5.0]]], [[[5.0, 3.0, 7.0], [7.0, 5.0, 4.0], [5.0, 3.0, 1.0]], [[6.0, 2.0, 4.0], [1.0, 4.0, 1.0], [3.0, 4.0, 5.0]], [[8.0, 5.0, 5.0], [7.0, 8.0, 4.0], [3.0, 4.0, 4.0]]], [[[4.0, 4.0, 4.0], [2.0, 3.0, 5.0], [2.0, 6.0, 5.0]], [[2.0, 5.0, 1.0], [2.0, 8.0, 8.0], [5.0, 1.0, 6.0]], [[8.0, 7.0, 1.0], [6.0, 1.0, 5.0], [6.0, 5.0, 4.0]]], [[[3.0, 2.0, 7.0], [1.0, 3.0, 8.0], [8.0, 2.0, 8.0]], [[8.0, 7.0, 7.0], [2.0, 2.0, 2.0], [1.0, 4.0, 1.0]], [[2.0, 3.0, 2.0], [4.0, 1.0, 1.0], [3.0, 7.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 4.0, 7.0], [8.0, 2.0, 1.0], [3.0, 2.0, 5.0]], [[7.0, 3.0, 8.0], [2.0, 6.0, 7.0], [6.0, 3.0, 3.0]], [[3.0, 2.0, 4.0], [8.0, 3.0, 5.0], [4.0, 5.0, 4.0]]], [[[5.0, 3.0, 7.0], [7.0, 5.0, 4.0], [5.0, 3.0, 1.0]], [[6.0, 2.0, 4.0], [1.0, 4.0, 1.0], [3.0, 4.0, 5.0]], [[4.0, 6.0, 8.0], [7.0, 8.0, 8.0], [8.0, 7.0, 1.0]]], [[[4.0, 4.0, 4.0], [2.0, 3.0, 5.0], [2.0, 6.0, 5.0]], [[2.0, 5.0, 1.0], [2.0, 8.0, 8.0], [5.0, 1.0, 6.0]], [[1.0, 3.0, 4.0], [7.0, 4.0, 3.0], [4.0, 5.0, 7.0]]], [[[3.0, 2.0, 7.0], [1.0, 3.0, 8.0], [8.0, 2.0, 8.0]], [[8.0, 7.0, 7.0], [2.0, 2.0, 2.0], [1.0, 4.0, 1.0]], [[2.0, 3.0, 2.0], [4.0, 1.0, 1.0], [3.0, 7.0, 2.0]]]])
4423          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4424       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4425       def test_setslice_constData_rank4_taggedData_UUPP(self):
4426          arg=Data(numarray.array([[[[5.0, 4.0, 7.0], [1.0, 4.0, 2.0], [5.0, 6.0, 8.0]], [[1.0, 2.0, 4.0], [3.0, 1.0, 5.0], [3.0, 1.0, 3.0]], [[6.0, 2.0, 7.0], [1.0, 2.0, 4.0], [8.0, 2.0, 7.0]]], [[[7.0, 2.0, 7.0], [2.0, 4.0, 2.0], [5.0, 2.0, 2.0]], [[1.0, 4.0, 5.0], [3.0, 4.0, 7.0], [7.0, 7.0, 4.0]], [[1.0, 6.0, 7.0], [2.0, 6.0, 8.0], [5.0, 2.0, 3.0]]], [[[6.0, 4.0, 3.0], [6.0, 1.0, 4.0], [3.0, 2.0, 8.0]], [[4.0, 8.0, 4.0], [8.0, 5.0, 1.0], [8.0, 8.0, 2.0]], [[7.0, 1.0, 6.0], [4.0, 2.0, 8.0], [5.0, 2.0, 5.0]]], [[[4.0, 8.0, 7.0], [4.0, 6.0, 8.0], [3.0, 6.0, 3.0]], [[6.0, 4.0, 5.0], [4.0, 7.0, 1.0], [8.0, 5.0, 2.0]], [[3.0, 3.0, 8.0], [1.0, 2.0, 3.0], [1.0, 5.0, 8.0]]]]),self.functionspace)
4427          val=Data(numarray.array([[3.0, 6.0], [5.0, 6.0], [7.0, 1.0]]),self.functionspace)
4428          val.setTaggedValue(1,numarray.array([[6.0, 6.0], [3.0, 3.0], [4.0, 5.0]]))
4429          arg[:3,:2,1,1]=val
4430          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4431          ref=msk_ref*numarray.array([[[[5.0, 4.0, 7.0], [1.0, 3.0, 2.0], [5.0, 6.0, 8.0]], [[1.0, 2.0, 4.0], [3.0, 6.0, 5.0], [3.0, 1.0, 3.0]], [[6.0, 2.0, 7.0], [1.0, 2.0, 4.0], [8.0, 2.0, 7.0]]], [[[7.0, 2.0, 7.0], [2.0, 5.0, 2.0], [5.0, 2.0, 2.0]], [[1.0, 4.0, 5.0], [3.0, 6.0, 7.0], [7.0, 7.0, 4.0]], [[1.0, 6.0, 7.0], [2.0, 6.0, 8.0], [5.0, 2.0, 3.0]]], [[[6.0, 4.0, 3.0], [6.0, 7.0, 4.0], [3.0, 2.0, 8.0]], [[4.0, 8.0, 4.0], [8.0, 1.0, 1.0], [8.0, 8.0, 2.0]], [[7.0, 1.0, 6.0], [4.0, 2.0, 8.0], [5.0, 2.0, 5.0]]], [[[4.0, 8.0, 7.0], [4.0, 6.0, 8.0], [3.0, 6.0, 3.0]], [[6.0, 4.0, 5.0], [4.0, 7.0, 1.0], [8.0, 5.0, 2.0]], [[3.0, 3.0, 8.0], [1.0, 2.0, 3.0], [1.0, 5.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 4.0, 7.0], [1.0, 6.0, 2.0], [5.0, 6.0, 8.0]], [[1.0, 2.0, 4.0], [3.0, 6.0, 5.0], [3.0, 1.0, 3.0]], [[6.0, 2.0, 7.0], [1.0, 2.0, 4.0], [8.0, 2.0, 7.0]]], [[[7.0, 2.0, 7.0], [2.0, 3.0, 2.0], [5.0, 2.0, 2.0]], [[1.0, 4.0, 5.0], [3.0, 3.0, 7.0], [7.0, 7.0, 4.0]], [[1.0, 6.0, 7.0], [2.0, 6.0, 8.0], [5.0, 2.0, 3.0]]], [[[6.0, 4.0, 3.0], [6.0, 4.0, 4.0], [3.0, 2.0, 8.0]], [[4.0, 8.0, 4.0], [8.0, 5.0, 1.0], [8.0, 8.0, 2.0]], [[7.0, 1.0, 6.0], [4.0, 2.0, 8.0], [5.0, 2.0, 5.0]]], [[[4.0, 8.0, 7.0], [4.0, 6.0, 8.0], [3.0, 6.0, 3.0]], [[6.0, 4.0, 5.0], [4.0, 7.0, 1.0], [8.0, 5.0, 2.0]], [[3.0, 3.0, 8.0], [1.0, 2.0, 3.0], [1.0, 5.0, 8.0]]]])
4432          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4433       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4434       def test_setslice_constData_rank4_taggedData_RLPN(self):
4435          arg=Data(numarray.array([[[[5.0, 6.0, 1.0], [2.0, 5.0, 8.0], [8.0, 6.0, 4.0]], [[5.0, 6.0, 2.0], [3.0, 1.0, 8.0], [2.0, 5.0, 3.0]], [[2.0, 2.0, 5.0], [3.0, 8.0, 1.0], [5.0, 4.0, 7.0]]], [[[5.0, 7.0, 2.0], [6.0, 6.0, 4.0], [3.0, 3.0, 3.0]], [[1.0, 1.0, 1.0], [6.0, 6.0, 2.0], [1.0, 2.0, 2.0]], [[7.0, 2.0, 5.0], [5.0, 5.0, 3.0], [3.0, 8.0, 8.0]]], [[[6.0, 1.0, 4.0], [3.0, 8.0, 1.0], [1.0, 1.0, 5.0]], [[7.0, 6.0, 3.0], [8.0, 2.0, 7.0], [6.0, 5.0, 7.0]], [[2.0, 2.0, 1.0], [1.0, 5.0, 4.0], [5.0, 6.0, 3.0]]], [[[5.0, 2.0, 5.0], [5.0, 5.0, 6.0], [4.0, 7.0, 7.0]], [[2.0, 7.0, 5.0], [6.0, 8.0, 2.0], [4.0, 7.0, 3.0]], [[1.0, 4.0, 6.0], [7.0, 5.0, 2.0], [7.0, 2.0, 4.0]]]]),self.functionspace)
4436          val=Data(numarray.array([[[4.0, 8.0, 1.0]], [[5.0, 8.0, 1.0]]]),self.functionspace)
4437          val.setTaggedValue(1,numarray.array([[[4.0, 7.0, 1.0]], [[5.0, 2.0, 4.0]]]))
4438          arg[1:3,2:,1]=val
4439          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4440          ref=msk_ref*numarray.array([[[[5.0, 6.0, 1.0], [2.0, 5.0, 8.0], [8.0, 6.0, 4.0]], [[5.0, 6.0, 2.0], [3.0, 1.0, 8.0], [2.0, 5.0, 3.0]], [[2.0, 2.0, 5.0], [3.0, 8.0, 1.0], [5.0, 4.0, 7.0]]], [[[5.0, 7.0, 2.0], [6.0, 6.0, 4.0], [3.0, 3.0, 3.0]], [[1.0, 1.0, 1.0], [6.0, 6.0, 2.0], [1.0, 2.0, 2.0]], [[7.0, 2.0, 5.0], [4.0, 8.0, 1.0], [3.0, 8.0, 8.0]]], [[[6.0, 1.0, 4.0], [3.0, 8.0, 1.0], [1.0, 1.0, 5.0]], [[7.0, 6.0, 3.0], [8.0, 2.0, 7.0], [6.0, 5.0, 7.0]], [[2.0, 2.0, 1.0], [5.0, 8.0, 1.0], [5.0, 6.0, 3.0]]], [[[5.0, 2.0, 5.0], [5.0, 5.0, 6.0], [4.0, 7.0, 7.0]], [[2.0, 7.0, 5.0], [6.0, 8.0, 2.0], [4.0, 7.0, 3.0]], [[1.0, 4.0, 6.0], [7.0, 5.0, 2.0], [7.0, 2.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 6.0, 1.0], [2.0, 5.0, 8.0], [8.0, 6.0, 4.0]], [[5.0, 6.0, 2.0], [3.0, 1.0, 8.0], [2.0, 5.0, 3.0]], [[2.0, 2.0, 5.0], [3.0, 8.0, 1.0], [5.0, 4.0, 7.0]]], [[[5.0, 7.0, 2.0], [6.0, 6.0, 4.0], [3.0, 3.0, 3.0]], [[1.0, 1.0, 1.0], [6.0, 6.0, 2.0], [1.0, 2.0, 2.0]], [[7.0, 2.0, 5.0], [4.0, 7.0, 1.0], [3.0, 8.0, 8.0]]], [[[6.0, 1.0, 4.0], [3.0, 8.0, 1.0], [1.0, 1.0, 5.0]], [[7.0, 6.0, 3.0], [8.0, 2.0, 7.0], [6.0, 5.0, 7.0]], [[2.0, 2.0, 1.0], [5.0, 2.0, 4.0], [5.0, 6.0, 3.0]]], [[[5.0, 2.0, 5.0], [5.0, 5.0, 6.0], [4.0, 7.0, 7.0]], [[2.0, 7.0, 5.0], [6.0, 8.0, 2.0], [4.0, 7.0, 3.0]], [[1.0, 4.0, 6.0], [7.0, 5.0, 2.0], [7.0, 2.0, 4.0]]]])
4441          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4442       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4443       def test_setslice_constData_rank4_taggedData_CCUN(self):
4444          arg=Data(numarray.array([[[[7.0, 1.0, 7.0], [1.0, 5.0, 3.0], [5.0, 1.0, 1.0]], [[6.0, 1.0, 5.0], [1.0, 1.0, 3.0], [6.0, 8.0, 3.0]], [[5.0, 7.0, 3.0], [4.0, 8.0, 2.0], [2.0, 1.0, 3.0]]], [[[4.0, 2.0, 7.0], [1.0, 5.0, 4.0], [1.0, 6.0, 6.0]], [[3.0, 3.0, 3.0], [1.0, 8.0, 6.0], [6.0, 5.0, 3.0]], [[3.0, 5.0, 2.0], [7.0, 8.0, 3.0], [8.0, 4.0, 2.0]]], [[[4.0, 1.0, 3.0], [6.0, 1.0, 1.0], [3.0, 3.0, 8.0]], [[7.0, 3.0, 4.0], [3.0, 6.0, 5.0], [2.0, 1.0, 6.0]], [[5.0, 2.0, 2.0], [3.0, 7.0, 5.0], [6.0, 4.0, 2.0]]], [[[7.0, 5.0, 8.0], [7.0, 1.0, 7.0], [4.0, 2.0, 2.0]], [[8.0, 3.0, 5.0], [7.0, 1.0, 7.0], [5.0, 7.0, 2.0]], [[1.0, 6.0, 8.0], [1.0, 6.0, 3.0], [5.0, 2.0, 6.0]]]]),self.functionspace)
4445          val=Data(numarray.array([[[[5.0, 5.0, 3.0], [1.0, 4.0, 1.0]], [[5.0, 1.0, 8.0], [4.0, 3.0, 5.0]], [[2.0, 1.0, 5.0], [4.0, 6.0, 7.0]]], [[[4.0, 6.0, 4.0], [5.0, 7.0, 7.0]], [[8.0, 3.0, 1.0], [4.0, 8.0, 1.0]], [[6.0, 7.0, 8.0], [3.0, 1.0, 2.0]]], [[[2.0, 4.0, 4.0], [7.0, 2.0, 7.0]], [[3.0, 2.0, 1.0], [1.0, 7.0, 5.0]], [[5.0, 7.0, 3.0], [3.0, 2.0, 3.0]]], [[[3.0, 8.0, 4.0], [4.0, 7.0, 7.0]], [[3.0, 7.0, 1.0], [3.0, 4.0, 2.0]], [[4.0, 7.0, 4.0], [6.0, 1.0, 4.0]]]]),self.functionspace)
4446          val.setTaggedValue(1,numarray.array([[[[4.0, 5.0, 1.0], [3.0, 7.0, 5.0]], [[4.0, 7.0, 5.0], [8.0, 1.0, 3.0]], [[4.0, 3.0, 3.0], [7.0, 1.0, 8.0]]], [[[3.0, 1.0, 2.0], [5.0, 7.0, 2.0]], [[4.0, 3.0, 8.0], [3.0, 3.0, 4.0]], [[1.0, 7.0, 4.0], [3.0, 8.0, 5.0]]], [[[3.0, 6.0, 8.0], [8.0, 2.0, 2.0]], [[7.0, 4.0, 4.0], [6.0, 8.0, 7.0]], [[8.0, 7.0, 5.0], [4.0, 8.0, 2.0]]], [[[8.0, 8.0, 1.0], [8.0, 5.0, 8.0]], [[1.0, 4.0, 8.0], [3.0, 2.0, 2.0]], [[1.0, 4.0, 6.0], [5.0, 1.0, 3.0]]]]))
4447          arg[:,:,:2]=val
4448          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4449          ref=msk_ref*numarray.array([[[[5.0, 5.0, 3.0], [1.0, 4.0, 1.0], [5.0, 1.0, 1.0]], [[5.0, 1.0, 8.0], [4.0, 3.0, 5.0], [6.0, 8.0, 3.0]], [[2.0, 1.0, 5.0], [4.0, 6.0, 7.0], [2.0, 1.0, 3.0]]], [[[4.0, 6.0, 4.0], [5.0, 7.0, 7.0], [1.0, 6.0, 6.0]], [[8.0, 3.0, 1.0], [4.0, 8.0, 1.0], [6.0, 5.0, 3.0]], [[6.0, 7.0, 8.0], [3.0, 1.0, 2.0], [8.0, 4.0, 2.0]]], [[[2.0, 4.0, 4.0], [7.0, 2.0, 7.0], [3.0, 3.0, 8.0]], [[3.0, 2.0, 1.0], [1.0, 7.0, 5.0], [2.0, 1.0, 6.0]], [[5.0, 7.0, 3.0], [3.0, 2.0, 3.0], [6.0, 4.0, 2.0]]], [[[3.0, 8.0, 4.0], [4.0, 7.0, 7.0], [4.0, 2.0, 2.0]], [[3.0, 7.0, 1.0], [3.0, 4.0, 2.0], [5.0, 7.0, 2.0]], [[4.0, 7.0, 4.0], [6.0, 1.0, 4.0], [5.0, 2.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 5.0, 1.0], [3.0, 7.0, 5.0], [5.0, 1.0, 1.0]], [[4.0, 7.0, 5.0], [8.0, 1.0, 3.0], [6.0, 8.0, 3.0]], [[4.0, 3.0, 3.0], [7.0, 1.0, 8.0], [2.0, 1.0, 3.0]]], [[[3.0, 1.0, 2.0], [5.0, 7.0, 2.0], [1.0, 6.0, 6.0]], [[4.0, 3.0, 8.0], [3.0, 3.0, 4.0], [6.0, 5.0, 3.0]], [[1.0, 7.0, 4.0], [3.0, 8.0, 5.0], [8.0, 4.0, 2.0]]], [[[3.0, 6.0, 8.0], [8.0, 2.0, 2.0], [3.0, 3.0, 8.0]], [[7.0, 4.0, 4.0], [6.0, 8.0, 7.0], [2.0, 1.0, 6.0]], [[8.0, 7.0, 5.0], [4.0, 8.0, 2.0], [6.0, 4.0, 2.0]]], [[[8.0, 8.0, 1.0], [8.0, 5.0, 8.0], [4.0, 2.0, 2.0]], [[1.0, 4.0, 8.0], [3.0, 2.0, 2.0], [5.0, 7.0, 2.0]], [[1.0, 4.0, 6.0], [5.0, 1.0, 3.0], [5.0, 2.0, 6.0]]]])
4450          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4451       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4452       def test_setslice_constData_rank4_taggedData_CUCN(self):
4453          arg=Data(numarray.array([[[[3.0, 2.0, 3.0], [7.0, 4.0, 8.0], [8.0, 8.0, 7.0]], [[4.0, 1.0, 4.0], [5.0, 8.0, 2.0], [1.0, 8.0, 5.0]], [[1.0, 2.0, 1.0], [5.0, 3.0, 3.0], [5.0, 1.0, 4.0]]], [[[8.0, 4.0, 3.0], [7.0, 5.0, 7.0], [8.0, 4.0, 2.0]], [[6.0, 5.0, 5.0], [1.0, 8.0, 7.0], [8.0, 6.0, 1.0]], [[5.0, 1.0, 7.0], [4.0, 7.0, 7.0], [2.0, 6.0, 3.0]]], [[[7.0, 6.0, 7.0], [5.0, 5.0, 5.0], [7.0, 2.0, 4.0]], [[5.0, 6.0, 2.0], [4.0, 7.0, 8.0], [7.0, 8.0, 8.0]], [[5.0, 8.0, 7.0], [6.0, 6.0, 4.0], [4.0, 2.0, 8.0]]], [[[6.0, 5.0, 8.0], [6.0, 2.0, 4.0], [4.0, 2.0, 6.0]], [[6.0, 8.0, 2.0], [7.0, 6.0, 2.0], [3.0, 1.0, 3.0]], [[5.0, 8.0, 8.0], [6.0, 1.0, 3.0], [5.0, 8.0, 8.0]]]]),self.functionspace)
4454          val=Data(numarray.array([[[[7.0, 5.0, 6.0], [8.0, 4.0, 6.0], [6.0, 3.0, 2.0]], [[8.0, 8.0, 1.0], [6.0, 8.0, 3.0], [8.0, 6.0, 3.0]]], [[[2.0, 7.0, 2.0], [3.0, 8.0, 5.0], [8.0, 5.0, 1.0]], [[4.0, 3.0, 3.0], [2.0, 4.0, 6.0], [1.0, 4.0, 4.0]]], [[[3.0, 4.0, 4.0], [8.0, 6.0, 8.0], [5.0, 5.0, 2.0]], [[5.0, 7.0, 1.0], [7.0, 5.0, 3.0], [7.0, 4.0, 4.0]]], [[[7.0, 2.0, 6.0], [5.0, 2.0, 7.0], [6.0, 8.0, 6.0]], [[1.0, 6.0, 8.0], [3.0, 2.0, 7.0], [1.0, 4.0, 5.0]]]]),self.functionspace)
4455          val.setTaggedValue(1,numarray.array([[[[7.0, 7.0, 1.0], [6.0, 1.0, 7.0], [4.0, 7.0, 7.0]], [[8.0, 2.0, 4.0], [4.0, 7.0, 2.0], [3.0, 4.0, 2.0]]], [[[3.0, 1.0, 2.0], [5.0, 7.0, 6.0], [6.0, 7.0, 6.0]], [[7.0, 7.0, 4.0], [8.0, 8.0, 6.0], [7.0, 4.0, 5.0]]], [[[5.0, 1.0, 6.0], [7.0, 7.0, 8.0], [6.0, 6.0, 7.0]], [[4.0, 2.0, 5.0], [7.0, 5.0, 7.0], [8.0, 8.0, 8.0]]], [[[5.0, 3.0, 7.0], [5.0, 8.0, 5.0], [4.0, 1.0, 8.0]], [[1.0, 7.0, 2.0], [4.0, 1.0, 6.0], [8.0, 3.0, 3.0]]]]))
4456          arg[:,:2,:]=val
4457          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4458          ref=msk_ref*numarray.array([[[[7.0, 5.0, 6.0], [8.0, 4.0, 6.0], [6.0, 3.0, 2.0]], [[8.0, 8.0, 1.0], [6.0, 8.0, 3.0], [8.0, 6.0, 3.0]], [[1.0, 2.0, 1.0], [5.0, 3.0, 3.0], [5.0, 1.0, 4.0]]], [[[2.0, 7.0, 2.0], [3.0, 8.0, 5.0], [8.0, 5.0, 1.0]], [[4.0, 3.0, 3.0], [2.0, 4.0, 6.0], [1.0, 4.0, 4.0]], [[5.0, 1.0, 7.0], [4.0, 7.0, 7.0], [2.0, 6.0, 3.0]]], [[[3.0, 4.0, 4.0], [8.0, 6.0, 8.0], [5.0, 5.0, 2.0]], [[5.0, 7.0, 1.0], [7.0, 5.0, 3.0], [7.0, 4.0, 4.0]], [[5.0, 8.0, 7.0], [6.0, 6.0, 4.0], [4.0, 2.0, 8.0]]], [[[7.0, 2.0, 6.0], [5.0, 2.0, 7.0], [6.0, 8.0, 6.0]], [[1.0, 6.0, 8.0], [3.0, 2.0, 7.0], [1.0, 4.0, 5.0]], [[5.0, 8.0, 8.0], [6.0, 1.0, 3.0], [5.0, 8.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 7.0, 1.0], [6.0, 1.0, 7.0], [4.0, 7.0, 7.0]], [[8.0, 2.0, 4.0], [4.0, 7.0, 2.0], [3.0, 4.0, 2.0]], [[1.0, 2.0, 1.0], [5.0, 3.0, 3.0], [5.0, 1.0, 4.0]]], [[[3.0, 1.0, 2.0], [5.0, 7.0, 6.0], [6.0, 7.0, 6.0]], [[7.0, 7.0, 4.0], [8.0, 8.0, 6.0], [7.0, 4.0, 5.0]], [[5.0, 1.0, 7.0], [4.0, 7.0, 7.0], [2.0, 6.0, 3.0]]], [[[5.0, 1.0, 6.0], [7.0, 7.0, 8.0], [6.0, 6.0, 7.0]], [[4.0, 2.0, 5.0], [7.0, 5.0, 7.0], [8.0, 8.0, 8.0]], [[5.0, 8.0, 7.0], [6.0, 6.0, 4.0], [4.0, 2.0, 8.0]]], [[[5.0, 3.0, 7.0], [5.0, 8.0, 5.0], [4.0, 1.0, 8.0]], [[1.0, 7.0, 2.0], [4.0, 1.0, 6.0], [8.0, 3.0, 3.0]], [[5.0, 8.0, 8.0], [6.0, 1.0, 3.0], [5.0, 8.0, 8.0]]]])
4459          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4460       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4461       def test_setslice_constData_rank4_taggedData_CCCP(self):
4462          arg=Data(numarray.array([[[[7.0, 6.0, 5.0], [4.0, 6.0, 1.0], [5.0, 5.0, 5.0]], [[5.0, 1.0, 6.0], [5.0, 3.0, 4.0], [2.0, 5.0, 3.0]], [[5.0, 2.0, 5.0], [2.0, 6.0, 6.0], [5.0, 2.0, 1.0]]], [[[2.0, 5.0, 2.0], [3.0, 2.0, 2.0], [6.0, 8.0, 5.0]], [[8.0, 5.0, 8.0], [4.0, 8.0, 2.0], [8.0, 4.0, 6.0]], [[6.0, 8.0, 2.0], [7.0, 7.0, 7.0], [4.0, 6.0, 3.0]]], [[[5.0, 1.0, 7.0], [3.0, 8.0, 7.0], [1.0, 2.0, 2.0]], [[1.0, 1.0, 5.0], [5.0, 7.0, 8.0], [3.0, 6.0, 4.0]], [[1.0, 6.0, 7.0], [3.0, 7.0, 5.0], [6.0, 7.0, 6.0]]], [[[3.0, 1.0, 4.0], [5.0, 1.0, 2.0], [3.0, 3.0, 4.0]], [[1.0, 3.0, 4.0], [8.0, 8.0, 1.0], [8.0, 7.0, 4.0]], [[1.0, 7.0, 8.0], [4.0, 7.0, 7.0], [6.0, 2.0, 5.0]]]]),self.functionspace)
4463          val=Data(numarray.array([[[6.0, 3.0, 2.0], [1.0, 7.0, 2.0], [2.0, 2.0, 8.0]], [[4.0, 1.0, 7.0], [1.0, 2.0, 7.0], [1.0, 4.0, 5.0]], [[4.0, 5.0, 7.0], [1.0, 2.0, 4.0], [5.0, 6.0, 7.0]], [[7.0, 1.0, 7.0], [5.0, 1.0, 7.0], [7.0, 8.0, 2.0]]]),self.functionspace)
4464          val.setTaggedValue(1,numarray.array([[[5.0, 4.0, 1.0], [6.0, 1.0, 1.0], [6.0, 6.0, 5.0]], [[4.0, 3.0, 3.0], [1.0, 3.0, 5.0], [5.0, 6.0, 2.0]], [[6.0, 3.0, 6.0], [5.0, 5.0, 4.0], [1.0, 5.0, 6.0]], [[7.0, 3.0, 7.0], [4.0, 3.0, 5.0], [3.0, 3.0, 6.0]]]))
4465          arg[:,:,:,1]=val
4466          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4467          ref=msk_ref*numarray.array([[[[7.0, 6.0, 5.0], [4.0, 3.0, 1.0], [5.0, 2.0, 5.0]], [[5.0, 1.0, 6.0], [5.0, 7.0, 4.0], [2.0, 2.0, 3.0]], [[5.0, 2.0, 5.0], [2.0, 2.0, 6.0], [5.0, 8.0, 1.0]]], [[[2.0, 4.0, 2.0], [3.0, 1.0, 2.0], [6.0, 7.0, 5.0]], [[8.0, 1.0, 8.0], [4.0, 2.0, 2.0], [8.0, 7.0, 6.0]], [[6.0, 1.0, 2.0], [7.0, 4.0, 7.0], [4.0, 5.0, 3.0]]], [[[5.0, 4.0, 7.0], [3.0, 5.0, 7.0], [1.0, 7.0, 2.0]], [[1.0, 1.0, 5.0], [5.0, 2.0, 8.0], [3.0, 4.0, 4.0]], [[1.0, 5.0, 7.0], [3.0, 6.0, 5.0], [6.0, 7.0, 6.0]]], [[[3.0, 7.0, 4.0], [5.0, 1.0, 2.0], [3.0, 7.0, 4.0]], [[1.0, 5.0, 4.0], [8.0, 1.0, 1.0], [8.0, 7.0, 4.0]], [[1.0, 7.0, 8.0], [4.0, 8.0, 7.0], [6.0, 2.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 5.0, 5.0], [4.0, 4.0, 1.0], [5.0, 1.0, 5.0]], [[5.0, 6.0, 6.0], [5.0, 1.0, 4.0], [2.0, 1.0, 3.0]], [[5.0, 6.0, 5.0], [2.0, 6.0, 6.0], [5.0, 5.0, 1.0]]], [[[2.0, 4.0, 2.0], [3.0, 3.0, 2.0], [6.0, 3.0, 5.0]], [[8.0, 1.0, 8.0], [4.0, 3.0, 2.0], [8.0, 5.0, 6.0]], [[6.0, 5.0, 2.0], [7.0, 6.0, 7.0], [4.0, 2.0, 3.0]]], [[[5.0, 6.0, 7.0], [3.0, 3.0, 7.0], [1.0, 6.0, 2.0]], [[1.0, 5.0, 5.0], [5.0, 5.0, 8.0], [3.0, 4.0, 4.0]], [[1.0, 1.0, 7.0], [3.0, 5.0, 5.0], [6.0, 6.0, 6.0]]], [[[3.0, 7.0, 4.0], [5.0, 3.0, 2.0], [3.0, 7.0, 4.0]], [[1.0, 4.0, 4.0], [8.0, 3.0, 1.0], [8.0, 5.0, 4.0]], [[1.0, 3.0, 8.0], [4.0, 3.0, 7.0], [6.0, 6.0, 5.0]]]])
4468          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4469       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4470       def test_setslice_constData_rank4_taggedData_UCCN(self):
4471          arg=Data(numarray.array([[[[3.0, 7.0, 1.0], [8.0, 2.0, 3.0], [4.0, 7.0, 1.0]], [[6.0, 5.0, 6.0], [2.0, 7.0, 7.0], [4.0, 5.0, 3.0]], [[6.0, 2.0, 4.0], [3.0, 8.0, 2.0], [6.0, 7.0, 1.0]]], [[[5.0, 8.0, 8.0], [4.0, 1.0, 5.0], [3.0, 2.0, 4.0]], [[8.0, 6.0, 1.0], [1.0, 4.0, 1.0], [5.0, 6.0, 1.0]], [[2.0, 4.0, 2.0], [8.0, 7.0, 8.0], [5.0, 5.0, 4.0]]], [[[6.0, 3.0, 8.0], [1.0, 8.0, 6.0], [6.0, 4.0, 5.0]], [[6.0, 1.0, 2.0], [6.0, 4.0, 3.0], [7.0, 6.0, 7.0]], [[5.0, 8.0, 1.0], [5.0, 1.0, 2.0], [6.0, 1.0, 8.0]]], [[[5.0, 4.0, 1.0], [6.0, 3.0, 4.0], [1.0, 1.0, 1.0]], [[2.0, 7.0, 3.0], [6.0, 5.0, 3.0], [5.0, 5.0, 7.0]], [[5.0, 5.0, 1.0], [2.0, 2.0, 8.0], [5.0, 1.0, 8.0]]]]),self.functionspace)
4472          val=Data(numarray.array([[[[1.0, 6.0, 7.0], [1.0, 4.0, 1.0], [3.0, 2.0, 3.0]], [[6.0, 2.0, 8.0], [7.0, 4.0, 1.0], [7.0, 7.0, 2.0]], [[7.0, 5.0, 2.0], [4.0, 4.0, 4.0], [3.0, 7.0, 3.0]]], [[[4.0, 7.0, 3.0], [8.0, 7.0, 7.0], [7.0, 5.0, 5.0]], [[3.0, 3.0, 6.0], [8.0, 4.0, 7.0], [4.0, 5.0, 6.0]], [[7.0, 2.0, 1.0], [6.0, 3.0, 6.0], [1.0, 2.0, 4.0]]], [[[8.0, 3.0, 6.0], [3.0, 1.0, 7.0], [7.0, 8.0, 3.0]], [[5.0, 3.0, 6.0], [7.0, 8.0, 5.0], [3.0, 5.0, 7.0]], [[8.0, 3.0, 1.0], [7.0, 4.0, 1.0], [6.0, 6.0, 1.0]]]]),self.functionspace)
4473          val.setTaggedValue(1,numarray.array([[[[1.0, 6.0, 4.0], [3.0, 8.0, 2.0], [3.0, 8.0, 5.0]], [[4.0, 4.0, 3.0], [4.0, 6.0, 3.0], [7.0, 3.0, 4.0]], [[1.0, 3.0, 5.0], [4.0, 5.0, 8.0], [8.0, 6.0, 4.0]]], [[[3.0, 4.0, 4.0], [1.0, 6.0, 5.0], [8.0, 7.0, 6.0]], [[4.0, 3.0, 3.0], [3.0, 8.0, 3.0], [3.0, 2.0, 7.0]], [[8.0, 3.0, 2.0], [3.0, 1.0, 7.0], [8.0, 3.0, 5.0]]], [[[5.0, 2.0, 1.0], [2.0, 3.0, 7.0], [3.0, 7.0, 4.0]], [[6.0, 4.0, 7.0], [4.0, 3.0, 8.0], [3.0, 7.0, 4.0]], [[3.0, 2.0, 3.0], [2.0, 5.0, 1.0], [5.0, 6.0, 3.0]]]]))
4474          arg[:3,:,:]=val
4475          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4476          ref=msk_ref*numarray.array([[[[1.0, 6.0, 7.0], [1.0, 4.0, 1.0], [3.0, 2.0, 3.0]], [[6.0, 2.0, 8.0], [7.0, 4.0, 1.0], [7.0, 7.0, 2.0]], [[7.0, 5.0, 2.0], [4.0, 4.0, 4.0], [3.0, 7.0, 3.0]]], [[[4.0, 7.0, 3.0], [8.0, 7.0, 7.0], [7.0, 5.0, 5.0]], [[3.0, 3.0, 6.0], [8.0, 4.0, 7.0], [4.0, 5.0, 6.0]], [[7.0, 2.0, 1.0], [6.0, 3.0, 6.0], [1.0, 2.0, 4.0]]], [[[8.0, 3.0, 6.0], [3.0, 1.0, 7.0], [7.0, 8.0, 3.0]], [[5.0, 3.0, 6.0], [7.0, 8.0, 5.0], [3.0, 5.0, 7.0]], [[8.0, 3.0, 1.0], [7.0, 4.0, 1.0], [6.0, 6.0, 1.0]]], [[[5.0, 4.0, 1.0], [6.0, 3.0, 4.0], [1.0, 1.0, 1.0]], [[2.0, 7.0, 3.0], [6.0, 5.0, 3.0], [5.0, 5.0, 7.0]], [[5.0, 5.0, 1.0], [2.0, 2.0, 8.0], [5.0, 1.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 6.0, 4.0], [3.0, 8.0, 2.0], [3.0, 8.0, 5.0]], [[4.0, 4.0, 3.0], [4.0, 6.0, 3.0], [7.0, 3.0, 4.0]], [[1.0, 3.0, 5.0], [4.0, 5.0, 8.0], [8.0, 6.0, 4.0]]], [[[3.0, 4.0, 4.0], [1.0, 6.0, 5.0], [8.0, 7.0, 6.0]], [[4.0, 3.0, 3.0], [3.0, 8.0, 3.0], [3.0, 2.0, 7.0]], [[8.0, 3.0, 2.0], [3.0, 1.0, 7.0], [8.0, 3.0, 5.0]]], [[[5.0, 2.0, 1.0], [2.0, 3.0, 7.0], [3.0, 7.0, 4.0]], [[6.0, 4.0, 7.0], [4.0, 3.0, 8.0], [3.0, 7.0, 4.0]], [[3.0, 2.0, 3.0], [2.0, 5.0, 1.0], [5.0, 6.0, 3.0]]], [[[5.0, 4.0, 1.0], [6.0, 3.0, 4.0], [1.0, 1.0, 1.0]], [[2.0, 7.0, 3.0], [6.0, 5.0, 3.0], [5.0, 5.0, 7.0]], [[5.0, 5.0, 1.0], [2.0, 2.0, 8.0], [5.0, 1.0, 8.0]]]])
4477          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4478       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4479       def test_setslice_constData_rank4_taggedData_CRCC(self):
4480          arg=Data(numarray.array([[[[2.0, 1.0, 7.0], [7.0, 4.0, 5.0], [3.0, 6.0, 2.0]], [[2.0, 4.0, 6.0], [5.0, 1.0, 6.0], [2.0, 8.0, 2.0]], [[6.0, 7.0, 6.0], [4.0, 7.0, 2.0], [6.0, 8.0, 8.0]]], [[[4.0, 1.0, 3.0], [5.0, 3.0, 7.0], [1.0, 2.0, 4.0]], [[4.0, 4.0, 7.0], [8.0, 3.0, 4.0], [1.0, 7.0, 1.0]], [[5.0, 4.0, 8.0], [8.0, 8.0, 2.0], [5.0, 1.0, 4.0]]], [[[5.0, 2.0, 6.0], [3.0, 2.0, 3.0], [6.0, 5.0, 2.0]], [[2.0, 7.0, 6.0], [1.0, 5.0, 3.0], [8.0, 7.0, 3.0]], [[7.0, 5.0, 6.0], [7.0, 8.0, 8.0], [3.0, 8.0, 4.0]]], [[[1.0, 2.0, 6.0], [1.0, 3.0, 2.0], [7.0, 1.0, 6.0]], [[5.0, 4.0, 1.0], [7.0, 3.0, 3.0], [1.0, 1.0, 3.0]], [[4.0, 3.0, 6.0], [6.0, 3.0, 3.0], [3.0, 3.0, 4.0]]]]),self.functionspace)
4481          val=Data(numarray.array([[[[6.0, 8.0, 3.0], [2.0, 5.0, 1.0], [3.0, 7.0, 1.0]]], [[[6.0, 2.0, 6.0], [1.0, 3.0, 8.0], [3.0, 2.0, 3.0]]], [[[4.0, 6.0, 6.0], [2.0, 1.0, 5.0], [2.0, 2.0, 6.0]]], [[[8.0, 8.0, 3.0], [6.0, 2.0, 3.0], [3.0, 7.0, 8.0]]]]),self.functionspace)
4482          val.setTaggedValue(1,numarray.array([[[[6.0, 4.0, 2.0], [8.0, 1.0, 1.0], [4.0, 3.0, 7.0]]], [[[7.0, 5.0, 2.0], [2.0, 3.0, 5.0], [8.0, 3.0, 3.0]]], [[[5.0, 6.0, 7.0], [1.0, 4.0, 8.0], [6.0, 7.0, 1.0]]], [[[8.0, 4.0, 4.0], [7.0, 1.0, 7.0], [3.0, 4.0, 5.0]]]]))
4483          arg[:,1:2,:,:]=val
4484          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4485          ref=msk_ref*numarray.array([[[[2.0, 1.0, 7.0], [7.0, 4.0, 5.0], [3.0, 6.0, 2.0]], [[6.0, 8.0, 3.0], [2.0, 5.0, 1.0], [3.0, 7.0, 1.0]], [[6.0, 7.0, 6.0], [4.0, 7.0, 2.0], [6.0, 8.0, 8.0]]], [[[4.0, 1.0, 3.0], [5.0, 3.0, 7.0], [1.0, 2.0, 4.0]], [[6.0, 2.0, 6.0], [1.0, 3.0, 8.0], [3.0, 2.0, 3.0]], [[5.0, 4.0, 8.0], [8.0, 8.0, 2.0], [5.0, 1.0, 4.0]]], [[[5.0, 2.0, 6.0], [3.0, 2.0, 3.0], [6.0, 5.0, 2.0]], [[4.0, 6.0, 6.0], [2.0, 1.0, 5.0], [2.0, 2.0, 6.0]], [[7.0, 5.0, 6.0], [7.0, 8.0, 8.0], [3.0, 8.0, 4.0]]], [[[1.0, 2.0, 6.0], [1.0, 3.0, 2.0], [7.0, 1.0, 6.0]], [[8.0, 8.0, 3.0], [6.0, 2.0, 3.0], [3.0, 7.0, 8.0]], [[4.0, 3.0, 6.0], [6.0, 3.0, 3.0], [3.0, 3.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 1.0, 7.0], [7.0, 4.0, 5.0], [3.0, 6.0, 2.0]], [[6.0, 4.0, 2.0], [8.0, 1.0, 1.0], [4.0, 3.0, 7.0]], [[6.0, 7.0, 6.0], [4.0, 7.0, 2.0], [6.0, 8.0, 8.0]]], [[[4.0, 1.0, 3.0], [5.0, 3.0, 7.0], [1.0, 2.0, 4.0]], [[7.0, 5.0, 2.0], [2.0, 3.0, 5.0], [8.0, 3.0, 3.0]], [[5.0, 4.0, 8.0], [8.0, 8.0, 2.0], [5.0, 1.0, 4.0]]], [[[5.0, 2.0, 6.0], [3.0, 2.0, 3.0], [6.0, 5.0, 2.0]], [[5.0, 6.0, 7.0], [1.0, 4.0, 8.0], [6.0, 7.0, 1.0]], [[7.0, 5.0, 6.0], [7.0, 8.0, 8.0], [3.0, 8.0, 4.0]]], [[[1.0, 2.0, 6.0], [1.0, 3.0, 2.0], [7.0, 1.0, 6.0]], [[8.0, 4.0, 4.0], [7.0, 1.0, 7.0], [3.0, 4.0, 5.0]], [[4.0, 3.0, 6.0], [6.0, 3.0, 3.0], [3.0, 3.0, 4.0]]]])
4486          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4487       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4488       def test_setslice_constData_rank4_taggedData_UURU(self):
4489          arg=Data(numarray.array([[[[8.0, 3.0, 7.0], [5.0, 5.0, 8.0], [4.0, 7.0, 8.0]], [[4.0, 8.0, 8.0], [5.0, 4.0, 2.0], [3.0, 8.0, 1.0]], [[7.0, 4.0, 4.0], [5.0, 4.0, 7.0], [1.0, 8.0, 2.0]]], [[[7.0, 4.0, 1.0], [4.0, 1.0, 1.0], [4.0, 3.0, 7.0]], [[8.0, 5.0, 7.0], [7.0, 7.0, 5.0], [4.0, 8.0, 5.0]], [[3.0, 4.0, 7.0], [4.0, 8.0, 2.0], [1.0, 6.0, 4.0]]], [[[4.0, 8.0, 3.0], [5.0, 1.0, 1.0], [2.0, 5.0, 7.0]], [[1.0, 1.0, 6.0], [8.0, 5.0, 7.0], [6.0, 1.0, 2.0]], [[7.0, 1.0, 5.0], [3.0, 8.0, 5.0], [8.0, 6.0, 7.0]]], [[[2.0, 6.0, 5.0], [2.0, 6.0, 8.0], [7.0, 2.0, 2.0]], [[5.0, 6.0, 8.0], [7.0, 5.0, 7.0], [3.0, 6.0, 6.0]], [[3.0, 1.0, 5.0], [8.0, 8.0, 6.0], [6.0, 6.0, 6.0]]]]),self.functionspace)
4490          val=Data(numarray.array([[[[5.0, 3.0]], [[6.0, 8.0]]], [[[7.0, 7.0]], [[8.0, 7.0]]], [[[3.0, 1.0]], [[3.0, 8.0]]]]),self.functionspace)
4491          val.setTaggedValue(1,numarray.array([[[[1.0, 4.0]], [[8.0, 5.0]]], [[[8.0, 6.0]], [[1.0, 8.0]]], [[[3.0, 7.0]], [[8.0, 7.0]]]]))
4492          arg[:3,:2,1:2,:2]=val
4493          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4494          ref=msk_ref*numarray.array([[[[8.0, 3.0, 7.0], [5.0, 3.0, 8.0], [4.0, 7.0, 8.0]], [[4.0, 8.0, 8.0], [6.0, 8.0, 2.0], [3.0, 8.0, 1.0]], [[7.0, 4.0, 4.0], [5.0, 4.0, 7.0], [1.0, 8.0, 2.0]]], [[[7.0, 4.0, 1.0], [7.0, 7.0, 1.0], [4.0, 3.0, 7.0]], [[8.0, 5.0, 7.0], [8.0, 7.0, 5.0], [4.0, 8.0, 5.0]], [[3.0, 4.0, 7.0], [4.0, 8.0, 2.0], [1.0, 6.0, 4.0]]], [[[4.0, 8.0, 3.0], [3.0, 1.0, 1.0], [2.0, 5.0, 7.0]], [[1.0, 1.0, 6.0], [3.0, 8.0, 7.0], [6.0, 1.0, 2.0]], [[7.0, 1.0, 5.0], [3.0, 8.0, 5.0], [8.0, 6.0, 7.0]]], [[[2.0, 6.0, 5.0], [2.0, 6.0, 8.0], [7.0, 2.0, 2.0]], [[5.0, 6.0, 8.0], [7.0, 5.0, 7.0], [3.0, 6.0, 6.0]], [[3.0, 1.0, 5.0], [8.0, 8.0, 6.0], [6.0, 6.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 3.0, 7.0], [1.0, 4.0, 8.0], [4.0, 7.0, 8.0]], [[4.0, 8.0, 8.0], [8.0, 5.0, 2.0], [3.0, 8.0, 1.0]], [[7.0, 4.0, 4.0], [5.0, 4.0, 7.0], [1.0, 8.0, 2.0]]], [[[7.0, 4.0, 1.0], [8.0, 6.0, 1.0], [4.0, 3.0, 7.0]], [[8.0, 5.0, 7.0], [1.0, 8.0, 5.0], [4.0, 8.0, 5.0]], [[3.0, 4.0, 7.0], [4.0, 8.0, 2.0], [1.0, 6.0, 4.0]]], [[[4.0, 8.0, 3.0], [3.0, 7.0, 1.0], [2.0, 5.0, 7.0]], [[1.0, 1.0, 6.0], [8.0, 7.0, 7.0], [6.0, 1.0, 2.0]], [[7.0, 1.0, 5.0], [3.0, 8.0, 5.0], [8.0, 6.0, 7.0]]], [[[2.0, 6.0, 5.0], [2.0, 6.0, 8.0], [7.0, 2.0, 2.0]], [[5.0, 6.0, 8.0], [7.0, 5.0, 7.0], [3.0, 6.0, 6.0]], [[3.0, 1.0, 5.0], [8.0, 8.0, 6.0], [6.0, 6.0, 6.0]]]])
4495          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4496       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4497       def test_setslice_constData_rank4_taggedData_PRCC(self):
4498          arg=Data(numarray.array([[[[8.0, 3.0, 1.0], [5.0, 7.0, 3.0], [4.0, 5.0, 2.0]], [[7.0, 1.0, 5.0], [7.0, 4.0, 6.0], [2.0, 4.0, 2.0]], [[2.0, 5.0, 5.0], [3.0, 2.0, 4.0], [8.0, 4.0, 8.0]]], [[[6.0, 7.0, 8.0], [7.0, 1.0, 4.0], [7.0, 2.0, 5.0]], [[5.0, 3.0, 3.0], [3.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[3.0, 4.0, 1.0], [1.0, 3.0, 2.0], [1.0, 3.0, 8.0]]], [[[4.0, 1.0, 8.0], [1.0, 6.0, 7.0], [3.0, 6.0, 8.0]], [[2.0, 4.0, 2.0], [2.0, 6.0, 8.0], [5.0, 5.0, 3.0]], [[4.0, 1.0, 2.0], [2.0, 4.0, 5.0], [6.0, 5.0, 2.0]]], [[[1.0, 4.0, 6.0], [6.0, 3.0, 3.0], [4.0, 5.0, 7.0]], [[8.0, 6.0, 5.0], [1.0, 7.0, 8.0], [3.0, 2.0, 8.0]], [[7.0, 8.0, 1.0], [3.0, 3.0, 8.0], [7.0, 3.0, 8.0]]]]),self.functionspace)
4499          val=Data(numarray.array([[[2.0, 6.0, 2.0], [3.0, 6.0, 3.0], [1.0, 1.0, 5.0]]]),self.functionspace)
4500          val.setTaggedValue(1,numarray.array([[[1.0, 2.0, 7.0], [5.0, 7.0, 1.0], [6.0, 2.0, 3.0]]]))
4501          arg[2,1:2,:,:]=val
4502          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4503          ref=msk_ref*numarray.array([[[[8.0, 3.0, 1.0], [5.0, 7.0, 3.0], [4.0, 5.0, 2.0]], [[7.0, 1.0, 5.0], [7.0, 4.0, 6.0], [2.0, 4.0, 2.0]], [[2.0, 5.0, 5.0], [3.0, 2.0, 4.0], [8.0, 4.0, 8.0]]], [[[6.0, 7.0, 8.0], [7.0, 1.0, 4.0], [7.0, 2.0, 5.0]], [[5.0, 3.0, 3.0], [3.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[3.0, 4.0, 1.0], [1.0, 3.0, 2.0], [1.0, 3.0, 8.0]]], [[[4.0, 1.0, 8.0], [1.0, 6.0, 7.0], [3.0, 6.0, 8.0]], [[2.0, 6.0, 2.0], [3.0, 6.0, 3.0], [1.0, 1.0, 5.0]], [[4.0, 1.0, 2.0], [2.0, 4.0, 5.0], [6.0, 5.0, 2.0]]], [[[1.0, 4.0, 6.0], [6.0, 3.0, 3.0], [4.0, 5.0, 7.0]], [[8.0, 6.0, 5.0], [1.0, 7.0, 8.0], [3.0, 2.0, 8.0]], [[7.0, 8.0, 1.0], [3.0, 3.0, 8.0], [7.0, 3.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 3.0, 1.0], [5.0, 7.0, 3.0], [4.0, 5.0, 2.0]], [[7.0, 1.0, 5.0], [7.0, 4.0, 6.0], [2.0, 4.0, 2.0]], [[2.0, 5.0, 5.0], [3.0, 2.0, 4.0], [8.0, 4.0, 8.0]]], [[[6.0, 7.0, 8.0], [7.0, 1.0, 4.0], [7.0, 2.0, 5.0]], [[5.0, 3.0, 3.0], [3.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[3.0, 4.0, 1.0], [1.0, 3.0, 2.0], [1.0, 3.0, 8.0]]], [[[4.0, 1.0, 8.0], [1.0, 6.0, 7.0], [3.0, 6.0, 8.0]], [[1.0, 2.0, 7.0], [5.0, 7.0, 1.0], [6.0, 2.0, 3.0]], [[4.0, 1.0, 2.0], [2.0, 4.0, 5.0], [6.0, 5.0, 2.0]]], [[[1.0, 4.0, 6.0], [6.0, 3.0, 3.0], [4.0, 5.0, 7.0]], [[8.0, 6.0, 5.0], [1.0, 7.0, 8.0], [3.0, 2.0, 8.0]], [[7.0, 8.0, 1.0], [3.0, 3.0, 8.0], [7.0, 3.0, 8.0]]]])
4504          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4505       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4506       def test_setslice_constData_rank4_taggedData_PLLL(self):
4507          arg=Data(numarray.array([[[[4.0, 7.0, 2.0], [4.0, 7.0, 3.0], [5.0, 4.0, 4.0]], [[7.0, 3.0, 5.0], [4.0, 1.0, 7.0], [6.0, 7.0, 1.0]], [[3.0, 2.0, 8.0], [5.0, 8.0, 3.0], [7.0, 2.0, 5.0]]], [[[4.0, 4.0, 1.0], [8.0, 6.0, 4.0], [7.0, 4.0, 3.0]], [[4.0, 7.0, 3.0], [3.0, 3.0, 5.0], [6.0, 3.0, 3.0]], [[4.0, 6.0, 1.0], [6.0, 1.0, 4.0], [4.0, 6.0, 8.0]]], [[[3.0, 6.0, 6.0], [4.0, 4.0, 2.0], [4.0, 2.0, 3.0]], [[8.0, 7.0, 6.0], [1.0, 5.0, 8.0], [3.0, 8.0, 7.0]], [[5.0, 8.0, 4.0], [8.0, 7.0, 3.0], [4.0, 2.0, 8.0]]], [[[2.0, 5.0, 3.0], [4.0, 1.0, 2.0], [7.0, 5.0, 3.0]], [[1.0, 3.0, 8.0], [2.0, 6.0, 4.0], [8.0, 3.0, 5.0]], [[4.0, 2.0, 3.0], [6.0, 4.0, 8.0], [4.0, 6.0, 5.0]]]]),self.functionspace)
4508          val=Data(numarray.array([[[4.0]]]),self.functionspace)
4509          val.setTaggedValue(1,numarray.array([[[6.0]]]))
4510          arg[2,2:,2:,2:]=val
4511          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4512          ref=msk_ref*numarray.array([[[[4.0, 7.0, 2.0], [4.0, 7.0, 3.0], [5.0, 4.0, 4.0]], [[7.0, 3.0, 5.0], [4.0, 1.0, 7.0], [6.0, 7.0, 1.0]], [[3.0, 2.0, 8.0], [5.0, 8.0, 3.0], [7.0, 2.0, 5.0]]], [[[4.0, 4.0, 1.0], [8.0, 6.0, 4.0], [7.0, 4.0, 3.0]], [[4.0, 7.0, 3.0], [3.0, 3.0, 5.0], [6.0, 3.0, 3.0]], [[4.0, 6.0, 1.0], [6.0, 1.0, 4.0], [4.0, 6.0, 8.0]]], [[[3.0, 6.0, 6.0], [4.0, 4.0, 2.0], [4.0, 2.0, 3.0]], [[8.0, 7.0, 6.0], [1.0, 5.0, 8.0], [3.0, 8.0, 7.0]], [[5.0, 8.0, 4.0], [8.0, 7.0, 3.0], [4.0, 2.0, 4.0]]], [[[2.0, 5.0, 3.0], [4.0, 1.0, 2.0], [7.0, 5.0, 3.0]], [[1.0, 3.0, 8.0], [2.0, 6.0, 4.0], [8.0, 3.0, 5.0]], [[4.0, 2.0, 3.0], [6.0, 4.0, 8.0], [4.0, 6.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 7.0, 2.0], [4.0, 7.0, 3.0], [5.0, 4.0, 4.0]], [[7.0, 3.0, 5.0], [4.0, 1.0, 7.0], [6.0, 7.0, 1.0]], [[3.0, 2.0, 8.0], [5.0, 8.0, 3.0], [7.0, 2.0, 5.0]]], [[[4.0, 4.0, 1.0], [8.0, 6.0, 4.0], [7.0, 4.0, 3.0]], [[4.0, 7.0, 3.0], [3.0, 3.0, 5.0], [6.0, 3.0, 3.0]], [[4.0, 6.0, 1.0], [6.0, 1.0, 4.0], [4.0, 6.0, 8.0]]], [[[3.0, 6.0, 6.0], [4.0, 4.0, 2.0], [4.0, 2.0, 3.0]], [[8.0, 7.0, 6.0], [1.0, 5.0, 8.0], [3.0, 8.0, 7.0]], [[5.0, 8.0, 4.0], [8.0, 7.0, 3.0], [4.0, 2.0, 6.0]]], [[[2.0, 5.0, 3.0], [4.0, 1.0, 2.0], [7.0, 5.0, 3.0]], [[1.0, 3.0, 8.0], [2.0, 6.0, 4.0], [8.0, 3.0, 5.0]], [[4.0, 2.0, 3.0], [6.0, 4.0, 8.0], [4.0, 6.0, 5.0]]]])
4513          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4514       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4515       def test_setslice_constData_rank4_taggedData_LUCN(self):
4516          arg=Data(numarray.array([[[[8.0, 2.0, 3.0], [8.0, 4.0, 8.0], [2.0, 1.0, 6.0]], [[2.0, 1.0, 5.0], [2.0, 7.0, 5.0], [1.0, 2.0, 4.0]], [[1.0, 4.0, 4.0], [3.0, 8.0, 7.0], [6.0, 2.0, 5.0]]], [[[5.0, 5.0, 2.0], [4.0, 6.0, 6.0], [4.0, 2.0, 3.0]], [[2.0, 4.0, 6.0], [6.0, 4.0, 8.0], [3.0, 1.0, 1.0]], [[1.0, 6.0, 1.0], [2.0, 1.0, 7.0], [1.0, 2.0, 4.0]]], [[[5.0, 8.0, 5.0], [8.0, 6.0, 6.0], [7.0, 5.0, 8.0]], [[6.0, 3.0, 1.0], [2.0, 5.0, 4.0], [4.0, 8.0, 2.0]], [[8.0, 5.0, 5.0], [8.0, 5.0, 3.0], [8.0, 3.0, 7.0]]], [[[1.0, 5.0, 7.0], [7.0, 3.0, 5.0], [4.0, 2.0, 7.0]], [[7.0, 8.0, 6.0], [8.0, 4.0, 4.0], [5.0, 8.0, 6.0]], [[7.0, 8.0, 7.0], [6.0, 8.0, 7.0], [6.0, 4.0, 5.0]]]]),self.functionspace)
4517          val=Data(numarray.array([[[[6.0, 7.0, 3.0], [1.0, 3.0, 6.0], [6.0, 8.0, 5.0]], [[4.0, 5.0, 7.0], [4.0, 4.0, 2.0], [5.0, 2.0, 3.0]]], [[[2.0, 7.0, 2.0], [5.0, 4.0, 1.0], [2.0, 4.0, 2.0]], [[7.0, 2.0, 5.0], [6.0, 6.0, 8.0], [1.0, 8.0, 1.0]]]]),self.functionspace)
4518          val.setTaggedValue(1,numarray.array([[[[3.0, 5.0, 8.0], [3.0, 6.0, 8.0], [1.0, 1.0, 4.0]], [[4.0, 1.0, 3.0], [4.0, 5.0, 3.0], [7.0, 2.0, 6.0]]], [[[6.0, 8.0, 6.0], [2.0, 3.0, 7.0], [4.0, 3.0, 2.0]], [[6.0, 5.0, 7.0], [7.0, 4.0, 1.0], [4.0, 1.0, 3.0]]]]))
4519          arg[2:,:2,:]=val
4520          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4521          ref=msk_ref*numarray.array([[[[8.0, 2.0, 3.0], [8.0, 4.0, 8.0], [2.0, 1.0, 6.0]], [[2.0, 1.0, 5.0], [2.0, 7.0, 5.0], [1.0, 2.0, 4.0]], [[1.0, 4.0, 4.0], [3.0, 8.0, 7.0], [6.0, 2.0, 5.0]]], [[[5.0, 5.0, 2.0], [4.0, 6.0, 6.0], [4.0, 2.0, 3.0]], [[2.0, 4.0, 6.0], [6.0, 4.0, 8.0], [3.0, 1.0, 1.0]], [[1.0, 6.0, 1.0], [2.0, 1.0, 7.0], [1.0, 2.0, 4.0]]], [[[6.0, 7.0, 3.0], [1.0, 3.0, 6.0], [6.0, 8.0, 5.0]], [[4.0, 5.0, 7.0], [4.0, 4.0, 2.0], [5.0, 2.0, 3.0]], [[8.0, 5.0, 5.0], [8.0, 5.0, 3.0], [8.0, 3.0, 7.0]]], [[[2.0, 7.0, 2.0], [5.0, 4.0, 1.0], [2.0, 4.0, 2.0]], [[7.0, 2.0, 5.0], [6.0, 6.0, 8.0], [1.0, 8.0, 1.0]], [[7.0, 8.0, 7.0], [6.0, 8.0, 7.0], [6.0, 4.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 2.0, 3.0], [8.0, 4.0, 8.0], [2.0, 1.0, 6.0]], [[2.0, 1.0, 5.0], [2.0, 7.0, 5.0], [1.0, 2.0, 4.0]], [[1.0, 4.0, 4.0], [3.0, 8.0, 7.0], [6.0, 2.0, 5.0]]], [[[5.0, 5.0, 2.0], [4.0, 6.0, 6.0], [4.0, 2.0, 3.0]], [[2.0, 4.0, 6.0], [6.0, 4.0, 8.0], [3.0, 1.0, 1.0]], [[1.0, 6.0, 1.0], [2.0, 1.0, 7.0], [1.0, 2.0, 4.0]]], [[[3.0, 5.0, 8.0], [3.0, 6.0, 8.0], [1.0, 1.0, 4.0]], [[4.0, 1.0, 3.0], [4.0, 5.0, 3.0], [7.0, 2.0, 6.0]], [[8.0, 5.0, 5.0], [8.0, 5.0, 3.0], [8.0, 3.0, 7.0]]], [[[6.0, 8.0, 6.0], [2.0, 3.0, 7.0], [4.0, 3.0, 2.0]], [[6.0, 5.0, 7.0], [7.0, 4.0, 1.0], [4.0, 1.0, 3.0]], [[7.0, 8.0, 7.0], [6.0, 8.0, 7.0], [6.0, 4.0, 5.0]]]])
4522          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4523       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4524       def test_setslice_constData_rank4_taggedData_RCPN(self):
4525          arg=Data(numarray.array([[[[3.0, 4.0, 8.0], [3.0, 6.0, 6.0], [8.0, 2.0, 8.0]], [[8.0, 4.0, 5.0], [8.0, 1.0, 1.0], [1.0, 3.0, 1.0]], [[5.0, 3.0, 5.0], [8.0, 8.0, 1.0], [8.0, 7.0, 4.0]]], [[[8.0, 6.0, 7.0], [4.0, 6.0, 3.0], [4.0, 4.0, 1.0]], [[1.0, 1.0, 3.0], [6.0, 8.0, 3.0], [2.0, 5.0, 3.0]], [[5.0, 3.0, 8.0], [1.0, 8.0, 4.0], [4.0, 8.0, 4.0]]], [[[7.0, 7.0, 6.0], [7.0, 5.0, 8.0], [8.0, 8.0, 5.0]], [[3.0, 5.0, 7.0], [4.0, 5.0, 5.0], [6.0, 5.0, 6.0]], [[7.0, 6.0, 3.0], [5.0, 5.0, 5.0], [4.0, 5.0, 3.0]]], [[[8.0, 1.0, 6.0], [4.0, 8.0, 5.0], [6.0, 2.0, 5.0]], [[2.0, 4.0, 2.0], [7.0, 4.0, 6.0], [5.0, 5.0, 8.0]], [[5.0, 5.0, 5.0], [5.0, 3.0, 6.0], [2.0, 2.0, 1.0]]]]),self.functionspace)
4526          val=Data(numarray.array([[[3.0, 8.0, 3.0], [3.0, 5.0, 4.0], [1.0, 1.0, 2.0]], [[5.0, 3.0, 2.0], [5.0, 6.0, 5.0], [5.0, 3.0, 6.0]]]),self.functionspace)
4527          val.setTaggedValue(1,numarray.array([[[5.0, 1.0, 8.0], [5.0, 1.0, 8.0], [8.0, 6.0, 6.0]], [[7.0, 8.0, 4.0], [1.0, 3.0, 1.0], [8.0, 2.0, 3.0]]]))
4528          arg[1:3,:,1]=val
4529          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4530          ref=msk_ref*numarray.array([[[[3.0, 4.0, 8.0], [3.0, 6.0, 6.0], [8.0, 2.0, 8.0]], [[8.0, 4.0, 5.0], [8.0, 1.0, 1.0], [1.0, 3.0, 1.0]], [[5.0, 3.0, 5.0], [8.0, 8.0, 1.0], [8.0, 7.0, 4.0]]], [[[8.0, 6.0, 7.0], [3.0, 8.0, 3.0], [4.0, 4.0, 1.0]], [[1.0, 1.0, 3.0], [3.0, 5.0, 4.0], [2.0, 5.0, 3.0]], [[5.0, 3.0, 8.0], [1.0, 1.0, 2.0], [4.0, 8.0, 4.0]]], [[[7.0, 7.0, 6.0], [5.0, 3.0, 2.0], [8.0, 8.0, 5.0]], [[3.0, 5.0, 7.0], [5.0, 6.0, 5.0], [6.0, 5.0, 6.0]], [[7.0, 6.0, 3.0], [5.0, 3.0, 6.0], [4.0, 5.0, 3.0]]], [[[8.0, 1.0, 6.0], [4.0, 8.0, 5.0], [6.0, 2.0, 5.0]], [[2.0, 4.0, 2.0], [7.0, 4.0, 6.0], [5.0, 5.0, 8.0]], [[5.0, 5.0, 5.0], [5.0, 3.0, 6.0], [2.0, 2.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 4.0, 8.0], [3.0, 6.0, 6.0], [8.0, 2.0, 8.0]], [[8.0, 4.0, 5.0], [8.0, 1.0, 1.0], [1.0, 3.0, 1.0]], [[5.0, 3.0, 5.0], [8.0, 8.0, 1.0], [8.0, 7.0, 4.0]]], [[[8.0, 6.0, 7.0], [5.0, 1.0, 8.0], [4.0, 4.0, 1.0]], [[1.0, 1.0, 3.0], [5.0, 1.0, 8.0], [2.0, 5.0, 3.0]], [[5.0, 3.0, 8.0], [8.0, 6.0, 6.0], [4.0, 8.0, 4.0]]], [[[7.0, 7.0, 6.0], [7.0, 8.0, 4.0], [8.0, 8.0, 5.0]], [[3.0, 5.0, 7.0], [1.0, 3.0, 1.0], [6.0, 5.0, 6.0]], [[7.0, 6.0, 3.0], [8.0, 2.0, 3.0], [4.0, 5.0, 3.0]]], [[[8.0, 1.0, 6.0], [4.0, 8.0, 5.0], [6.0, 2.0, 5.0]], [[2.0, 4.0, 2.0], [7.0, 4.0, 6.0], [5.0, 5.0, 8.0]], [[5.0, 5.0, 5.0], [5.0, 3.0, 6.0], [2.0, 2.0, 1.0]]]])
4531          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4532       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4533       def test_setslice_constData_rank4_taggedData_URLN(self):
4534          arg=Data(numarray.array([[[[5.0, 3.0, 6.0], [1.0, 6.0, 1.0], [2.0, 4.0, 8.0]], [[8.0, 5.0, 2.0], [6.0, 5.0, 5.0], [3.0, 7.0, 6.0]], [[2.0, 1.0, 7.0], [1.0, 2.0, 6.0], [3.0, 5.0, 3.0]]], [[[7.0, 5.0, 4.0], [3.0, 1.0, 1.0], [3.0, 1.0, 3.0]], [[8.0, 6.0, 7.0], [3.0, 5.0, 8.0], [4.0, 5.0, 6.0]], [[8.0, 8.0, 7.0], [7.0, 8.0, 3.0], [7.0, 3.0, 2.0]]], [[[1.0, 4.0, 1.0], [6.0, 4.0, 3.0], [2.0, 2.0, 2.0]], [[1.0, 2.0, 6.0], [6.0, 1.0, 5.0], [4.0, 6.0, 5.0]], [[6.0, 4.0, 5.0], [5.0, 1.0, 6.0], [2.0, 1.0, 3.0]]], [[[5.0, 2.0, 3.0], [7.0, 6.0, 6.0], [7.0, 8.0, 4.0]], [[2.0, 3.0, 8.0], [1.0, 3.0, 7.0], [5.0, 1.0, 4.0]], [[3.0, 2.0, 6.0], [7.0, 2.0, 5.0], [3.0, 5.0, 6.0]]]]),self.functionspace)
4535          val=Data(numarray.array([[[[1.0, 6.0, 2.0]]], [[[3.0, 5.0, 1.0]]], [[[8.0, 1.0, 2.0]]]]),self.functionspace)
4536          val.setTaggedValue(1,numarray.array([[[[4.0, 1.0, 2.0]]], [[[4.0, 2.0, 8.0]]], [[[3.0, 5.0, 6.0]]]]))
4537          arg[:3,1:2,2:]=val
4538          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4539          ref=msk_ref*numarray.array([[[[5.0, 3.0, 6.0], [1.0, 6.0, 1.0], [2.0, 4.0, 8.0]], [[8.0, 5.0, 2.0], [6.0, 5.0, 5.0], [1.0, 6.0, 2.0]], [[2.0, 1.0, 7.0], [1.0, 2.0, 6.0], [3.0, 5.0, 3.0]]], [[[7.0, 5.0, 4.0], [3.0, 1.0, 1.0], [3.0, 1.0, 3.0]], [[8.0, 6.0, 7.0], [3.0, 5.0, 8.0], [3.0, 5.0, 1.0]], [[8.0, 8.0, 7.0], [7.0, 8.0, 3.0], [7.0, 3.0, 2.0]]], [[[1.0, 4.0, 1.0], [6.0, 4.0, 3.0], [2.0, 2.0, 2.0]], [[1.0, 2.0, 6.0], [6.0, 1.0, 5.0], [8.0, 1.0, 2.0]], [[6.0, 4.0, 5.0], [5.0, 1.0, 6.0], [2.0, 1.0, 3.0]]], [[[5.0, 2.0, 3.0], [7.0, 6.0, 6.0], [7.0, 8.0, 4.0]], [[2.0, 3.0, 8.0], [1.0, 3.0, 7.0], [5.0, 1.0, 4.0]], [[3.0, 2.0, 6.0], [7.0, 2.0, 5.0], [3.0, 5.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 3.0, 6.0], [1.0, 6.0, 1.0], [2.0, 4.0, 8.0]], [[8.0, 5.0, 2.0], [6.0, 5.0, 5.0], [4.0, 1.0, 2.0]], [[2.0, 1.0, 7.0], [1.0, 2.0, 6.0], [3.0, 5.0, 3.0]]], [[[7.0, 5.0, 4.0], [3.0, 1.0, 1.0], [3.0, 1.0, 3.0]], [[8.0, 6.0, 7.0], [3.0, 5.0, 8.0], [4.0, 2.0, 8.0]], [[8.0, 8.0, 7.0], [7.0, 8.0, 3.0], [7.0, 3.0, 2.0]]], [[[1.0, 4.0, 1.0], [6.0, 4.0, 3.0], [2.0, 2.0, 2.0]], [[1.0, 2.0, 6.0], [6.0, 1.0, 5.0], [3.0, 5.0, 6.0]], [[6.0, 4.0, 5.0], [5.0, 1.0, 6.0], [2.0, 1.0, 3.0]]], [[[5.0, 2.0, 3.0], [7.0, 6.0, 6.0], [7.0, 8.0, 4.0]], [[2.0, 3.0, 8.0], [1.0, 3.0, 7.0], [5.0, 1.0, 4.0]], [[3.0, 2.0, 6.0], [7.0, 2.0, 5.0], [3.0, 5.0, 6.0]]]])
4540          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4541       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4542       def test_setslice_constData_rank4_taggedData_LPLN(self):
4543          arg=Data(numarray.array([[[[3.0, 2.0, 1.0], [6.0, 7.0, 1.0], [5.0, 5.0, 3.0]], [[2.0, 5.0, 1.0], [3.0, 7.0, 7.0], [4.0, 8.0, 6.0]], [[4.0, 6.0, 3.0], [8.0, 8.0, 1.0], [4.0, 6.0, 5.0]]], [[[4.0, 7.0, 3.0], [6.0, 8.0, 6.0], [8.0, 1.0, 1.0]], [[4.0, 2.0, 3.0], [2.0, 6.0, 5.0], [5.0, 8.0, 6.0]], [[3.0, 2.0, 1.0], [1.0, 7.0, 4.0], [1.0, 7.0, 6.0]]], [[[4.0, 6.0, 5.0], [1.0, 7.0, 7.0], [1.0, 5.0, 5.0]], [[2.0, 8.0, 3.0], [5.0, 4.0, 7.0], [5.0, 6.0, 4.0]], [[2.0, 3.0, 4.0], [8.0, 7.0, 4.0], [6.0, 3.0, 8.0]]], [[[3.0, 2.0, 1.0], [3.0, 7.0, 4.0], [6.0, 7.0, 2.0]], [[7.0, 7.0, 4.0], [7.0, 5.0, 2.0], [7.0, 1.0, 5.0]], [[1.0, 8.0, 6.0], [8.0, 4.0, 2.0], [6.0, 1.0, 3.0]]]]),self.functionspace)
4544          val=Data(numarray.array([[[8.0, 8.0, 4.0]], [[1.0, 5.0, 6.0]]]),self.functionspace)
4545          val.setTaggedValue(1,numarray.array([[[1.0, 1.0, 1.0]], [[3.0, 5.0, 8.0]]]))
4546          arg[2:,1,2:]=val
4547          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4548          ref=msk_ref*numarray.array([[[[3.0, 2.0, 1.0], [6.0, 7.0, 1.0], [5.0, 5.0, 3.0]], [[2.0, 5.0, 1.0], [3.0, 7.0, 7.0], [4.0, 8.0, 6.0]], [[4.0, 6.0, 3.0], [8.0, 8.0, 1.0], [4.0, 6.0, 5.0]]], [[[4.0, 7.0, 3.0], [6.0, 8.0, 6.0], [8.0, 1.0, 1.0]], [[4.0, 2.0, 3.0], [2.0, 6.0, 5.0], [5.0, 8.0, 6.0]], [[3.0, 2.0, 1.0], [1.0, 7.0, 4.0], [1.0, 7.0, 6.0]]], [[[4.0, 6.0, 5.0], [1.0, 7.0, 7.0], [1.0, 5.0, 5.0]], [[2.0, 8.0, 3.0], [5.0, 4.0, 7.0], [8.0, 8.0, 4.0]], [[2.0, 3.0, 4.0], [8.0, 7.0, 4.0], [6.0, 3.0, 8.0]]], [[[3.0, 2.0, 1.0], [3.0, 7.0, 4.0], [6.0, 7.0, 2.0]], [[7.0, 7.0, 4.0], [7.0, 5.0, 2.0], [1.0, 5.0, 6.0]], [[1.0, 8.0, 6.0], [8.0, 4.0, 2.0], [6.0, 1.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 2.0, 1.0], [6.0, 7.0, 1.0], [5.0, 5.0, 3.0]], [[2.0, 5.0, 1.0], [3.0, 7.0, 7.0], [4.0, 8.0, 6.0]], [[4.0, 6.0, 3.0], [8.0, 8.0, 1.0], [4.0, 6.0, 5.0]]], [[[4.0, 7.0, 3.0], [6.0, 8.0, 6.0], [8.0, 1.0, 1.0]], [[4.0, 2.0, 3.0], [2.0, 6.0, 5.0], [5.0, 8.0, 6.0]], [[3.0, 2.0, 1.0], [1.0, 7.0, 4.0], [1.0, 7.0, 6.0]]], [[[4.0, 6.0, 5.0], [1.0, 7.0, 7.0], [1.0, 5.0, 5.0]], [[2.0, 8.0, 3.0], [5.0, 4.0, 7.0], [1.0, 1.0, 1.0]], [[2.0, 3.0, 4.0], [8.0, 7.0, 4.0], [6.0, 3.0, 8.0]]], [[[3.0, 2.0, 1.0], [3.0, 7.0, 4.0], [6.0, 7.0, 2.0]], [[7.0, 7.0, 4.0], [7.0, 5.0, 2.0], [3.0, 5.0, 8.0]], [[1.0, 8.0, 6.0], [8.0, 4.0, 2.0], [6.0, 1.0, 3.0]]]])
4549          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4550       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4551       def test_setslice_constData_rank4_taggedData_PPCN(self):
4552          arg=Data(numarray.array([[[[2.0, 6.0, 2.0], [1.0, 8.0, 1.0], [7.0, 5.0, 4.0]], [[5.0, 1.0, 8.0], [2.0, 1.0, 1.0], [8.0, 4.0, 3.0]], [[4.0, 5.0, 7.0], [4.0, 1.0, 8.0], [1.0, 6.0, 6.0]]], [[[8.0, 1.0, 3.0], [6.0, 1.0, 6.0], [7.0, 3.0, 6.0]], [[8.0, 6.0, 7.0], [3.0, 4.0, 7.0], [5.0, 3.0, 2.0]], [[7.0, 4.0, 7.0], [2.0, 3.0, 8.0], [7.0, 6.0, 7.0]]], [[[5.0, 3.0, 6.0], [1.0, 7.0, 6.0], [5.0, 1.0, 8.0]], [[6.0, 8.0, 8.0], [7.0, 8.0, 1.0], [5.0, 6.0, 7.0]], [[4.0, 3.0, 7.0], [4.0, 7.0, 1.0], [1.0, 6.0, 4.0]]], [[[8.0, 7.0, 6.0], [7.0, 4.0, 7.0], [1.0, 2.0, 1.0]], [[1.0, 5.0, 4.0], [4.0, 5.0, 2.0], [8.0, 5.0, 6.0]], [[4.0, 4.0, 4.0], [4.0, 3.0, 1.0], [1.0, 5.0, 7.0]]]]),self.functionspace)
4553          val=Data(numarray.array([[3.0, 4.0, 2.0], [5.0, 3.0, 3.0], [5.0, 1.0, 3.0]]),self.functionspace)
4554          val.setTaggedValue(1,numarray.array([[1.0, 4.0, 4.0], [3.0, 6.0, 4.0], [7.0, 4.0, 1.0]]))
4555          arg[2,1,:]=val
4556          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4557          ref=msk_ref*numarray.array([[[[2.0, 6.0, 2.0], [1.0, 8.0, 1.0], [7.0, 5.0, 4.0]], [[5.0, 1.0, 8.0], [2.0, 1.0, 1.0], [8.0, 4.0, 3.0]], [[4.0, 5.0, 7.0], [4.0, 1.0, 8.0], [1.0, 6.0, 6.0]]], [[[8.0, 1.0, 3.0], [6.0, 1.0, 6.0], [7.0, 3.0, 6.0]], [[8.0, 6.0, 7.0], [3.0, 4.0, 7.0], [5.0, 3.0, 2.0]], [[7.0, 4.0, 7.0], [2.0, 3.0, 8.0], [7.0, 6.0, 7.0]]], [[[5.0, 3.0, 6.0], [1.0, 7.0, 6.0], [5.0, 1.0, 8.0]], [[3.0, 4.0, 2.0], [5.0, 3.0, 3.0], [5.0, 1.0, 3.0]], [[4.0, 3.0, 7.0], [4.0, 7.0, 1.0], [1.0, 6.0, 4.0]]], [[[8.0, 7.0, 6.0], [7.0, 4.0, 7.0], [1.0, 2.0, 1.0]], [[1.0, 5.0, 4.0], [4.0, 5.0, 2.0], [8.0, 5.0, 6.0]], [[4.0, 4.0, 4.0], [4.0, 3.0, 1.0], [1.0, 5.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 6.0, 2.0], [1.0, 8.0, 1.0], [7.0, 5.0, 4.0]], [[5.0, 1.0, 8.0], [2.0, 1.0, 1.0], [8.0, 4.0, 3.0]], [[4.0, 5.0, 7.0], [4.0, 1.0, 8.0], [1.0, 6.0, 6.0]]], [[[8.0, 1.0, 3.0], [6.0, 1.0, 6.0], [7.0, 3.0, 6.0]], [[8.0, 6.0, 7.0], [3.0, 4.0, 7.0], [5.0, 3.0, 2.0]], [[7.0, 4.0, 7.0], [2.0, 3.0, 8.0], [7.0, 6.0, 7.0]]], [[[5.0, 3.0, 6.0], [1.0, 7.0, 6.0], [5.0, 1.0, 8.0]], [[1.0, 4.0, 4.0], [3.0, 6.0, 4.0], [7.0, 4.0, 1.0]], [[4.0, 3.0, 7.0], [4.0, 7.0, 1.0], [1.0, 6.0, 4.0]]], [[[8.0, 7.0, 6.0], [7.0, 4.0, 7.0], [1.0, 2.0, 1.0]], [[1.0, 5.0, 4.0], [4.0, 5.0, 2.0], [8.0, 5.0, 6.0]], [[4.0, 4.0, 4.0], [4.0, 3.0, 1.0], [1.0, 5.0, 7.0]]]])
4558          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4559       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4560       def test_setslice_constData_rank4_taggedData_UCUN(self):
4561          arg=Data(numarray.array([[[[5.0, 1.0, 3.0], [6.0, 4.0, 1.0], [7.0, 8.0, 6.0]], [[7.0, 4.0, 7.0], [7.0, 5.0, 3.0], [3.0, 7.0, 5.0]], [[3.0, 4.0, 8.0], [6.0, 5.0, 4.0], [7.0, 2.0, 3.0]]], [[[8.0, 8.0, 7.0], [1.0, 3.0, 3.0], [2.0, 1.0, 3.0]], [[3.0, 1.0, 3.0], [4.0, 6.0, 7.0], [5.0, 3.0, 7.0]], [[5.0, 3.0, 4.0], [4.0, 6.0, 6.0], [7.0, 6.0, 8.0]]], [[[1.0, 5.0, 7.0], [2.0, 8.0, 7.0], [6.0, 5.0, 5.0]], [[7.0, 2.0, 6.0], [5.0, 2.0, 1.0], [8.0, 8.0, 7.0]], [[2.0, 1.0, 7.0], [6.0, 4.0, 4.0], [4.0, 6.0, 1.0]]], [[[7.0, 3.0, 7.0], [6.0, 7.0, 5.0], [1.0, 6.0, 4.0]], [[8.0, 4.0, 1.0], [2.0, 1.0, 6.0], [1.0, 1.0, 1.0]], [[2.0, 6.0, 8.0], [5.0, 1.0, 1.0], [1.0, 5.0, 5.0]]]]),self.functionspace)
4562          val=Data(numarray.array([[[[2.0, 8.0, 2.0], [7.0, 1.0, 1.0]], [[6.0, 7.0, 3.0], [5.0, 5.0, 2.0]], [[5.0, 7.0, 6.0], [1.0, 2.0, 3.0]]], [[[4.0, 1.0, 2.0], [8.0, 7.0, 2.0]], [[2.0, 2.0, 4.0], [7.0, 6.0, 1.0]], [[1.0, 3.0, 3.0], [5.0, 3.0, 8.0]]], [[[3.0, 8.0, 6.0], [8.0, 2.0, 1.0]], [[5.0, 2.0, 3.0], [2.0, 1.0, 5.0]], [[5.0, 8.0, 5.0], [8.0, 8.0, 2.0]]]]),self.functionspace)
4563          val.setTaggedValue(1,numarray.array([[[[5.0, 1.0, 5.0], [3.0, 6.0, 8.0]], [[3.0, 3.0, 6.0], [8.0, 6.0, 8.0]], [[1.0, 5.0, 3.0], [1.0, 6.0, 5.0]]], [[[7.0, 3.0, 2.0], [2.0, 4.0, 2.0]], [[5.0, 3.0, 8.0], [5.0, 7.0, 6.0]], [[1.0, 7.0, 3.0], [5.0, 4.0, 4.0]]], [[[3.0, 8.0, 5.0], [2.0, 8.0, 5.0]], [[1.0, 4.0, 1.0], [2.0, 7.0, 5.0]], [[5.0, 2.0, 4.0], [6.0, 2.0, 6.0]]]]))
4564          arg[:3,:,:2]=val
4565          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4566          ref=msk_ref*numarray.array([[[[2.0, 8.0, 2.0], [7.0, 1.0, 1.0], [7.0, 8.0, 6.0]], [[6.0, 7.0, 3.0], [5.0, 5.0, 2.0], [3.0, 7.0, 5.0]], [[5.0, 7.0, 6.0], [1.0, 2.0, 3.0], [7.0, 2.0, 3.0]]], [[[4.0, 1.0, 2.0], [8.0, 7.0, 2.0], [2.0, 1.0, 3.0]], [[2.0, 2.0, 4.0], [7.0, 6.0, 1.0], [5.0, 3.0, 7.0]], [[1.0, 3.0, 3.0], [5.0, 3.0, 8.0], [7.0, 6.0, 8.0]]], [[[3.0, 8.0, 6.0], [8.0, 2.0, 1.0], [6.0, 5.0, 5.0]], [[5.0, 2.0, 3.0], [2.0, 1.0, 5.0], [8.0, 8.0, 7.0]], [[5.0, 8.0, 5.0], [8.0, 8.0, 2.0], [4.0, 6.0, 1.0]]], [[[7.0, 3.0, 7.0], [6.0, 7.0, 5.0], [1.0, 6.0, 4.0]], [[8.0, 4.0, 1.0], [2.0, 1.0, 6.0], [1.0, 1.0, 1.0]], [[2.0, 6.0, 8.0], [5.0, 1.0, 1.0], [1.0, 5.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 1.0, 5.0], [3.0, 6.0, 8.0], [7.0, 8.0, 6.0]], [[3.0, 3.0, 6.0], [8.0, 6.0, 8.0], [3.0, 7.0, 5.0]], [[1.0, 5.0, 3.0], [1.0, 6.0, 5.0], [7.0, 2.0, 3.0]]], [[[7.0, 3.0, 2.0], [2.0, 4.0, 2.0], [2.0, 1.0, 3.0]], [[5.0, 3.0, 8.0], [5.0, 7.0, 6.0], [5.0, 3.0, 7.0]], [[1.0, 7.0, 3.0], [5.0, 4.0, 4.0], [7.0, 6.0, 8.0]]], [[[3.0, 8.0, 5.0], [2.0, 8.0, 5.0], [6.0, 5.0, 5.0]], [[1.0, 4.0, 1.0], [2.0, 7.0, 5.0], [8.0, 8.0, 7.0]], [[5.0, 2.0, 4.0], [6.0, 2.0, 6.0], [4.0, 6.0, 1.0]]], [[[7.0, 3.0, 7.0], [6.0, 7.0, 5.0], [1.0, 6.0, 4.0]], [[8.0, 4.0, 1.0], [2.0, 1.0, 6.0], [1.0, 1.0, 1.0]], [[2.0, 6.0, 8.0], [5.0, 1.0, 1.0], [1.0, 5.0, 5.0]]]])
4567          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4568       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4569       def test_setslice_constData_rank4_taggedData_UUCN(self):
4570          arg=Data(numarray.array([[[[1.0, 8.0, 6.0], [7.0, 3.0, 1.0], [1.0, 6.0, 2.0]], [[8.0, 2.0, 6.0], [1.0, 6.0, 5.0], [3.0, 6.0, 8.0]], [[3.0, 7.0, 3.0], [7.0, 1.0, 1.0], [7.0, 4.0, 1.0]]], [[[5.0, 8.0, 8.0], [5.0, 7.0, 3.0], [2.0, 4.0, 4.0]], [[6.0, 8.0, 1.0], [6.0, 7.0, 4.0], [3.0, 7.0, 1.0]], [[2.0, 2.0, 3.0], [6.0, 1.0, 4.0], [8.0, 7.0, 6.0]]], [[[2.0, 2.0, 5.0], [7.0, 4.0, 1.0], [7.0, 3.0, 7.0]], [[6.0, 1.0, 2.0], [1.0, 2.0, 1.0], [3.0, 5.0, 8.0]], [[6.0, 6.0, 7.0], [4.0, 1.0, 2.0], [2.0, 2.0, 8.0]]], [[[3.0, 7.0, 5.0], [2.0, 7.0, 4.0], [2.0, 7.0, 6.0]], [[5.0, 1.0, 6.0], [3.0, 8.0, 8.0], [1.0, 2.0, 7.0]], [[1.0, 2.0, 3.0], [5.0, 4.0, 4.0], [8.0, 1.0, 7.0]]]]),self.functionspace)
4571          val=Data(numarray.array([[[[5.0, 4.0, 3.0], [5.0, 5.0, 2.0], [5.0, 6.0, 1.0]], [[6.0, 3.0, 3.0], [7.0, 2.0, 7.0], [1.0, 7.0, 8.0]]], [[[6.0, 3.0, 7.0], [3.0, 5.0, 1.0], [3.0, 3.0, 1.0]], [[4.0, 4.0, 2.0], [3.0, 8.0, 8.0], [4.0, 4.0, 5.0]]], [[[4.0, 4.0, 6.0], [2.0, 3.0, 6.0], [2.0, 4.0, 5.0]], [[7.0, 6.0, 3.0], [1.0, 6.0, 2.0], [2.0, 4.0, 2.0]]]]),self.functionspace)
4572          val.setTaggedValue(1,numarray.array([[[[7.0, 2.0, 6.0], [6.0, 3.0, 1.0], [6.0, 8.0, 5.0]], [[1.0, 7.0, 4.0], [1.0, 4.0, 7.0], [1.0, 4.0, 5.0]]], [[[5.0, 3.0, 6.0], [4.0, 2.0, 7.0], [6.0, 4.0, 5.0]], [[6.0, 6.0, 5.0], [6.0, 4.0, 6.0], [4.0, 8.0, 2.0]]], [[[6.0, 2.0, 2.0], [3.0, 1.0, 3.0], [6.0, 5.0, 1.0]], [[6.0, 7.0, 6.0], [5.0, 7.0, 5.0], [3.0, 6.0, 3.0]]]]))
4573          arg[:3,:2,:]=val
4574          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4575          ref=msk_ref*numarray.array([[[[5.0, 4.0, 3.0], [5.0, 5.0, 2.0], [5.0, 6.0, 1.0]], [[6.0, 3.0, 3.0], [7.0, 2.0, 7.0], [1.0, 7.0, 8.0]], [[3.0, 7.0, 3.0], [7.0, 1.0, 1.0], [7.0, 4.0, 1.0]]], [[[6.0, 3.0, 7.0], [3.0, 5.0, 1.0], [3.0, 3.0, 1.0]], [[4.0, 4.0, 2.0], [3.0, 8.0, 8.0], [4.0, 4.0, 5.0]], [[2.0, 2.0, 3.0], [6.0, 1.0, 4.0], [8.0, 7.0, 6.0]]], [[[4.0, 4.0, 6.0], [2.0, 3.0, 6.0], [2.0, 4.0, 5.0]], [[7.0, 6.0, 3.0], [1.0, 6.0, 2.0], [2.0, 4.0, 2.0]], [[6.0, 6.0, 7.0], [4.0, 1.0, 2.0], [2.0, 2.0, 8.0]]], [[[3.0, 7.0, 5.0], [2.0, 7.0, 4.0], [2.0, 7.0, 6.0]], [[5.0, 1.0, 6.0], [3.0, 8.0, 8.0], [1.0, 2.0, 7.0]], [[1.0, 2.0, 3.0], [5.0, 4.0, 4.0], [8.0, 1.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 2.0, 6.0], [6.0, 3.0, 1.0], [6.0, 8.0, 5.0]], [[1.0, 7.0, 4.0], [1.0, 4.0, 7.0], [1.0, 4.0, 5.0]], [[3.0, 7.0, 3.0], [7.0, 1.0, 1.0], [7.0, 4.0, 1.0]]], [[[5.0, 3.0, 6.0], [4.0, 2.0, 7.0], [6.0, 4.0, 5.0]], [[6.0, 6.0, 5.0], [6.0, 4.0, 6.0], [4.0, 8.0, 2.0]], [[2.0, 2.0, 3.0], [6.0, 1.0, 4.0], [8.0, 7.0, 6.0]]], [[[6.0, 2.0, 2.0], [3.0, 1.0, 3.0], [6.0, 5.0, 1.0]], [[6.0, 7.0, 6.0], [5.0, 7.0, 5.0], [3.0, 6.0, 3.0]], [[6.0, 6.0, 7.0], [4.0, 1.0, 2.0], [2.0, 2.0, 8.0]]], [[[3.0, 7.0, 5.0], [2.0, 7.0, 4.0], [2.0, 7.0, 6.0]], [[5.0, 1.0, 6.0], [3.0, 8.0, 8.0], [1.0, 2.0, 7.0]], [[1.0, 2.0, 3.0], [5.0, 4.0, 4.0], [8.0, 1.0, 7.0]]]])
4576          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4577       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4578       def test_setslice_constData_rank4_taggedData_CCUC(self):
4579          arg=Data(numarray.array([[[[7.0, 4.0, 1.0], [4.0, 4.0, 8.0], [2.0, 4.0, 5.0]], [[2.0, 1.0, 2.0], [3.0, 2.0, 1.0], [7.0, 4.0, 3.0]], [[4.0, 4.0, 3.0], [8.0, 8.0, 5.0], [4.0, 1.0, 8.0]]], [[[5.0, 4.0, 1.0], [2.0, 7.0, 8.0], [4.0, 4.0, 3.0]], [[5.0, 8.0, 3.0], [6.0, 4.0, 3.0], [7.0, 6.0, 3.0]], [[5.0, 8.0, 6.0], [1.0, 3.0, 6.0], [5.0, 6.0, 2.0]]], [[[3.0, 4.0, 5.0], [6.0, 4.0, 5.0], [1.0, 7.0, 2.0]], [[6.0, 3.0, 6.0], [1.0, 7.0, 1.0], [7.0, 4.0, 7.0]], [[8.0, 3.0, 7.0], [3.0, 1.0, 1.0], [4.0, 7.0, 5.0]]], [[[5.0, 1.0, 7.0], [2.0, 7.0, 3.0], [1.0, 2.0, 7.0]], [[5.0, 3.0, 8.0], [5.0, 1.0, 2.0], [8.0, 1.0, 8.0]], [[6.0, 2.0, 4.0], [2.0, 7.0, 4.0], [8.0, 4.0, 3.0]]]]),self.functionspace)
4580          val=Data(numarray.array([[[[8.0, 8.0, 1.0], [6.0, 8.0, 4.0]], [[5.0, 6.0, 6.0], [7.0, 5.0, 8.0]], [[8.0, 7.0, 8.0], [5.0, 8.0, 2.0]]], [[[2.0, 3.0, 3.0], [8.0, 2.0, 6.0]], [[8.0, 1.0, 3.0], [4.0, 6.0, 6.0]], [[4.0, 1.0, 4.0], [7.0, 7.0, 7.0]]], [[[2.0, 5.0, 1.0], [6.0, 6.0, 5.0]], [[2.0, 4.0, 7.0], [1.0, 3.0, 4.0]], [[1.0, 1.0, 7.0], [4.0, 2.0, 5.0]]], [[[5.0, 5.0, 1.0], [6.0, 6.0, 1.0]], [[6.0, 2.0, 6.0], [2.0, 5.0, 4.0]], [[5.0, 6.0, 1.0], [8.0, 3.0, 2.0]]]]),self.functionspace)
4581          val.setTaggedValue(1,numarray.array([[[[3.0, 1.0, 5.0], [1.0, 3.0, 1.0]], [[6.0, 5.0, 3.0], [3.0, 8.0, 3.0]], [[2.0, 6.0, 8.0], [3.0, 3.0, 7.0]]], [[[8.0, 6.0, 3.0], [7.0, 7.0, 7.0]], [[6.0, 6.0, 8.0], [8.0, 1.0, 6.0]], [[6.0, 6.0, 1.0], [7.0, 5.0, 2.0]]], [[[6.0, 3.0, 8.0], [7.0, 3.0, 4.0]], [[7.0, 8.0, 1.0], [5.0, 7.0, 1.0]], [[2.0, 7.0, 1.0], [6.0, 7.0, 2.0]]], [[[4.0, 5.0, 5.0], [7.0, 3.0, 2.0]], [[2.0, 3.0, 7.0], [1.0, 2.0, 1.0]], [[5.0, 7.0, 3.0], [1.0, 7.0, 3.0]]]]))
4582          arg[:,:,:2,:]=val
4583          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4584          ref=msk_ref*numarray.array([[[[8.0, 8.0, 1.0], [6.0, 8.0, 4.0], [2.0, 4.0, 5.0]], [[5.0, 6.0, 6.0], [7.0, 5.0, 8.0], [7.0, 4.0, 3.0]], [[8.0, 7.0, 8.0], [5.0, 8.0, 2.0], [4.0, 1.0, 8.0]]], [[[2.0, 3.0, 3.0], [8.0, 2.0, 6.0], [4.0, 4.0, 3.0]], [[8.0, 1.0, 3.0], [4.0, 6.0, 6.0], [7.0, 6.0, 3.0]], [[4.0, 1.0, 4.0], [7.0, 7.0, 7.0], [5.0, 6.0, 2.0]]], [[[2.0, 5.0, 1.0], [6.0, 6.0, 5.0], [1.0, 7.0, 2.0]], [[2.0, 4.0, 7.0], [1.0, 3.0, 4.0], [7.0, 4.0, 7.0]], [[1.0, 1.0, 7.0], [4.0, 2.0, 5.0], [4.0, 7.0, 5.0]]], [[[5.0, 5.0, 1.0], [6.0, 6.0, 1.0], [1.0, 2.0, 7.0]], [[6.0, 2.0, 6.0], [2.0, 5.0, 4.0], [8.0, 1.0, 8.0]], [[5.0, 6.0, 1.0], [8.0, 3.0, 2.0], [8.0, 4.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 1.0, 5.0], [1.0, 3.0, 1.0], [2.0, 4.0, 5.0]], [[6.0, 5.0, 3.0], [3.0, 8.0, 3.0], [7.0, 4.0, 3.0]], [[2.0, 6.0, 8.0], [3.0, 3.0, 7.0], [4.0, 1.0, 8.0]]], [[[8.0, 6.0, 3.0], [7.0, 7.0, 7.0], [4.0, 4.0, 3.0]], [[6.0, 6.0, 8.0], [8.0, 1.0, 6.0], [7.0, 6.0, 3.0]], [[6.0, 6.0, 1.0], [7.0, 5.0, 2.0], [5.0, 6.0, 2.0]]], [[[6.0, 3.0, 8.0], [7.0, 3.0, 4.0], [1.0, 7.0, 2.0]], [[7.0, 8.0, 1.0], [5.0, 7.0, 1.0], [7.0, 4.0, 7.0]], [[2.0, 7.0, 1.0], [6.0, 7.0, 2.0], [4.0, 7.0, 5.0]]], [[[4.0, 5.0, 5.0], [7.0, 3.0, 2.0], [1.0, 2.0, 7.0]], [[2.0, 3.0, 7.0], [1.0, 2.0, 1.0], [8.0, 1.0, 8.0]], [[5.0, 7.0, 3.0], [1.0, 7.0, 3.0], [8.0, 4.0, 3.0]]]])
4585          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4586       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4587       def test_setslice_constData_rank4_taggedData_LRUN(self):
4588          arg=Data(numarray.array([[[[1.0, 6.0, 2.0], [6.0, 5.0, 6.0], [4.0, 5.0, 6.0]], [[7.0, 8.0, 5.0], [4.0, 4.0, 3.0], [4.0, 8.0, 5.0]], [[8.0, 2.0, 6.0], [4.0, 2.0, 6.0], [6.0, 3.0, 3.0]]], [[[4.0, 7.0, 6.0], [1.0, 3.0, 1.0], [8.0, 6.0, 7.0]], [[3.0, 5.0, 3.0], [1.0, 8.0, 5.0], [6.0, 6.0, 4.0]], [[1.0, 8.0, 8.0], [5.0, 8.0, 5.0], [1.0, 2.0, 3.0]]], [[[8.0, 3.0, 1.0], [6.0, 6.0, 8.0], [8.0, 2.0, 7.0]], [[7.0, 1.0, 6.0], [8.0, 1.0, 3.0], [8.0, 3.0, 4.0]], [[7.0, 7.0, 1.0], [4.0, 3.0, 5.0], [3.0, 7.0, 7.0]]], [[[6.0, 4.0, 5.0], [6.0, 3.0, 7.0], [4.0, 6.0, 2.0]], [[5.0, 5.0, 1.0], [6.0, 5.0, 1.0], [5.0, 1.0, 4.0]], [[4.0, 4.0, 8.0], [4.0, 5.0, 4.0], [7.0, 5.0, 2.0]]]]),self.functionspace)
4589          val=Data(numarray.array([[[[5.0, 8.0, 3.0], [4.0, 6.0, 5.0]]], [[[6.0, 6.0, 7.0], [5.0, 5.0, 4.0]]]]),self.functionspace)
4590          val.setTaggedValue(1,numarray.array([[[[6.0, 2.0, 5.0], [4.0, 2.0, 4.0]]], [[[7.0, 4.0, 6.0], [8.0, 1.0, 2.0]]]]))
4591          arg[2:,1:2,:2]=val
4592          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4593          ref=msk_ref*numarray.array([[[[1.0, 6.0, 2.0], [6.0, 5.0, 6.0], [4.0, 5.0, 6.0]], [[7.0, 8.0, 5.0], [4.0, 4.0, 3.0], [4.0, 8.0, 5.0]], [[8.0, 2.0, 6.0], [4.0, 2.0, 6.0], [6.0, 3.0, 3.0]]], [[[4.0, 7.0, 6.0], [1.0, 3.0, 1.0], [8.0, 6.0, 7.0]], [[3.0, 5.0, 3.0], [1.0, 8.0, 5.0], [6.0, 6.0, 4.0]], [[1.0, 8.0, 8.0], [5.0, 8.0, 5.0], [1.0, 2.0, 3.0]]], [[[8.0, 3.0, 1.0], [6.0, 6.0, 8.0], [8.0, 2.0, 7.0]], [[5.0, 8.0, 3.0], [4.0, 6.0, 5.0], [8.0, 3.0, 4.0]], [[7.0, 7.0, 1.0], [4.0, 3.0, 5.0], [3.0, 7.0, 7.0]]], [[[6.0, 4.0, 5.0], [6.0, 3.0, 7.0], [4.0, 6.0, 2.0]], [[6.0, 6.0, 7.0], [5.0, 5.0, 4.0], [5.0, 1.0, 4.0]], [[4.0, 4.0, 8.0], [4.0, 5.0, 4.0], [7.0, 5.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 6.0, 2.0], [6.0, 5.0, 6.0], [4.0, 5.0, 6.0]], [[7.0, 8.0, 5.0], [4.0, 4.0, 3.0], [4.0, 8.0, 5.0]], [[8.0, 2.0, 6.0], [4.0, 2.0, 6.0], [6.0, 3.0, 3.0]]], [[[4.0, 7.0, 6.0], [1.0, 3.0, 1.0], [8.0, 6.0, 7.0]], [[3.0, 5.0, 3.0], [1.0, 8.0, 5.0], [6.0, 6.0, 4.0]], [[1.0, 8.0, 8.0], [5.0, 8.0, 5.0], [1.0, 2.0, 3.0]]], [[[8.0, 3.0, 1.0], [6.0, 6.0, 8.0], [8.0, 2.0, 7.0]], [[6.0, 2.0, 5.0], [4.0, 2.0, 4.0], [8.0, 3.0, 4.0]], [[7.0, 7.0, 1.0], [4.0, 3.0, 5.0], [3.0, 7.0, 7.0]]], [[[6.0, 4.0, 5.0], [6.0, 3.0, 7.0], [4.0, 6.0, 2.0]], [[7.0, 4.0, 6.0], [8.0, 1.0, 2.0], [5.0, 1.0, 4.0]], [[4.0, 4.0, 8.0], [4.0, 5.0, 4.0], [7.0, 5.0, 2.0]]]])
4594          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4595       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4596       def test_setslice_constData_rank4_taggedData_RUPN(self):
4597          arg=Data(numarray.array([[[[5.0, 2.0, 8.0], [4.0, 3.0, 1.0], [3.0, 3.0, 5.0]], [[4.0, 3.0, 2.0], [5.0, 4.0, 6.0], [1.0, 2.0, 6.0]], [[5.0, 4.0, 1.0], [3.0, 8.0, 5.0], [5.0, 1.0, 7.0]]], [[[2.0, 5.0, 5.0], [8.0, 4.0, 2.0], [1.0, 1.0, 8.0]], [[4.0, 8.0, 1.0], [5.0, 7.0, 7.0], [7.0, 1.0, 8.0]], [[5.0, 8.0, 2.0], [7.0, 8.0, 5.0], [2.0, 6.0, 4.0]]], [[[2.0, 7.0, 7.0], [8.0, 1.0, 1.0], [6.0, 2.0, 8.0]], [[3.0, 3.0, 8.0], [6.0, 5.0, 1.0], [4.0, 7.0, 4.0]], [[5.0, 6.0, 6.0], [6.0, 2.0, 3.0], [8.0, 4.0, 6.0]]], [[[8.0, 5.0, 4.0], [1.0, 5.0, 2.0], [1.0, 3.0, 6.0]], [[8.0, 6.0, 4.0], [3.0, 8.0, 3.0], [7.0, 1.0, 3.0]], [[4.0, 2.0, 7.0], [3.0, 6.0, 1.0], [6.0, 7.0, 8.0]]]]),self.functionspace)
4598          val=Data(numarray.array([[[3.0, 1.0, 8.0], [3.0, 2.0, 2.0]], [[5.0, 6.0, 4.0], [2.0, 8.0, 6.0]]]),self.functionspace)
4599          val.setTaggedValue(1,numarray.array([[[3.0, 3.0, 2.0], [1.0, 5.0, 8.0]], [[8.0, 7.0, 4.0], [7.0, 7.0, 1.0]]]))
4600          arg[1:3,:2,1]=val
4601          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4602          ref=msk_ref*numarray.array([[[[5.0, 2.0, 8.0], [4.0, 3.0, 1.0], [3.0, 3.0, 5.0]], [[4.0, 3.0, 2.0], [5.0, 4.0, 6.0], [1.0, 2.0, 6.0]], [[5.0, 4.0, 1.0], [3.0, 8.0, 5.0], [5.0, 1.0, 7.0]]], [[[2.0, 5.0, 5.0], [3.0, 1.0, 8.0], [1.0, 1.0, 8.0]], [[4.0, 8.0, 1.0], [3.0, 2.0, 2.0], [7.0, 1.0, 8.0]], [[5.0, 8.0, 2.0], [7.0, 8.0, 5.0], [2.0, 6.0, 4.0]]], [[[2.0, 7.0, 7.0], [5.0, 6.0, 4.0], [6.0, 2.0, 8.0]], [[3.0, 3.0, 8.0], [2.0, 8.0, 6.0], [4.0, 7.0, 4.0]], [[5.0, 6.0, 6.0], [6.0, 2.0, 3.0], [8.0, 4.0, 6.0]]], [[[8.0, 5.0, 4.0], [1.0, 5.0, 2.0], [1.0, 3.0, 6.0]], [[8.0, 6.0, 4.0], [3.0, 8.0, 3.0], [7.0, 1.0, 3.0]], [[4.0, 2.0, 7.0], [3.0, 6.0, 1.0], [6.0, 7.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 2.0, 8.0], [4.0, 3.0, 1.0], [3.0, 3.0, 5.0]], [[4.0, 3.0, 2.0], [5.0, 4.0, 6.0], [1.0, 2.0, 6.0]], [[5.0, 4.0, 1.0], [3.0, 8.0, 5.0], [5.0, 1.0, 7.0]]], [[[2.0, 5.0, 5.0], [3.0, 3.0, 2.0], [1.0, 1.0, 8.0]], [[4.0, 8.0, 1.0], [1.0, 5.0, 8.0], [7.0, 1.0, 8.0]], [[5.0, 8.0, 2.0], [7.0, 8.0, 5.0], [2.0, 6.0, 4.0]]], [[[2.0, 7.0, 7.0], [8.0, 7.0, 4.0], [6.0, 2.0, 8.0]], [[3.0, 3.0, 8.0], [7.0, 7.0, 1.0], [4.0, 7.0, 4.0]], [[5.0, 6.0, 6.0], [6.0, 2.0, 3.0], [8.0, 4.0, 6.0]]], [[[8.0, 5.0, 4.0], [1.0, 5.0, 2.0], [1.0, 3.0, 6.0]], [[8.0, 6.0, 4.0], [3.0, 8.0, 3.0], [7.0, 1.0, 3.0]], [[4.0, 2.0, 7.0], [3.0, 6.0, 1.0], [6.0, 7.0, 8.0]]]])
4603          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4604       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4605       def test_setslice_constData_rank4_taggedData_RRUR(self):
4606          arg=Data(numarray.array([[[[4.0, 3.0, 7.0], [8.0, 3.0, 6.0], [7.0, 7.0, 1.0]], [[1.0, 5.0, 6.0], [7.0, 7.0, 8.0], [2.0, 7.0, 4.0]], [[1.0, 5.0, 3.0], [2.0, 2.0, 3.0], [4.0, 1.0, 6.0]]], [[[1.0, 7.0, 5.0], [3.0, 8.0, 5.0], [2.0, 4.0, 4.0]], [[6.0, 2.0, 8.0], [5.0, 6.0, 6.0], [3.0, 8.0, 6.0]], [[7.0, 8.0, 3.0], [8.0, 5.0, 4.0], [1.0, 8.0, 2.0]]], [[[5.0, 1.0, 4.0], [8.0, 1.0, 3.0], [8.0, 7.0, 2.0]], [[7.0, 8.0, 2.0], [6.0, 3.0, 7.0], [5.0, 3.0, 5.0]], [[1.0, 2.0, 5.0], [4.0, 4.0, 3.0], [4.0, 4.0, 6.0]]], [[[8.0, 8.0, 6.0], [5.0, 8.0, 2.0], [6.0, 5.0, 2.0]], [[8.0, 7.0, 7.0], [8.0, 2.0, 5.0], [3.0, 8.0, 2.0]], [[8.0, 6.0, 1.0], [7.0, 2.0, 8.0], [4.0, 1.0, 6.0]]]]),self.functionspace)
4607          val=Data(numarray.array([[[[6.0], [3.0]]], [[[2.0], [1.0]]]]),self.functionspace)
4608          val.setTaggedValue(1,numarray.array([[[[5.0], [4.0]]], [[[1.0], [6.0]]]]))
4609          arg[1:3,1:2,:2,1:2]=val
4610          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4611          ref=msk_ref*numarray.array([[[[4.0, 3.0, 7.0], [8.0, 3.0, 6.0], [7.0, 7.0, 1.0]], [[1.0, 5.0, 6.0], [7.0, 7.0, 8.0], [2.0, 7.0, 4.0]], [[1.0, 5.0, 3.0], [2.0, 2.0, 3.0], [4.0, 1.0, 6.0]]], [[[1.0, 7.0, 5.0], [3.0, 8.0, 5.0], [2.0, 4.0, 4.0]], [[6.0, 6.0, 8.0], [5.0, 3.0, 6.0], [3.0, 8.0, 6.0]], [[7.0, 8.0, 3.0], [8.0, 5.0, 4.0], [1.0, 8.0, 2.0]]], [[[5.0, 1.0, 4.0], [8.0, 1.0, 3.0], [8.0, 7.0, 2.0]], [[7.0, 2.0, 2.0], [6.0, 1.0, 7.0], [5.0, 3.0, 5.0]], [[1.0, 2.0, 5.0], [4.0, 4.0, 3.0], [4.0, 4.0, 6.0]]], [[[8.0, 8.0, 6.0], [5.0, 8.0, 2.0], [6.0, 5.0, 2.0]], [[8.0, 7.0, 7.0], [8.0, 2.0, 5.0], [3.0, 8.0, 2.0]], [[8.0, 6.0, 1.0], [7.0, 2.0, 8.0], [4.0, 1.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 3.0, 7.0], [8.0, 3.0, 6.0], [7.0, 7.0, 1.0]], [[1.0, 5.0, 6.0], [7.0, 7.0, 8.0], [2.0, 7.0, 4.0]], [[1.0, 5.0, 3.0], [2.0, 2.0, 3.0], [4.0, 1.0, 6.0]]], [[[1.0, 7.0, 5.0], [3.0, 8.0, 5.0], [2.0, 4.0, 4.0]], [[6.0, 5.0, 8.0], [5.0, 4.0, 6.0], [3.0, 8.0, 6.0]], [[7.0, 8.0, 3.0], [8.0, 5.0, 4.0], [1.0, 8.0, 2.0]]], [[[5.0, 1.0, 4.0], [8.0, 1.0, 3.0], [8.0, 7.0, 2.0]], [[7.0, 1.0, 2.0], [6.0, 6.0, 7.0], [5.0, 3.0, 5.0]], [[1.0, 2.0, 5.0], [4.0, 4.0, 3.0], [4.0, 4.0, 6.0]]], [[[8.0, 8.0, 6.0], [5.0, 8.0, 2.0], [6.0, 5.0, 2.0]], [[8.0, 7.0, 7.0], [8.0, 2.0, 5.0], [3.0, 8.0, 2.0]], [[8.0, 6.0, 1.0], [7.0, 2.0, 8.0], [4.0, 1.0, 6.0]]]])
4612          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4613       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4614       def test_setslice_constData_rank4_taggedData_PPRN(self):
4615          arg=Data(numarray.array([[[[2.0, 8.0, 2.0], [7.0, 5.0, 8.0], [3.0, 1.0, 1.0]], [[5.0, 8.0, 6.0], [6.0, 6.0, 3.0], [6.0, 7.0, 5.0]], [[2.0, 6.0, 3.0], [3.0, 1.0, 7.0], [2.0, 5.0, 1.0]]], [[[5.0, 5.0, 7.0], [5.0, 5.0, 1.0], [4.0, 2.0, 7.0]], [[1.0, 1.0, 5.0], [6.0, 5.0, 4.0], [1.0, 6.0, 8.0]], [[7.0, 7.0, 7.0], [4.0, 7.0, 7.0], [5.0, 2.0, 3.0]]], [[[4.0, 5.0, 7.0], [2.0, 1.0, 2.0], [6.0, 1.0, 1.0]], [[1.0, 2.0, 1.0], [7.0, 6.0, 2.0], [3.0, 3.0, 8.0]], [[7.0, 8.0, 1.0], [3.0, 5.0, 8.0], [4.0, 6.0, 3.0]]], [[[3.0, 1.0, 5.0], [7.0, 3.0, 4.0], [8.0, 4.0, 1.0]], [[4.0, 1.0, 8.0], [3.0, 1.0, 7.0], [3.0, 1.0, 7.0]], [[6.0, 2.0, 7.0], [5.0, 1.0, 2.0], [5.0, 5.0, 4.0]]]]),self.functionspace)
4616          val=Data(numarray.array([[3.0, 5.0, 4.0]]),self.functionspace)
4617          val.setTaggedValue(1,numarray.array([[1.0, 3.0, 1.0]]))
4618          arg[2,1,1:2]=val
4619          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4620          ref=msk_ref*numarray.array([[[[2.0, 8.0, 2.0], [7.0, 5.0, 8.0], [3.0, 1.0, 1.0]], [[5.0, 8.0, 6.0], [6.0, 6.0, 3.0], [6.0, 7.0, 5.0]], [[2.0, 6.0, 3.0], [3.0, 1.0, 7.0], [2.0, 5.0, 1.0]]], [[[5.0, 5.0, 7.0], [5.0, 5.0, 1.0], [4.0, 2.0, 7.0]], [[1.0, 1.0, 5.0], [6.0, 5.0, 4.0], [1.0, 6.0, 8.0]], [[7.0, 7.0, 7.0], [4.0, 7.0, 7.0], [5.0, 2.0, 3.0]]], [[[4.0, 5.0, 7.0], [2.0, 1.0, 2.0], [6.0, 1.0, 1.0]], [[1.0, 2.0, 1.0], [3.0, 5.0, 4.0], [3.0, 3.0, 8.0]], [[7.0, 8.0, 1.0], [3.0, 5.0, 8.0], [4.0, 6.0, 3.0]]], [[[3.0, 1.0, 5.0], [7.0, 3.0, 4.0], [8.0, 4.0, 1.0]], [[4.0, 1.0, 8.0], [3.0, 1.0, 7.0], [3.0, 1.0, 7.0]], [[6.0, 2.0, 7.0], [5.0, 1.0, 2.0], [5.0, 5.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 8.0, 2.0], [7.0, 5.0, 8.0], [3.0, 1.0, 1.0]], [[5.0, 8.0, 6.0], [6.0, 6.0, 3.0], [6.0, 7.0, 5.0]], [[2.0, 6.0, 3.0], [3.0, 1.0, 7.0], [2.0, 5.0, 1.0]]], [[[5.0, 5.0, 7.0], [5.0, 5.0, 1.0], [4.0, 2.0, 7.0]], [[1.0, 1.0, 5.0], [6.0, 5.0, 4.0], [1.0, 6.0, 8.0]], [[7.0, 7.0, 7.0], [4.0, 7.0, 7.0], [5.0, 2.0, 3.0]]], [[[4.0, 5.0, 7.0], [2.0, 1.0, 2.0], [6.0, 1.0, 1.0]], [[1.0, 2.0, 1.0], [1.0, 3.0, 1.0], [3.0, 3.0, 8.0]], [[7.0, 8.0, 1.0], [3.0, 5.0, 8.0], [4.0, 6.0, 3.0]]], [[[3.0, 1.0, 5.0], [7.0, 3.0, 4.0], [8.0, 4.0, 1.0]], [[4.0, 1.0, 8.0], [3.0, 1.0, 7.0], [3.0, 1.0, 7.0]], [[6.0, 2.0, 7.0], [5.0, 1.0, 2.0], [5.0, 5.0, 4.0]]]])
4621          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4622       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4623       def test_setslice_constData_rank4_taggedData_RCRC(self):
4624          arg=Data(numarray.array([[[[7.0, 3.0, 4.0], [5.0, 4.0, 7.0], [1.0, 7.0, 8.0]], [[1.0, 2.0, 1.0], [2.0, 4.0, 3.0], [5.0, 8.0, 2.0]], [[4.0, 8.0, 4.0], [5.0, 7.0, 3.0], [2.0, 4.0, 4.0]]], [[[7.0, 8.0, 2.0], [2.0, 4.0, 3.0], [1.0, 3.0, 6.0]], [[6.0, 1.0, 8.0], [6.0, 1.0, 8.0], [8.0, 5.0, 8.0]], [[2.0, 8.0, 2.0], [5.0, 6.0, 6.0], [2.0, 5.0, 3.0]]], [[[2.0, 3.0, 2.0], [7.0, 8.0, 8.0], [8.0, 3.0, 2.0]], [[4.0, 3.0, 8.0], [4.0, 1.0, 6.0], [3.0, 6.0, 3.0]], [[7.0, 3.0, 5.0], [6.0, 6.0, 3.0], [8.0, 6.0, 2.0]]], [[[2.0, 1.0, 3.0], [7.0, 4.0, 1.0], [2.0, 1.0, 1.0]], [[3.0, 4.0, 5.0], [2.0, 6.0, 2.0], [4.0, 3.0, 2.0]], [[8.0, 5.0, 5.0], [2.0, 8.0, 5.0], [2.0, 7.0, 5.0]]]]),self.functionspace)
4625          val=Data(numarray.array([[[[1.0, 8.0, 4.0]], [[6.0, 5.0, 2.0]], [[5.0, 3.0, 8.0]]], [[[5.0, 6.0, 8.0]], [[1.0, 8.0, 5.0]], [[8.0, 1.0, 3.0]]]]),self.functionspace)
4626          val.setTaggedValue(1,numarray.array([[[[1.0, 8.0, 8.0]], [[7.0, 3.0, 4.0]], [[3.0, 5.0, 2.0]]], [[[2.0, 7.0, 7.0]], [[2.0, 3.0, 7.0]], [[8.0, 2.0, 6.0]]]]))
4627          arg[1:3,:,1:2,:]=val
4628          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4629          ref=msk_ref*numarray.array([[[[7.0, 3.0, 4.0], [5.0, 4.0, 7.0], [1.0, 7.0, 8.0]], [[1.0, 2.0, 1.0], [2.0, 4.0, 3.0], [5.0, 8.0, 2.0]], [[4.0, 8.0, 4.0], [5.0, 7.0, 3.0], [2.0, 4.0, 4.0]]], [[[7.0, 8.0, 2.0], [1.0, 8.0, 4.0], [1.0, 3.0, 6.0]], [[6.0, 1.0, 8.0], [6.0, 5.0, 2.0], [8.0, 5.0, 8.0]], [[2.0, 8.0, 2.0], [5.0, 3.0, 8.0], [2.0, 5.0, 3.0]]], [[[2.0, 3.0, 2.0], [5.0, 6.0, 8.0], [8.0, 3.0, 2.0]], [[4.0, 3.0, 8.0], [1.0, 8.0, 5.0], [3.0, 6.0, 3.0]], [[7.0, 3.0, 5.0], [8.0, 1.0, 3.0], [8.0, 6.0, 2.0]]], [[[2.0, 1.0, 3.0], [7.0, 4.0, 1.0], [2.0, 1.0, 1.0]], [[3.0, 4.0, 5.0], [2.0, 6.0, 2.0], [4.0, 3.0, 2.0]], [[8.0, 5.0, 5.0], [2.0, 8.0, 5.0], [2.0, 7.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 3.0, 4.0], [5.0, 4.0, 7.0], [1.0, 7.0, 8.0]], [[1.0, 2.0, 1.0], [2.0, 4.0, 3.0], [5.0, 8.0, 2.0]], [[4.0, 8.0, 4.0], [5.0, 7.0, 3.0], [2.0, 4.0, 4.0]]], [[[7.0, 8.0, 2.0], [1.0, 8.0, 8.0], [1.0, 3.0, 6.0]], [[6.0, 1.0, 8.0], [7.0, 3.0, 4.0], [8.0, 5.0, 8.0]], [[2.0, 8.0, 2.0], [3.0, 5.0, 2.0], [2.0, 5.0, 3.0]]], [[[2.0, 3.0, 2.0], [2.0, 7.0, 7.0], [8.0, 3.0, 2.0]], [[4.0, 3.0, 8.0], [2.0, 3.0, 7.0], [3.0, 6.0, 3.0]], [[7.0, 3.0, 5.0], [8.0, 2.0, 6.0], [8.0, 6.0, 2.0]]], [[[2.0, 1.0, 3.0], [7.0, 4.0, 1.0], [2.0, 1.0, 1.0]], [[3.0, 4.0, 5.0], [2.0, 6.0, 2.0], [4.0, 3.0, 2.0]], [[8.0, 5.0, 5.0], [2.0, 8.0, 5.0], [2.0, 7.0, 5.0]]]])
4630          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4631       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4632       def test_setslice_constData_rank4_taggedData_UPCN(self):
4633          arg=Data(numarray.array([[[[5.0, 8.0, 1.0], [1.0, 8.0, 7.0], [3.0, 7.0, 8.0]], [[1.0, 7.0, 5.0], [8.0, 1.0, 8.0], [5.0, 1.0, 8.0]], [[2.0, 1.0, 6.0], [6.0, 3.0, 7.0], [7.0, 4.0, 5.0]]], [[[6.0, 7.0, 5.0], [8.0, 3.0, 5.0], [1.0, 2.0, 2.0]], [[5.0, 4.0, 7.0], [2.0, 1.0, 3.0], [6.0, 3.0, 1.0]], [[4.0, 3.0, 2.0], [1.0, 7.0, 1.0], [3.0, 2.0, 2.0]]], [[[2.0, 5.0, 5.0], [6.0, 2.0, 5.0], [8.0, 4.0, 4.0]], [[4.0, 7.0, 7.0], [4.0, 1.0, 5.0], [3.0, 1.0, 7.0]], [[5.0, 1.0, 6.0], [4.0, 2.0, 1.0], [2.0, 2.0, 5.0]]], [[[5.0, 7.0, 6.0], [3.0, 4.0, 4.0], [1.0, 2.0, 2.0]], [[4.0, 4.0, 1.0], [2.0, 6.0, 3.0], [1.0, 2.0, 4.0]], [[8.0, 4.0, 1.0], [3.0, 2.0, 4.0], [1.0, 8.0, 4.0]]]]),self.functionspace)
4634          val=Data(numarray.array([[[2.0, 2.0, 6.0], [7.0, 3.0, 5.0], [8.0, 1.0, 5.0]], [[4.0, 7.0, 6.0], [8.0, 4.0, 4.0], [4.0, 5.0, 8.0]], [[1.0, 6.0, 5.0], [8.0, 5.0, 3.0], [6.0, 6.0, 7.0]]]),self.functionspace)
4635          val.setTaggedValue(1,numarray.array([[[1.0, 8.0, 2.0], [2.0, 4.0, 8.0], [7.0, 6.0, 8.0]], [[5.0, 5.0, 4.0], [4.0, 8.0, 1.0], [3.0, 4.0, 6.0]], [[4.0, 3.0, 7.0], [3.0, 4.0, 4.0], [2.0, 7.0, 8.0]]]))
4636          arg[:3,1,:]=val
4637          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4638          ref=msk_ref*numarray.array([[[[5.0, 8.0, 1.0], [1.0, 8.0, 7.0], [3.0, 7.0, 8.0]], [[2.0, 2.0, 6.0], [7.0, 3.0, 5.0], [8.0, 1.0, 5.0]], [[2.0, 1.0, 6.0], [6.0, 3.0, 7.0], [7.0, 4.0, 5.0]]], [[[6.0, 7.0, 5.0], [8.0, 3.0, 5.0], [1.0, 2.0, 2.0]], [[4.0, 7.0, 6.0], [8.0, 4.0, 4.0], [4.0, 5.0, 8.0]], [[4.0, 3.0, 2.0], [1.0, 7.0, 1.0], [3.0, 2.0, 2.0]]], [[[2.0, 5.0, 5.0], [6.0, 2.0, 5.0], [8.0, 4.0, 4.0]], [[1.0, 6.0, 5.0], [8.0, 5.0, 3.0], [6.0, 6.0, 7.0]], [[5.0, 1.0, 6.0], [4.0, 2.0, 1.0], [2.0, 2.0, 5.0]]], [[[5.0, 7.0, 6.0], [3.0, 4.0, 4.0], [1.0, 2.0, 2.0]], [[4.0, 4.0, 1.0], [2.0, 6.0, 3.0], [1.0, 2.0, 4.0]], [[8.0, 4.0, 1.0], [3.0, 2.0, 4.0], [1.0, 8.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 8.0, 1.0], [1.0, 8.0, 7.0], [3.0, 7.0, 8.0]], [[1.0, 8.0, 2.0], [2.0, 4.0, 8.0], [7.0, 6.0, 8.0]], [[2.0, 1.0, 6.0], [6.0, 3.0, 7.0], [7.0, 4.0, 5.0]]], [[[6.0, 7.0, 5.0], [8.0, 3.0, 5.0], [1.0, 2.0, 2.0]], [[5.0, 5.0, 4.0], [4.0, 8.0, 1.0], [3.0, 4.0, 6.0]], [[4.0, 3.0, 2.0], [1.0, 7.0, 1.0], [3.0, 2.0, 2.0]]], [[[2.0, 5.0, 5.0], [6.0, 2.0, 5.0], [8.0, 4.0, 4.0]], [[4.0, 3.0, 7.0], [3.0, 4.0, 4.0], [2.0, 7.0, 8.0]], [[5.0, 1.0, 6.0], [4.0, 2.0, 1.0], [2.0, 2.0, 5.0]]], [[[5.0, 7.0, 6.0], [3.0, 4.0, 4.0], [1.0, 2.0, 2.0]], [[4.0, 4.0, 1.0], [2.0, 6.0, 3.0], [1.0, 2.0, 4.0]], [[8.0, 4.0, 1.0], [3.0, 2.0, 4.0], [1.0, 8.0, 4.0]]]])
4639          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4640       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4641       def test_setslice_constData_rank4_taggedData_UPRN(self):
4642          arg=Data(numarray.array([[[[6.0, 5.0, 5.0], [2.0, 2.0, 7.0], [8.0, 3.0, 3.0]], [[4.0, 1.0, 5.0], [3.0, 6.0, 8.0], [5.0, 4.0, 2.0]], [[3.0, 8.0, 1.0], [5.0, 7.0, 3.0], [3.0, 1.0, 6.0]]], [[[5.0, 8.0, 7.0], [7.0, 1.0, 3.0], [7.0, 5.0, 3.0]], [[7.0, 7.0, 2.0], [8.0, 3.0, 7.0], [4.0, 1.0, 1.0]], [[2.0, 4.0, 6.0], [6.0, 5.0, 1.0], [7.0, 5.0, 8.0]]], [[[1.0, 8.0, 8.0], [1.0, 8.0, 6.0], [5.0, 3.0, 4.0]], [[8.0, 5.0, 5.0], [5.0, 5.0, 4.0], [8.0, 2.0, 8.0]], [[3.0, 1.0, 4.0], [5.0, 4.0, 7.0], [1.0, 4.0, 8.0]]], [[[5.0, 2.0, 4.0], [4.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[4.0, 6.0, 5.0], [1.0, 2.0, 4.0], [5.0, 6.0, 3.0]], [[3.0, 8.0, 5.0], [2.0, 6.0, 2.0], [7.0, 6.0, 6.0]]]]),self.functionspace)
4643          val=Data(numarray.array([[[5.0, 3.0, 4.0]], [[2.0, 1.0, 7.0]], [[4.0, 8.0, 8.0]]]),self.functionspace)
4644          val.setTaggedValue(1,numarray.array([[[6.0, 4.0, 5.0]], [[7.0, 8.0, 6.0]], [[5.0, 2.0, 6.0]]]))
4645          arg[:3,1,1:2]=val
4646          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4647          ref=msk_ref*numarray.array([[[[6.0, 5.0, 5.0], [2.0, 2.0, 7.0], [8.0, 3.0, 3.0]], [[4.0, 1.0, 5.0], [5.0, 3.0, 4.0], [5.0, 4.0, 2.0]], [[3.0, 8.0, 1.0], [5.0, 7.0, 3.0], [3.0, 1.0, 6.0]]], [[[5.0, 8.0, 7.0], [7.0, 1.0, 3.0], [7.0, 5.0, 3.0]], [[7.0, 7.0, 2.0], [2.0, 1.0, 7.0], [4.0, 1.0, 1.0]], [[2.0, 4.0, 6.0], [6.0, 5.0, 1.0], [7.0, 5.0, 8.0]]], [[[1.0, 8.0, 8.0], [1.0, 8.0, 6.0], [5.0, 3.0, 4.0]], [[8.0, 5.0, 5.0], [4.0, 8.0, 8.0], [8.0, 2.0, 8.0]], [[3.0, 1.0, 4.0], [5.0, 4.0, 7.0], [1.0, 4.0, 8.0]]], [[[5.0, 2.0, 4.0], [4.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[4.0, 6.0, 5.0], [1.0, 2.0, 4.0], [5.0, 6.0, 3.0]], [[3.0, 8.0, 5.0], [2.0, 6.0, 2.0], [7.0, 6.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 5.0, 5.0], [2.0, 2.0, 7.0], [8.0, 3.0, 3.0]], [[4.0, 1.0, 5.0], [6.0, 4.0, 5.0], [5.0, 4.0, 2.0]], [[3.0, 8.0, 1.0], [5.0, 7.0, 3.0], [3.0, 1.0, 6.0]]], [[[5.0, 8.0, 7.0], [7.0, 1.0, 3.0], [7.0, 5.0, 3.0]], [[7.0, 7.0, 2.0], [7.0, 8.0, 6.0], [4.0, 1.0, 1.0]], [[2.0, 4.0, 6.0], [6.0, 5.0, 1.0], [7.0, 5.0, 8.0]]], [[[1.0, 8.0, 8.0], [1.0, 8.0, 6.0], [5.0, 3.0, 4.0]], [[8.0, 5.0, 5.0], [5.0, 2.0, 6.0], [8.0, 2.0, 8.0]], [[3.0, 1.0, 4.0], [5.0, 4.0, 7.0], [1.0, 4.0, 8.0]]], [[[5.0, 2.0, 4.0], [4.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[4.0, 6.0, 5.0], [1.0, 2.0, 4.0], [5.0, 6.0, 3.0]], [[3.0, 8.0, 5.0], [2.0, 6.0, 2.0], [7.0, 6.0, 6.0]]]])
4648          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4649       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4650       def test_setslice_constData_rank4_taggedData_CULN(self):
4651          arg=Data(numarray.array([[[[7.0, 3.0, 2.0], [7.0, 7.0, 3.0], [1.0, 5.0, 6.0]], [[8.0, 4.0, 2.0], [1.0, 3.0, 1.0], [8.0, 6.0, 6.0]], [[6.0, 1.0, 1.0], [6.0, 3.0, 7.0], [4.0, 4.0, 8.0]]], [[[3.0, 3.0, 5.0], [8.0, 1.0, 1.0], [8.0, 5.0, 5.0]], [[1.0, 4.0, 8.0], [7.0, 8.0, 8.0], [3.0, 2.0, 2.0]], [[4.0, 5.0, 2.0], [1.0, 1.0, 6.0], [7.0, 7.0, 6.0]]], [[[4.0, 7.0, 7.0], [4.0, 3.0, 6.0], [8.0, 6.0, 8.0]], [[5.0, 2.0, 3.0], [7.0, 5.0, 7.0], [3.0, 2.0, 8.0]], [[7.0, 6.0, 3.0], [4.0, 2.0, 3.0], [5.0, 2.0, 8.0]]], [[[4.0, 1.0, 2.0], [3.0, 6.0, 8.0], [7.0, 4.0, 5.0]], [[1.0, 1.0, 2.0], [2.0, 7.0, 1.0], [8.0, 4.0, 7.0]], [[5.0, 8.0, 8.0], [5.0, 3.0, 3.0], [7.0, 6.0, 2.0]]]]),self.functionspace)
4652          val=Data(numarray.array([[[[1.0, 5.0, 4.0]], [[8.0, 7.0, 2.0]]], [[[6.0, 5.0, 3.0]], [[1.0, 4.0, 3.0]]], [[[3.0, 6.0, 6.0]], [[6.0, 3.0, 2.0]]], [[[5.0, 8.0, 8.0]], [[3.0, 3.0, 6.0]]]]),self.functionspace)
4653          val.setTaggedValue(1,numarray.array([[[[1.0, 1.0, 8.0]], [[6.0, 2.0, 1.0]]], [[[2.0, 1.0, 6.0]], [[7.0, 5.0, 2.0]]], [[[1.0, 5.0, 5.0]], [[8.0, 4.0, 2.0]]], [[[7.0, 7.0, 7.0]], [[2.0, 1.0, 6.0]]]]))
4654          arg[:,:2,2:]=val
4655          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4656          ref=msk_ref*numarray.array([[[[7.0, 3.0, 2.0], [7.0, 7.0, 3.0], [1.0, 5.0, 4.0]], [[8.0, 4.0, 2.0], [1.0, 3.0, 1.0], [8.0, 7.0, 2.0]], [[6.0, 1.0, 1.0], [6.0, 3.0, 7.0], [4.0, 4.0, 8.0]]], [[[3.0, 3.0, 5.0], [8.0, 1.0, 1.0], [6.0, 5.0, 3.0]], [[1.0, 4.0, 8.0], [7.0, 8.0, 8.0], [1.0, 4.0, 3.0]], [[4.0, 5.0, 2.0], [1.0, 1.0, 6.0], [7.0, 7.0, 6.0]]], [[[4.0, 7.0, 7.0], [4.0, 3.0, 6.0], [3.0, 6.0, 6.0]], [[5.0, 2.0, 3.0], [7.0, 5.0, 7.0], [6.0, 3.0, 2.0]], [[7.0, 6.0, 3.0], [4.0, 2.0, 3.0], [5.0, 2.0, 8.0]]], [[[4.0, 1.0, 2.0], [3.0, 6.0, 8.0], [5.0, 8.0, 8.0]], [[1.0, 1.0, 2.0], [2.0, 7.0, 1.0], [3.0, 3.0, 6.0]], [[5.0, 8.0, 8.0], [5.0, 3.0, 3.0], [7.0, 6.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 3.0, 2.0], [7.0, 7.0, 3.0], [1.0, 1.0, 8.0]], [[8.0, 4.0, 2.0], [1.0, 3.0, 1.0], [6.0, 2.0, 1.0]], [[6.0, 1.0, 1.0], [6.0, 3.0, 7.0], [4.0, 4.0, 8.0]]], [[[3.0, 3.0, 5.0], [8.0, 1.0, 1.0], [2.0, 1.0, 6.0]], [[1.0, 4.0, 8.0], [7.0, 8.0, 8.0], [7.0, 5.0, 2.0]], [[4.0, 5.0, 2.0], [1.0, 1.0, 6.0], [7.0, 7.0, 6.0]]], [[[4.0, 7.0, 7.0], [4.0, 3.0, 6.0], [1.0, 5.0, 5.0]], [[5.0, 2.0, 3.0], [7.0, 5.0, 7.0], [8.0, 4.0, 2.0]], [[7.0, 6.0, 3.0], [4.0, 2.0, 3.0], [5.0, 2.0, 8.0]]], [[[4.0, 1.0, 2.0], [3.0, 6.0, 8.0], [7.0, 7.0, 7.0]], [[1.0, 1.0, 2.0], [2.0, 7.0, 1.0], [2.0, 1.0, 6.0]], [[5.0, 8.0, 8.0], [5.0, 3.0, 3.0], [7.0, 6.0, 2.0]]]])
4657          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4658       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4659       def test_setslice_constData_rank4_taggedData_CLRN(self):
4660          arg=Data(numarray.array([[[[8.0, 1.0, 8.0], [6.0, 7.0, 3.0], [4.0, 7.0, 1.0]], [[1.0, 8.0, 8.0], [4.0, 6.0, 2.0], [4.0, 2.0, 2.0]], [[5.0, 2.0, 2.0], [5.0, 8.0, 7.0], [3.0, 6.0, 2.0]]], [[[8.0, 4.0, 7.0], [5.0, 7.0, 3.0], [2.0, 1.0, 2.0]], [[1.0, 5.0, 4.0], [2.0, 5.0, 1.0], [4.0, 2.0, 6.0]], [[8.0, 1.0, 2.0], [7.0, 2.0, 7.0], [4.0, 8.0, 2.0]]], [[[8.0, 5.0, 3.0], [8.0, 1.0, 2.0], [4.0, 7.0, 5.0]], [[8.0, 6.0, 8.0], [6.0, 4.0, 8.0], [8.0, 7.0, 8.0]], [[5.0, 1.0, 7.0], [4.0, 8.0, 8.0], [5.0, 4.0, 4.0]]], [[[4.0, 3.0, 3.0], [1.0, 6.0, 3.0], [1.0, 8.0, 3.0]], [[4.0, 4.0, 2.0], [4.0, 5.0, 1.0], [2.0, 8.0, 6.0]], [[4.0, 8.0, 3.0], [1.0, 6.0, 6.0], [4.0, 6.0, 3.0]]]]),self.functionspace)
4661          val=Data(numarray.array([[[[2.0, 3.0, 3.0]]], [[[7.0, 1.0, 5.0]]], [[[4.0, 5.0, 4.0]]], [[[2.0, 7.0, 8.0]]]]),self.functionspace)
4662          val.setTaggedValue(1,numarray.array([[[[8.0, 2.0, 7.0]]], [[[3.0, 2.0, 5.0]]], [[[7.0, 7.0, 1.0]]], [[[6.0, 4.0, 6.0]]]]))
4663          arg[:,2:,1:2]=val
4664          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4665          ref=msk_ref*numarray.array([[[[8.0, 1.0, 8.0], [6.0, 7.0, 3.0], [4.0, 7.0, 1.0]], [[1.0, 8.0, 8.0], [4.0, 6.0, 2.0], [4.0, 2.0, 2.0]], [[5.0, 2.0, 2.0], [2.0, 3.0, 3.0], [3.0, 6.0, 2.0]]], [[[8.0, 4.0, 7.0], [5.0, 7.0, 3.0], [2.0, 1.0, 2.0]], [[1.0, 5.0, 4.0], [2.0, 5.0, 1.0], [4.0, 2.0, 6.0]], [[8.0, 1.0, 2.0], [7.0, 1.0, 5.0], [4.0, 8.0, 2.0]]], [[[8.0, 5.0, 3.0], [8.0, 1.0, 2.0], [4.0, 7.0, 5.0]], [[8.0, 6.0, 8.0], [6.0, 4.0, 8.0], [8.0, 7.0, 8.0]], [[5.0, 1.0, 7.0], [4.0, 5.0, 4.0], [5.0, 4.0, 4.0]]], [[[4.0, 3.0, 3.0], [1.0, 6.0, 3.0], [1.0, 8.0, 3.0]], [[4.0, 4.0, 2.0], [4.0, 5.0, 1.0], [2.0, 8.0, 6.0]], [[4.0, 8.0, 3.0], [2.0, 7.0, 8.0], [4.0, 6.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 1.0, 8.0], [6.0, 7.0, 3.0], [4.0, 7.0, 1.0]], [[1.0, 8.0, 8.0], [4.0, 6.0, 2.0], [4.0, 2.0, 2.0]], [[5.0, 2.0, 2.0], [8.0, 2.0, 7.0], [3.0, 6.0, 2.0]]], [[[8.0, 4.0, 7.0], [5.0, 7.0, 3.0], [2.0, 1.0, 2.0]], [[1.0, 5.0, 4.0], [2.0, 5.0, 1.0], [4.0, 2.0, 6.0]], [[8.0, 1.0, 2.0], [3.0, 2.0, 5.0], [4.0, 8.0, 2.0]]], [[[8.0, 5.0, 3.0], [8.0, 1.0, 2.0], [4.0, 7.0, 5.0]], [[8.0, 6.0, 8.0], [6.0, 4.0, 8.0], [8.0, 7.0, 8.0]], [[5.0, 1.0, 7.0], [7.0, 7.0, 1.0], [5.0, 4.0, 4.0]]], [[[4.0, 3.0, 3.0], [1.0, 6.0, 3.0], [1.0, 8.0, 3.0]], [[4.0, 4.0, 2.0], [4.0, 5.0, 1.0], [2.0, 8.0, 6.0]], [[4.0, 8.0, 3.0], [6.0, 4.0, 6.0], [4.0, 6.0, 3.0]]]])
4666          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4667       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4668       def test_setslice_constData_rank4_taggedData_CLLL(self):
4669          arg=Data(numarray.array([[[[8.0, 8.0, 4.0], [4.0, 7.0, 6.0], [7.0, 2.0, 4.0]], [[8.0, 8.0, 2.0], [3.0, 5.0, 2.0], [1.0, 1.0, 5.0]], [[6.0, 7.0, 7.0], [2.0, 4.0, 5.0], [4.0, 7.0, 5.0]]], [[[5.0, 3.0, 2.0], [2.0, 8.0, 4.0], [1.0, 3.0, 7.0]], [[3.0, 6.0, 4.0], [1.0, 6.0, 4.0], [1.0, 3.0, 7.0]], [[3.0, 8.0, 5.0], [1.0, 7.0, 8.0], [7.0, 5.0, 1.0]]], [[[7.0, 1.0, 7.0], [3.0, 6.0, 4.0], [7.0, 8.0, 5.0]], [[3.0, 3.0, 6.0], [7.0, 2.0, 5.0], [6.0, 4.0, 4.0]], [[7.0, 7.0, 1.0], [3.0, 4.0, 1.0], [6.0, 7.0, 8.0]]], [[[4.0, 3.0, 1.0], [2.0, 8.0, 6.0], [8.0, 8.0, 8.0]], [[2.0, 1.0, 6.0], [3.0, 5.0, 3.0], [8.0, 4.0, 7.0]], [[4.0, 6.0, 7.0], [5.0, 4.0, 3.0], [8.0, 4.0, 7.0]]]]),self.functionspace)
4670          val=Data(numarray.array([[[[3.0]]], [[[6.0]]], [[[2.0]]], [[[5.0]]]]),self.functionspace)
4671          val.setTaggedValue(1,numarray.array([[[[5.0]]], [[[2.0]]], [[[5.0]]], [[[2.0]]]]))
4672          arg[:,2:,2:,2:]=val
4673          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4674          ref=msk_ref*numarray.array([[[[8.0, 8.0, 4.0], [4.0, 7.0, 6.0], [7.0, 2.0, 4.0]], [[8.0, 8.0, 2.0], [3.0, 5.0, 2.0], [1.0, 1.0, 5.0]], [[6.0, 7.0, 7.0], [2.0, 4.0, 5.0], [4.0, 7.0, 3.0]]], [[[5.0, 3.0, 2.0], [2.0, 8.0, 4.0], [1.0, 3.0, 7.0]], [[3.0, 6.0, 4.0], [1.0, 6.0, 4.0], [1.0, 3.0, 7.0]], [[3.0, 8.0, 5.0], [1.0, 7.0, 8.0], [7.0, 5.0, 6.0]]], [[[7.0, 1.0, 7.0], [3.0, 6.0, 4.0], [7.0, 8.0, 5.0]], [[3.0, 3.0, 6.0], [7.0, 2.0, 5.0], [6.0, 4.0, 4.0]], [[7.0, 7.0, 1.0], [3.0, 4.0, 1.0], [6.0, 7.0, 2.0]]], [[[4.0, 3.0, 1.0], [2.0, 8.0, 6.0], [8.0, 8.0, 8.0]], [[2.0, 1.0, 6.0], [3.0, 5.0, 3.0], [8.0, 4.0, 7.0]], [[4.0, 6.0, 7.0], [5.0, 4.0, 3.0], [8.0, 4.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 8.0, 4.0], [4.0, 7.0, 6.0], [7.0, 2.0, 4.0]], [[8.0, 8.0, 2.0], [3.0, 5.0, 2.0], [1.0, 1.0, 5.0]], [[6.0, 7.0, 7.0], [2.0, 4.0, 5.0], [4.0, 7.0, 5.0]]], [[[5.0, 3.0, 2.0], [2.0, 8.0, 4.0], [1.0, 3.0, 7.0]], [[3.0, 6.0, 4.0], [1.0, 6.0, 4.0], [1.0, 3.0, 7.0]], [[3.0, 8.0, 5.0], [1.0, 7.0, 8.0], [7.0, 5.0, 2.0]]], [[[7.0, 1.0, 7.0], [3.0, 6.0, 4.0], [7.0, 8.0, 5.0]], [[3.0, 3.0, 6.0], [7.0, 2.0, 5.0], [6.0, 4.0, 4.0]], [[7.0, 7.0, 1.0], [3.0, 4.0, 1.0], [6.0, 7.0, 5.0]]], [[[4.0, 3.0, 1.0], [2.0, 8.0, 6.0], [8.0, 8.0, 8.0]], [[2.0, 1.0, 6.0], [3.0, 5.0, 3.0], [8.0, 4.0, 7.0]], [[4.0, 6.0, 7.0], [5.0, 4.0, 3.0], [8.0, 4.0, 2.0]]]])
4675          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4676       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4677       def test_setslice_constData_rank4_taggedData_RCLN(self):
4678          arg=Data(numarray.array([[[[6.0, 6.0, 5.0], [2.0, 1.0, 4.0], [7.0, 8.0, 2.0]], [[8.0, 1.0, 6.0], [1.0, 4.0, 5.0], [6.0, 6.0, 7.0]], [[4.0, 3.0, 1.0], [2.0, 1.0, 1.0], [4.0, 6.0, 2.0]]], [[[4.0, 3.0, 7.0], [2.0, 5.0, 2.0], [1.0, 3.0, 3.0]], [[6.0, 5.0, 5.0], [6.0, 4.0, 6.0], [2.0, 5.0, 6.0]], [[8.0, 1.0, 8.0], [6.0, 1.0, 2.0], [6.0, 5.0, 6.0]]], [[[5.0, 4.0, 1.0], [1.0, 4.0, 5.0], [4.0, 2.0, 5.0]], [[4.0, 7.0, 7.0], [8.0, 6.0, 6.0], [2.0, 7.0, 1.0]], [[1.0, 3.0, 6.0], [4.0, 6.0, 4.0], [4.0, 4.0, 4.0]]], [[[8.0, 2.0, 3.0], [4.0, 2.0, 1.0], [4.0, 5.0, 3.0]], [[7.0, 1.0, 1.0], [5.0, 4.0, 7.0], [3.0, 1.0, 1.0]], [[3.0, 2.0, 8.0], [4.0, 1.0, 5.0], [2.0, 2.0, 2.0]]]]),self.functionspace)
4679          val=Data(numarray.array([[[[4.0, 5.0, 5.0]], [[5.0, 4.0, 7.0]], [[5.0, 2.0, 6.0]]], [[[5.0, 8.0, 7.0]], [[8.0, 4.0, 5.0]], [[4.0, 5.0, 6.0]]]]),self.functionspace)
4680          val.setTaggedValue(1,numarray.array([[[[7.0, 4.0, 5.0]], [[6.0, 6.0, 8.0]], [[1.0, 7.0, 2.0]]], [[[8.0, 4.0, 6.0]], [[3.0, 5.0, 6.0]], [[5.0, 2.0, 3.0]]]]))
4681          arg[1:3,:,2:]=val
4682          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4683          ref=msk_ref*numarray.array([[[[6.0, 6.0, 5.0], [2.0, 1.0, 4.0], [7.0, 8.0, 2.0]], [[8.0, 1.0, 6.0], [1.0, 4.0, 5.0], [6.0, 6.0, 7.0]], [[4.0, 3.0, 1.0], [2.0, 1.0, 1.0], [4.0, 6.0, 2.0]]], [[[4.0, 3.0, 7.0], [2.0, 5.0, 2.0], [4.0, 5.0, 5.0]], [[6.0, 5.0, 5.0], [6.0, 4.0, 6.0], [5.0, 4.0, 7.0]], [[8.0, 1.0, 8.0], [6.0, 1.0, 2.0], [5.0, 2.0, 6.0]]], [[[5.0, 4.0, 1.0], [1.0, 4.0, 5.0], [5.0, 8.0, 7.0]], [[4.0, 7.0, 7.0], [8.0, 6.0, 6.0], [8.0, 4.0, 5.0]], [[1.0, 3.0, 6.0], [4.0, 6.0, 4.0], [4.0, 5.0, 6.0]]], [[[8.0, 2.0, 3.0], [4.0, 2.0, 1.0], [4.0, 5.0, 3.0]], [[7.0, 1.0, 1.0], [5.0, 4.0, 7.0], [3.0, 1.0, 1.0]], [[3.0, 2.0, 8.0], [4.0, 1.0, 5.0], [2.0, 2.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 6.0, 5.0], [2.0, 1.0, 4.0], [7.0, 8.0, 2.0]], [[8.0, 1.0, 6.0], [1.0, 4.0, 5.0], [6.0, 6.0, 7.0]], [[4.0, 3.0, 1.0], [2.0, 1.0, 1.0], [4.0, 6.0, 2.0]]], [[[4.0, 3.0, 7.0], [2.0, 5.0, 2.0], [7.0, 4.0, 5.0]], [[6.0, 5.0, 5.0], [6.0, 4.0, 6.0], [6.0, 6.0, 8.0]], [[8.0, 1.0, 8.0], [6.0, 1.0, 2.0], [1.0, 7.0, 2.0]]], [[[5.0, 4.0, 1.0], [1.0, 4.0, 5.0], [8.0, 4.0, 6.0]], [[4.0, 7.0, 7.0], [8.0, 6.0, 6.0], [3.0, 5.0, 6.0]], [[1.0, 3.0, 6.0], [4.0, 6.0, 4.0], [5.0, 2.0, 3.0]]], [[[8.0, 2.0, 3.0], [4.0, 2.0, 1.0], [4.0, 5.0, 3.0]], [[7.0, 1.0, 1.0], [5.0, 4.0, 7.0], [3.0, 1.0, 1.0]], [[3.0, 2.0, 8.0], [4.0, 1.0, 5.0], [2.0, 2.0, 2.0]]]])
4684          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4685       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4686       def test_setslice_constData_rank4_taggedData_RRRN(self):
4687          arg=Data(numarray.array([[[[3.0, 4.0, 6.0], [2.0, 7.0, 6.0], [2.0, 1.0, 7.0]], [[6.0, 1.0, 6.0], [1.0, 8.0, 8.0], [1.0, 4.0, 8.0]], [[3.0, 6.0, 7.0], [1.0, 7.0, 2.0], [5.0, 7.0, 6.0]]], [[[1.0, 6.0, 4.0], [7.0, 1.0, 3.0], [7.0, 2.0, 1.0]], [[2.0, 6.0, 7.0], [8.0, 5.0, 7.0], [1.0, 3.0, 5.0]], [[1.0, 8.0, 5.0], [4.0, 2.0, 5.0], [4.0, 3.0, 6.0]]], [[[7.0, 5.0, 7.0], [1.0, 4.0, 5.0], [8.0, 8.0, 6.0]], [[1.0, 1.0, 5.0], [5.0, 2.0, 6.0], [7.0, 3.0, 8.0]], [[6.0, 7.0, 3.0], [3.0, 1.0, 8.0], [1.0, 4.0, 8.0]]], [[[1.0, 7.0, 6.0], [3.0, 1.0, 6.0], [3.0, 6.0, 4.0]], [[1.0, 4.0, 4.0], [7.0, 6.0, 3.0], [8.0, 5.0, 1.0]], [[1.0, 4.0, 7.0], [1.0, 1.0, 4.0], [3.0, 7.0, 6.0]]]]),self.functionspace)
4688          val=Data(numarray.array([[[[8.0, 1.0, 6.0]]], [[[2.0, 6.0, 2.0]]]]),self.functionspace)
4689          val.setTaggedValue(1,numarray.array([[[[2.0, 8.0, 3.0]]], [[[1.0, 4.0, 1.0]]]]))
4690          arg[1:3,1:2,1:2]=val
4691          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4692          ref=msk_ref*numarray.array([[[[3.0, 4.0, 6.0], [2.0, 7.0, 6.0], [2.0, 1.0, 7.0]], [[6.0, 1.0, 6.0], [1.0, 8.0, 8.0], [1.0, 4.0, 8.0]], [[3.0, 6.0, 7.0], [1.0, 7.0, 2.0], [5.0, 7.0, 6.0]]], [[[1.0, 6.0, 4.0], [7.0, 1.0, 3.0], [7.0, 2.0, 1.0]], [[2.0, 6.0, 7.0], [8.0, 1.0, 6.0], [1.0, 3.0, 5.0]], [[1.0, 8.0, 5.0], [4.0, 2.0, 5.0], [4.0, 3.0, 6.0]]], [[[7.0, 5.0, 7.0], [1.0, 4.0, 5.0], [8.0, 8.0, 6.0]], [[1.0, 1.0, 5.0], [2.0, 6.0, 2.0], [7.0, 3.0, 8.0]], [[6.0, 7.0, 3.0], [3.0, 1.0, 8.0], [1.0, 4.0, 8.0]]], [[[1.0, 7.0, 6.0], [3.0, 1.0, 6.0], [3.0, 6.0, 4.0]], [[1.0, 4.0, 4.0], [7.0, 6.0, 3.0], [8.0, 5.0, 1.0]], [[1.0, 4.0, 7.0], [1.0, 1.0, 4.0], [3.0, 7.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 4.0, 6.0], [2.0, 7.0, 6.0], [2.0, 1.0, 7.0]], [[6.0, 1.0, 6.0], [1.0, 8.0, 8.0], [1.0, 4.0, 8.0]], [[3.0, 6.0, 7.0], [1.0, 7.0, 2.0], [5.0, 7.0, 6.0]]], [[[1.0, 6.0, 4.0], [7.0, 1.0, 3.0], [7.0, 2.0, 1.0]], [[2.0, 6.0, 7.0], [2.0, 8.0, 3.0], [1.0, 3.0, 5.0]], [[1.0, 8.0, 5.0], [4.0, 2.0, 5.0], [4.0, 3.0, 6.0]]], [[[7.0, 5.0, 7.0], [1.0, 4.0, 5.0], [8.0, 8.0, 6.0]], [[1.0, 1.0, 5.0], [1.0, 4.0, 1.0], [7.0, 3.0, 8.0]], [[6.0, 7.0, 3.0], [3.0, 1.0, 8.0], [1.0, 4.0, 8.0]]], [[[1.0, 7.0, 6.0], [3.0, 1.0, 6.0], [3.0, 6.0, 4.0]], [[1.0, 4.0, 4.0], [7.0, 6.0, 3.0], [8.0, 5.0, 1.0]], [[1.0, 4.0, 7.0], [1.0, 1.0, 4.0], [3.0, 7.0, 6.0]]]])
4693          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4694       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4695       def test_setslice_constData_rank4_taggedData_CPRN(self):
4696          arg=Data(numarray.array([[[[3.0, 2.0, 5.0], [4.0, 2.0, 6.0], [4.0, 3.0, 5.0]], [[6.0, 1.0, 1.0], [6.0, 6.0, 2.0], [3.0, 8.0, 3.0]], [[6.0, 5.0, 1.0], [2.0, 1.0, 7.0], [4.0, 4.0, 4.0]]], [[[2.0, 7.0, 1.0], [8.0, 6.0, 2.0], [4.0, 2.0, 2.0]], [[1.0, 3.0, 1.0], [7.0, 2.0, 2.0], [4.0, 3.0, 2.0]], [[4.0, 1.0, 7.0], [5.0, 1.0, 2.0], [5.0, 5.0, 8.0]]], [[[8.0, 8.0, 8.0], [4.0, 4.0, 7.0], [1.0, 6.0, 8.0]], [[2.0, 2.0, 6.0], [5.0, 3.0, 5.0], [2.0, 5.0, 4.0]], [[4.0, 6.0, 6.0], [7.0, 2.0, 7.0], [1.0, 1.0, 8.0]]], [[[8.0, 8.0, 8.0], [3.0, 3.0, 6.0], [3.0, 5.0, 6.0]], [[1.0, 5.0, 6.0], [8.0, 4.0, 3.0], [8.0, 3.0, 3.0]], [[5.0, 6.0, 8.0], [7.0, 3.0, 6.0], [1.0, 8.0, 6.0]]]]),self.functionspace)
4697          val=Data(numarray.array([[[3.0, 5.0, 5.0]], [[4.0, 7.0, 5.0]], [[2.0, 6.0, 6.0]], [[5.0, 6.0, 1.0]]]),self.functionspace)
4698          val.setTaggedValue(1,numarray.array([[[4.0, 6.0, 6.0]], [[4.0, 2.0, 2.0]], [[5.0, 5.0, 7.0]], [[3.0, 4.0, 5.0]]]))
4699          arg[:,1,1:2]=val
4700          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4701          ref=msk_ref*numarray.array([[[[3.0, 2.0, 5.0], [4.0, 2.0, 6.0], [4.0, 3.0, 5.0]], [[6.0, 1.0, 1.0], [3.0, 5.0, 5.0], [3.0, 8.0, 3.0]], [[6.0, 5.0, 1.0], [2.0, 1.0, 7.0], [4.0, 4.0, 4.0]]], [[[2.0, 7.0, 1.0], [8.0, 6.0, 2.0], [4.0, 2.0, 2.0]], [[1.0, 3.0, 1.0], [4.0, 7.0, 5.0], [4.0, 3.0, 2.0]], [[4.0, 1.0, 7.0], [5.0, 1.0, 2.0], [5.0, 5.0, 8.0]]], [[[8.0, 8.0, 8.0], [4.0, 4.0, 7.0], [1.0, 6.0, 8.0]], [[2.0, 2.0, 6.0], [2.0, 6.0, 6.0], [2.0, 5.0, 4.0]], [[4.0, 6.0, 6.0], [7.0, 2.0, 7.0], [1.0, 1.0, 8.0]]], [[[8.0, 8.0, 8.0], [3.0, 3.0, 6.0], [3.0, 5.0, 6.0]], [[1.0, 5.0, 6.0], [5.0, 6.0, 1.0], [8.0, 3.0, 3.0]], [[5.0, 6.0, 8.0], [7.0, 3.0, 6.0], [1.0, 8.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 2.0, 5.0], [4.0, 2.0, 6.0], [4.0, 3.0, 5.0]], [[6.0, 1.0, 1.0], [4.0, 6.0, 6.0], [3.0, 8.0, 3.0]], [[6.0, 5.0, 1.0], [2.0, 1.0, 7.0], [4.0, 4.0, 4.0]]], [[[2.0, 7.0, 1.0], [8.0, 6.0, 2.0], [4.0, 2.0, 2.0]], [[1.0, 3.0, 1.0], [4.0, 2.0, 2.0], [4.0, 3.0, 2.0]], [[4.0, 1.0, 7.0], [5.0, 1.0, 2.0], [5.0, 5.0, 8.0]]], [[[8.0, 8.0, 8.0], [4.0, 4.0, 7.0], [1.0, 6.0, 8.0]], [[2.0, 2.0, 6.0], [5.0, 5.0, 7.0], [2.0, 5.0, 4.0]], [[4.0, 6.0, 6.0], [7.0, 2.0, 7.0], [1.0, 1.0, 8.0]]], [[[8.0, 8.0, 8.0], [3.0, 3.0, 6.0], [3.0, 5.0, 6.0]], [[1.0, 5.0, 6.0], [3.0, 4.0, 5.0], [8.0, 3.0, 3.0]], [[5.0, 6.0, 8.0], [7.0, 3.0, 6.0], [1.0, 8.0, 6.0]]]])
4702          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4703       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4704       def test_setslice_constData_rank4_taggedData_CPUN(self):
4705          arg=Data(numarray.array([[[[7.0, 5.0, 3.0], [8.0, 5.0, 4.0], [3.0, 6.0, 1.0]], [[7.0, 6.0, 6.0], [2.0, 7.0, 2.0], [1.0, 7.0, 4.0]], [[3.0, 3.0, 1.0], [6.0, 5.0, 7.0], [5.0, 8.0, 3.0]]], [[[2.0, 8.0, 1.0], [1.0, 3.0, 2.0], [2.0, 8.0, 7.0]], [[1.0, 4.0, 1.0], [1.0, 4.0, 8.0], [4.0, 5.0, 1.0]], [[3.0, 2.0, 5.0], [5.0, 4.0, 5.0], [8.0, 8.0, 1.0]]], [[[6.0, 7.0, 7.0], [6.0, 1.0, 5.0], [4.0, 5.0, 5.0]], [[7.0, 2.0, 8.0], [3.0, 6.0, 7.0], [6.0, 6.0, 2.0]], [[2.0, 3.0, 1.0], [3.0, 4.0, 4.0], [5.0, 2.0, 5.0]]], [[[5.0, 1.0, 4.0], [3.0, 1.0, 3.0], [7.0, 6.0, 3.0]], [[6.0, 1.0, 2.0], [7.0, 8.0, 6.0], [4.0, 5.0, 1.0]], [[4.0, 4.0, 6.0], [6.0, 3.0, 8.0], [1.0, 2.0, 3.0]]]]),self.functionspace)
4706          val=Data(numarray.array([[[4.0, 7.0, 8.0], [5.0, 1.0, 4.0]], [[3.0, 5.0, 4.0], [7.0, 2.0, 1.0]], [[8.0, 8.0, 5.0], [6.0, 3.0, 5.0]], [[8.0, 5.0, 6.0], [7.0, 5.0, 1.0]]]),self.functionspace)
4707          val.setTaggedValue(1,numarray.array([[[7.0, 7.0, 1.0], [4.0, 2.0, 7.0]], [[8.0, 7.0, 1.0], [4.0, 6.0, 1.0]], [[5.0, 8.0, 6.0], [8.0, 4.0, 7.0]], [[7.0, 5.0, 2.0], [4.0, 8.0, 8.0]]]))
4708          arg[:,1,:2]=val
4709          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4710          ref=msk_ref*numarray.array([[[[7.0, 5.0, 3.0], [8.0, 5.0, 4.0], [3.0, 6.0, 1.0]], [[4.0, 7.0, 8.0], [5.0, 1.0, 4.0], [1.0, 7.0, 4.0]], [[3.0, 3.0, 1.0], [6.0, 5.0, 7.0], [5.0, 8.0, 3.0]]], [[[2.0, 8.0, 1.0], [1.0, 3.0, 2.0], [2.0, 8.0, 7.0]], [[3.0, 5.0, 4.0], [7.0, 2.0, 1.0], [4.0, 5.0, 1.0]], [[3.0, 2.0, 5.0], [5.0, 4.0, 5.0], [8.0, 8.0, 1.0]]], [[[6.0, 7.0, 7.0], [6.0, 1.0, 5.0], [4.0, 5.0, 5.0]], [[8.0, 8.0, 5.0], [6.0, 3.0, 5.0], [6.0, 6.0, 2.0]], [[2.0, 3.0, 1.0], [3.0, 4.0, 4.0], [5.0, 2.0, 5.0]]], [[[5.0, 1.0, 4.0], [3.0, 1.0, 3.0], [7.0, 6.0, 3.0]], [[8.0, 5.0, 6.0], [7.0, 5.0, 1.0], [4.0, 5.0, 1.0]], [[4.0, 4.0, 6.0], [6.0, 3.0, 8.0], [1.0, 2.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 5.0, 3.0], [8.0, 5.0, 4.0], [3.0, 6.0, 1.0]], [[7.0, 7.0, 1.0], [4.0, 2.0, 7.0], [1.0, 7.0, 4.0]], [[3.0, 3.0, 1.0], [6.0, 5.0, 7.0], [5.0, 8.0, 3.0]]], [[[2.0, 8.0, 1.0], [1.0, 3.0, 2.0], [2.0, 8.0, 7.0]], [[8.0, 7.0, 1.0], [4.0, 6.0, 1.0], [4.0, 5.0, 1.0]], [[3.0, 2.0, 5.0], [5.0, 4.0, 5.0], [8.0, 8.0, 1.0]]], [[[6.0, 7.0, 7.0], [6.0, 1.0, 5.0], [4.0, 5.0, 5.0]], [[5.0, 8.0, 6.0], [8.0, 4.0, 7.0], [6.0, 6.0, 2.0]], [[2.0, 3.0, 1.0], [3.0, 4.0, 4.0], [5.0, 2.0, 5.0]]], [[[5.0, 1.0, 4.0], [3.0, 1.0, 3.0], [7.0, 6.0, 3.0]], [[7.0, 5.0, 2.0], [4.0, 8.0, 8.0], [4.0, 5.0, 1.0]], [[4.0, 4.0, 6.0], [6.0, 3.0, 8.0], [1.0, 2.0, 3.0]]]])
4711          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4712       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4713       def test_setslice_constData_rank4_taggedData_LPRN(self):
4714          arg=Data(numarray.array([[[[4.0, 3.0, 6.0], [5.0, 8.0, 6.0], [8.0, 1.0, 7.0]], [[8.0, 8.0, 3.0], [6.0, 8.0, 6.0], [3.0, 8.0, 3.0]], [[5.0, 1.0, 6.0], [3.0, 7.0, 7.0], [2.0, 1.0, 7.0]]], [[[1.0, 2.0, 1.0], [7.0, 8.0, 5.0], [5.0, 6.0, 6.0]], [[1.0, 7.0, 5.0], [8.0, 3.0, 8.0], [2.0, 5.0, 8.0]], [[3.0, 6.0, 2.0], [8.0, 3.0, 2.0], [4.0, 2.0, 5.0]]], [[[2.0, 8.0, 1.0], [1.0, 8.0, 6.0], [5.0, 2.0, 3.0]], [[2.0, 1.0, 4.0], [5.0, 5.0, 6.0], [4.0, 1.0, 1.0]], [[1.0, 7.0, 1.0], [5.0, 6.0, 5.0], [7.0, 4.0, 3.0]]], [[[6.0, 5.0, 7.0], [6.0, 5.0, 4.0], [6.0, 1.0, 5.0]], [[6.0, 3.0, 3.0], [6.0, 5.0, 7.0], [5.0, 7.0, 4.0]], [[5.0, 2.0, 3.0], [1.0, 8.0, 2.0], [6.0, 1.0, 3.0]]]]),self.functionspace)
4715          val=Data(numarray.array([[[6.0, 5.0, 3.0]], [[5.0, 8.0, 8.0]]]),self.functionspace)
4716          val.setTaggedValue(1,numarray.array([[[8.0, 2.0, 3.0]], [[8.0, 5.0, 7.0]]]))
4717          arg[2:,1,1:2]=val
4718          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4719          ref=msk_ref*numarray.array([[[[4.0, 3.0, 6.0], [5.0, 8.0, 6.0], [8.0, 1.0, 7.0]], [[8.0, 8.0, 3.0], [6.0, 8.0, 6.0], [3.0, 8.0, 3.0]], [[5.0, 1.0, 6.0], [3.0, 7.0, 7.0], [2.0, 1.0, 7.0]]], [[[1.0, 2.0, 1.0], [7.0, 8.0, 5.0], [5.0, 6.0, 6.0]], [[1.0, 7.0, 5.0], [8.0, 3.0, 8.0], [2.0, 5.0, 8.0]], [[3.0, 6.0, 2.0], [8.0, 3.0, 2.0], [4.0, 2.0, 5.0]]], [[[2.0, 8.0, 1.0], [1.0, 8.0, 6.0], [5.0, 2.0, 3.0]], [[2.0, 1.0, 4.0], [6.0, 5.0, 3.0], [4.0, 1.0, 1.0]], [[1.0, 7.0, 1.0], [5.0, 6.0, 5.0], [7.0, 4.0, 3.0]]], [[[6.0, 5.0, 7.0], [6.0, 5.0, 4.0], [6.0, 1.0, 5.0]], [[6.0, 3.0, 3.0], [5.0, 8.0, 8.0], [5.0, 7.0, 4.0]], [[5.0, 2.0, 3.0], [1.0, 8.0, 2.0], [6.0, 1.0, 3.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 3.0, 6.0], [5.0, 8.0, 6.0], [8.0, 1.0, 7.0]], [[8.0, 8.0, 3.0], [6.0, 8.0, 6.0], [3.0, 8.0, 3.0]], [[5.0, 1.0, 6.0], [3.0, 7.0, 7.0], [2.0, 1.0, 7.0]]], [[[1.0, 2.0, 1.0], [7.0, 8.0, 5.0], [5.0, 6.0, 6.0]], [[1.0, 7.0, 5.0], [8.0, 3.0, 8.0], [2.0, 5.0, 8.0]], [[3.0, 6.0, 2.0], [8.0, 3.0, 2.0], [4.0, 2.0, 5.0]]], [[[2.0, 8.0, 1.0], [1.0, 8.0, 6.0], [5.0, 2.0, 3.0]], [[2.0, 1.0, 4.0], [8.0, 2.0, 3.0], [4.0, 1.0, 1.0]], [[1.0, 7.0, 1.0], [5.0, 6.0, 5.0], [7.0, 4.0, 3.0]]], [[[6.0, 5.0, 7.0], [6.0, 5.0, 4.0], [6.0, 1.0, 5.0]], [[6.0, 3.0, 3.0], [8.0, 5.0, 7.0], [5.0, 7.0, 4.0]], [[5.0, 2.0, 3.0], [1.0, 8.0, 2.0], [6.0, 1.0, 3.0]]]])
4720          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4721       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4722       def test_setslice_constData_rank4_taggedData_LCRN(self):
4723          arg=Data(numarray.array([[[[4.0, 4.0, 5.0], [8.0, 5.0, 3.0], [3.0, 2.0, 2.0]], [[7.0, 2.0, 3.0], [1.0, 4.0, 5.0], [8.0, 2.0, 1.0]], [[8.0, 1.0, 5.0], [2.0, 3.0, 4.0], [4.0, 4.0, 3.0]]], [[[8.0, 6.0, 1.0], [8.0, 6.0, 6.0], [2.0, 2.0, 6.0]], [[6.0, 6.0, 5.0], [2.0, 8.0, 6.0], [5.0, 2.0, 2.0]], [[4.0, 7.0, 3.0], [3.0, 3.0, 3.0], [6.0, 3.0, 7.0]]], [[[1.0, 7.0, 1.0], [5.0, 6.0, 7.0], [2.0, 2.0, 4.0]], [[3.0, 6.0, 7.0], [1.0, 3.0, 2.0], [7.0, 8.0, 1.0]], [[3.0, 7.0, 6.0], [7.0, 5.0, 6.0], [2.0, 5.0, 4.0]]], [[[3.0, 4.0, 5.0], [6.0, 7.0, 7.0], [5.0, 8.0, 5.0]], [[4.0, 4.0, 8.0], [7.0, 5.0, 7.0], [3.0, 8.0, 6.0]], [[7.0, 7.0, 7.0], [6.0, 4.0, 7.0], [4.0, 6.0, 6.0]]]]),self.functionspace)
4724          val=Data(numarray.array([[[[5.0, 5.0, 5.0]], [[8.0, 1.0, 2.0]], [[1.0, 8.0, 8.0]]], [[[5.0, 5.0, 2.0]], [[4.0, 8.0, 5.0]], [[8.0, 4.0, 4.0]]]]),self.functionspace)
4725          val.setTaggedValue(1,numarray.array([[[[7.0, 2.0, 3.0]], [[5.0, 5.0, 1.0]], [[8.0, 1.0, 3.0]]], [[[1.0, 4.0, 4.0]], [[4.0, 4.0, 1.0]], [[4.0, 5.0, 2.0]]]]))
4726          arg[2:,:,1:2]=val
4727          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4728          ref=msk_ref*numarray.array([[[[4.0, 4.0, 5.0], [8.0, 5.0, 3.0], [3.0, 2.0, 2.0]], [[7.0, 2.0, 3.0], [1.0, 4.0, 5.0], [8.0, 2.0, 1.0]], [[8.0, 1.0, 5.0], [2.0, 3.0, 4.0], [4.0, 4.0, 3.0]]], [[[8.0, 6.0, 1.0], [8.0, 6.0, 6.0], [2.0, 2.0, 6.0]], [[6.0, 6.0, 5.0], [2.0, 8.0, 6.0], [5.0, 2.0, 2.0]], [[4.0, 7.0, 3.0], [3.0, 3.0, 3.0], [6.0, 3.0, 7.0]]], [[[1.0, 7.0, 1.0], [5.0, 5.0, 5.0], [2.0, 2.0, 4.0]], [[3.0, 6.0, 7.0], [8.0, 1.0, 2.0], [7.0, 8.0, 1.0]], [[3.0, 7.0, 6.0], [1.0, 8.0, 8.0], [2.0, 5.0, 4.0]]], [[[3.0, 4.0, 5.0], [5.0, 5.0, 2.0], [5.0, 8.0, 5.0]], [[4.0, 4.0, 8.0], [4.0, 8.0, 5.0], [3.0, 8.0, 6.0]], [[7.0, 7.0, 7.0], [8.0, 4.0, 4.0], [4.0, 6.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[4.0, 4.0, 5.0], [8.0, 5.0, 3.0], [3.0, 2.0, 2.0]], [[7.0, 2.0, 3.0], [1.0, 4.0, 5.0], [8.0, 2.0, 1.0]], [[8.0, 1.0, 5.0], [2.0, 3.0, 4.0], [4.0, 4.0, 3.0]]], [[[8.0, 6.0, 1.0], [8.0, 6.0, 6.0], [2.0, 2.0, 6.0]], [[6.0, 6.0, 5.0], [2.0, 8.0, 6.0], [5.0, 2.0, 2.0]], [[4.0, 7.0, 3.0], [3.0, 3.0, 3.0], [6.0, 3.0, 7.0]]], [[[1.0, 7.0, 1.0], [7.0, 2.0, 3.0], [2.0, 2.0, 4.0]], [[3.0, 6.0, 7.0], [5.0, 5.0, 1.0], [7.0, 8.0, 1.0]], [[3.0, 7.0, 6.0], [8.0, 1.0, 3.0], [2.0, 5.0, 4.0]]], [[[3.0, 4.0, 5.0], [1.0, 4.0, 4.0], [5.0, 8.0, 5.0]], [[4.0, 4.0, 8.0], [4.0, 4.0, 1.0], [3.0, 8.0, 6.0]], [[7.0, 7.0, 7.0], [4.0, 5.0, 2.0], [4.0, 6.0, 6.0]]]])
4729          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4730       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4731       def test_setslice_constData_rank4_taggedData_LPCN(self):
4732          arg=Data(numarray.array([[[[5.0, 2.0, 7.0], [3.0, 8.0, 6.0], [2.0, 4.0, 5.0]], [[1.0, 6.0, 3.0], [7.0, 7.0, 8.0], [4.0, 5.0, 3.0]], [[3.0, 5.0, 8.0], [5.0, 8.0, 7.0], [6.0, 3.0, 7.0]]], [[[8.0, 1.0, 3.0], [4.0, 8.0, 2.0], [2.0, 8.0, 7.0]], [[5.0, 8.0, 6.0], [7.0, 1.0, 2.0], [8.0, 8.0, 2.0]], [[4.0, 7.0, 3.0], [2.0, 4.0, 3.0], [4.0, 3.0, 3.0]]], [[[5.0, 7.0, 4.0], [7.0, 8.0, 6.0], [4.0, 1.0, 8.0]], [[1.0, 3.0, 5.0], [2.0, 1.0, 8.0], [8.0, 2.0, 5.0]], [[6.0, 3.0, 6.0], [1.0, 3.0, 1.0], [7.0, 7.0, 7.0]]], [[[7.0, 2.0, 8.0], [2.0, 6.0, 1.0], [5.0, 3.0, 6.0]], [[8.0, 8.0, 5.0], [6.0, 2.0, 8.0], [8.0, 6.0, 1.0]], [[7.0, 4.0, 7.0], [8.0, 8.0, 1.0], [8.0, 8.0, 4.0]]]]),self.functionspace)
4733          val=Data(numarray.array([[[3.0, 3.0, 4.0], [7.0, 5.0, 3.0], [5.0, 7.0, 3.0]], [[5.0, 3.0, 3.0], [6.0, 8.0, 7.0], [6.0, 3.0, 6.0]]]),self.functionspace)
4734          val.setTaggedValue(1,numarray.array([[[3.0, 8.0, 6.0], [5.0, 6.0, 2.0], [5.0, 3.0, 8.0]], [[5.0, 4.0, 6.0], [7.0, 4.0, 7.0], [2.0, 4.0, 3.0]]]))
4735          arg[2:,1,:]=val
4736          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4737          ref=msk_ref*numarray.array([[[[5.0, 2.0, 7.0], [3.0, 8.0, 6.0], [2.0, 4.0, 5.0]], [[1.0, 6.0, 3.0], [7.0, 7.0, 8.0], [4.0, 5.0, 3.0]], [[3.0, 5.0, 8.0], [5.0, 8.0, 7.0], [6.0, 3.0, 7.0]]], [[[8.0, 1.0, 3.0], [4.0, 8.0, 2.0], [2.0, 8.0, 7.0]], [[5.0, 8.0, 6.0], [7.0, 1.0, 2.0], [8.0, 8.0, 2.0]], [[4.0, 7.0, 3.0], [2.0, 4.0, 3.0], [4.0, 3.0, 3.0]]], [[[5.0, 7.0, 4.0], [7.0, 8.0, 6.0], [4.0, 1.0, 8.0]], [[3.0, 3.0, 4.0], [7.0, 5.0, 3.0], [5.0, 7.0, 3.0]], [[6.0, 3.0, 6.0], [1.0, 3.0, 1.0], [7.0, 7.0, 7.0]]], [[[7.0, 2.0, 8.0], [2.0, 6.0, 1.0], [5.0, 3.0, 6.0]], [[5.0, 3.0, 3.0], [6.0, 8.0, 7.0], [6.0, 3.0, 6.0]], [[7.0, 4.0, 7.0], [8.0, 8.0, 1.0], [8.0, 8.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 2.0, 7.0], [3.0, 8.0, 6.0], [2.0, 4.0, 5.0]], [[1.0, 6.0, 3.0], [7.0, 7.0, 8.0], [4.0, 5.0, 3.0]], [[3.0, 5.0, 8.0], [5.0, 8.0, 7.0], [6.0, 3.0, 7.0]]], [[[8.0, 1.0, 3.0], [4.0, 8.0, 2.0], [2.0, 8.0, 7.0]], [[5.0, 8.0, 6.0], [7.0, 1.0, 2.0], [8.0, 8.0, 2.0]], [[4.0, 7.0, 3.0], [2.0, 4.0, 3.0], [4.0, 3.0, 3.0]]], [[[5.0, 7.0, 4.0], [7.0, 8.0, 6.0], [4.0, 1.0, 8.0]], [[3.0, 8.0, 6.0], [5.0, 6.0, 2.0], [5.0, 3.0, 8.0]], [[6.0, 3.0, 6.0], [1.0, 3.0, 1.0], [7.0, 7.0, 7.0]]], [[[7.0, 2.0, 8.0], [2.0, 6.0, 1.0], [5.0, 3.0, 6.0]], [[5.0, 4.0, 6.0], [7.0, 4.0, 7.0], [2.0, 4.0, 3.0]], [[7.0, 4.0, 7.0], [8.0, 8.0, 1.0], [8.0, 8.0, 4.0]]]])
4738          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4739       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4740       def test_setslice_constData_rank4_taggedData_LCUN(self):
4741          arg=Data(numarray.array([[[[1.0, 4.0, 1.0], [3.0, 7.0, 1.0], [1.0, 8.0, 8.0]], [[1.0, 4.0, 1.0], [6.0, 2.0, 4.0], [3.0, 6.0, 3.0]], [[2.0, 1.0, 6.0], [1.0, 7.0, 7.0], [4.0, 7.0, 2.0]]], [[[1.0, 1.0, 7.0], [1.0, 1.0, 5.0], [3.0, 8.0, 5.0]], [[7.0, 3.0, 4.0], [7.0, 4.0, 8.0], [4.0, 2.0, 7.0]], [[6.0, 7.0, 2.0], [5.0, 3.0, 2.0], [6.0, 2.0, 1.0]]], [[[6.0, 3.0, 4.0], [2.0, 4.0, 1.0], [1.0, 1.0, 7.0]], [[3.0, 7.0, 7.0], [7.0, 5.0, 7.0], [2.0, 5.0, 7.0]], [[1.0, 3.0, 1.0], [6.0, 1.0, 4.0], [7.0, 4.0, 4.0]]], [[[2.0, 8.0, 4.0], [2.0, 8.0, 3.0], [3.0, 2.0, 3.0]], [[4.0, 6.0, 3.0], [6.0, 7.0, 4.0], [3.0, 3.0, 5.0]], [[7.0, 2.0, 8.0], [5.0, 6.0, 2.0], [6.0, 3.0, 1.0]]]]),self.functionspace)
4742          val=Data(numarray.array([[[[7.0, 8.0, 4.0], [3.0, 7.0, 8.0]], [[4.0, 2.0, 3.0], [8.0, 1.0, 1.0]], [[7.0, 2.0, 4.0], [8.0, 8.0, 2.0]]], [[[5.0, 5.0, 4.0], [1.0, 6.0, 6.0]], [[5.0, 4.0, 7.0], [4.0, 5.0, 3.0]], [[1.0, 6.0, 3.0], [4.0, 7.0, 2.0]]]]),self.functionspace)
4743          val.setTaggedValue(1,numarray.array([[[[3.0, 5.0, 6.0], [1.0, 2.0, 3.0]], [[4.0, 2.0, 8.0], [2.0, 8.0, 3.0]], [[1.0, 7.0, 3.0], [7.0, 3.0, 1.0]]], [[[5.0, 7.0, 1.0], [2.0, 4.0, 4.0]], [[7.0, 3.0, 2.0], [2.0, 2.0, 2.0]], [[4.0, 4.0, 4.0], [7.0, 5.0, 1.0]]]]))
4744          arg[2:,:,:2]=val
4745          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4746          ref=msk_ref*numarray.array([[[[1.0, 4.0, 1.0], [3.0, 7.0, 1.0], [1.0, 8.0, 8.0]], [[1.0, 4.0, 1.0], [6.0, 2.0, 4.0], [3.0, 6.0, 3.0]], [[2.0, 1.0, 6.0], [1.0, 7.0, 7.0], [4.0, 7.0, 2.0]]], [[[1.0, 1.0, 7.0], [1.0, 1.0, 5.0], [3.0, 8.0, 5.0]], [[7.0, 3.0, 4.0], [7.0, 4.0, 8.0], [4.0, 2.0, 7.0]], [[6.0, 7.0, 2.0], [5.0, 3.0, 2.0], [6.0, 2.0, 1.0]]], [[[7.0, 8.0, 4.0], [3.0, 7.0, 8.0], [1.0, 1.0, 7.0]], [[4.0, 2.0, 3.0], [8.0, 1.0, 1.0], [2.0, 5.0, 7.0]], [[7.0, 2.0, 4.0], [8.0, 8.0, 2.0], [7.0, 4.0, 4.0]]], [[[5.0, 5.0, 4.0], [1.0, 6.0, 6.0], [3.0, 2.0, 3.0]], [[5.0, 4.0, 7.0], [4.0, 5.0, 3.0], [3.0, 3.0, 5.0]], [[1.0, 6.0, 3.0], [4.0, 7.0, 2.0], [6.0, 3.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 4.0, 1.0], [3.0, 7.0, 1.0], [1.0, 8.0, 8.0]], [[1.0, 4.0, 1.0], [6.0, 2.0, 4.0], [3.0, 6.0, 3.0]], [[2.0, 1.0, 6.0], [1.0, 7.0, 7.0], [4.0, 7.0, 2.0]]], [[[1.0, 1.0, 7.0], [1.0, 1.0, 5.0], [3.0, 8.0, 5.0]], [[7.0, 3.0, 4.0], [7.0, 4.0, 8.0], [4.0, 2.0, 7.0]], [[6.0, 7.0, 2.0], [5.0, 3.0, 2.0], [6.0, 2.0, 1.0]]], [[[3.0, 5.0, 6.0], [1.0, 2.0, 3.0], [1.0, 1.0, 7.0]], [[4.0, 2.0, 8.0], [2.0, 8.0, 3.0], [2.0, 5.0, 7.0]], [[1.0, 7.0, 3.0], [7.0, 3.0, 1.0], [7.0, 4.0, 4.0]]], [[[5.0, 7.0, 1.0], [2.0, 4.0, 4.0], [3.0, 2.0, 3.0]], [[7.0, 3.0, 2.0], [2.0, 2.0, 2.0], [3.0, 3.0, 5.0]], [[4.0, 4.0, 4.0], [7.0, 5.0, 1.0], [6.0, 3.0, 1.0]]]])
4747          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4748       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4749       def test_setslice_constData_rank4_taggedData_LPPN(self):
4750          arg=Data(numarray.array([[[[1.0, 1.0, 2.0], [3.0, 1.0, 1.0], [4.0, 7.0, 2.0]], [[7.0, 4.0, 3.0], [5.0, 4.0, 7.0], [7.0, 6.0, 7.0]], [[1.0, 1.0, 8.0], [3.0, 3.0, 5.0], [2.0, 2.0, 5.0]]], [[[5.0, 2.0, 1.0], [8.0, 2.0, 2.0], [2.0, 2.0, 8.0]], [[6.0, 7.0, 1.0], [7.0, 4.0, 2.0], [6.0, 8.0, 5.0]], [[1.0, 4.0, 6.0], [3.0, 3.0, 1.0], [6.0, 4.0, 4.0]]], [[[2.0, 3.0, 8.0], [5.0, 4.0, 3.0], [5.0, 1.0, 5.0]], [[1.0, 8.0, 8.0], [4.0, 4.0, 8.0], [5.0, 2.0, 4.0]], [[3.0, 8.0, 5.0], [8.0, 3.0, 8.0], [6.0, 8.0, 3.0]]], [[[5.0, 8.0, 8.0], [8.0, 4.0, 7.0], [3.0, 5.0, 6.0]], [[6.0, 3.0, 6.0], [7.0, 5.0, 8.0], [1.0, 7.0, 4.0]], [[6.0, 8.0, 2.0], [3.0, 2.0, 1.0], [2.0, 1.0, 5.0]]]]),self.functionspace)
4751          val=Data(numarray.array([[6.0, 5.0, 2.0], [4.0, 3.0, 1.0]]),self.functionspace)
4752          val.setTaggedValue(1,numarray.array([[2.0, 7.0, 7.0], [5.0, 1.0, 6.0]]))
4753          arg[2:,1,1]=val
4754          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4755          ref=msk_ref*numarray.array([[[[1.0, 1.0, 2.0], [3.0, 1.0, 1.0], [4.0, 7.0, 2.0]], [[7.0, 4.0, 3.0], [5.0, 4.0, 7.0], [7.0, 6.0, 7.0]], [[1.0, 1.0, 8.0], [3.0, 3.0, 5.0], [2.0, 2.0, 5.0]]], [[[5.0, 2.0, 1.0], [8.0, 2.0, 2.0], [2.0, 2.0, 8.0]], [[6.0, 7.0, 1.0], [7.0, 4.0, 2.0], [6.0, 8.0, 5.0]], [[1.0, 4.0, 6.0], [3.0, 3.0, 1.0], [6.0, 4.0, 4.0]]], [[[2.0, 3.0, 8.0], [5.0, 4.0, 3.0], [5.0, 1.0, 5.0]], [[1.0, 8.0, 8.0], [6.0, 5.0, 2.0], [5.0, 2.0, 4.0]], [[3.0, 8.0, 5.0], [8.0, 3.0, 8.0], [6.0, 8.0, 3.0]]], [[[5.0, 8.0, 8.0], [8.0, 4.0, 7.0], [3.0, 5.0, 6.0]], [[6.0, 3.0, 6.0], [4.0, 3.0, 1.0], [1.0, 7.0, 4.0]], [[6.0, 8.0, 2.0], [3.0, 2.0, 1.0], [2.0, 1.0, 5.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 1.0, 2.0], [3.0, 1.0, 1.0], [4.0, 7.0, 2.0]], [[7.0, 4.0, 3.0], [5.0, 4.0, 7.0], [7.0, 6.0, 7.0]], [[1.0, 1.0, 8.0], [3.0, 3.0, 5.0], [2.0, 2.0, 5.0]]], [[[5.0, 2.0, 1.0], [8.0, 2.0, 2.0], [2.0, 2.0, 8.0]], [[6.0, 7.0, 1.0], [7.0, 4.0, 2.0], [6.0, 8.0, 5.0]], [[1.0, 4.0, 6.0], [3.0, 3.0, 1.0], [6.0, 4.0, 4.0]]], [[[2.0, 3.0, 8.0], [5.0, 4.0, 3.0], [5.0, 1.0, 5.0]], [[1.0, 8.0, 8.0], [2.0, 7.0, 7.0], [5.0, 2.0, 4.0]], [[3.0, 8.0, 5.0], [8.0, 3.0, 8.0], [6.0, 8.0, 3.0]]], [[[5.0, 8.0, 8.0], [8.0, 4.0, 7.0], [3.0, 5.0, 6.0]], [[6.0, 3.0, 6.0], [5.0, 1.0, 6.0], [1.0, 7.0, 4.0]], [[6.0, 8.0, 2.0], [3.0, 2.0, 1.0], [2.0, 1.0, 5.0]]]])
4756          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4757       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4758       def test_setslice_constData_rank4_taggedData_RLLN(self):
4759          arg=Data(numarray.array([[[[1.0, 8.0, 5.0], [3.0, 3.0, 1.0], [3.0, 5.0, 6.0]], [[7.0, 8.0, 5.0], [4.0, 6.0, 7.0], [7.0, 4.0, 6.0]], [[8.0, 1.0, 7.0], [8.0, 7.0, 5.0], [4.0, 3.0, 3.0]]], [[[4.0, 8.0, 6.0], [3.0, 7.0, 1.0], [4.0, 5.0, 1.0]], [[1.0, 2.0, 3.0], [2.0, 5.0, 6.0], [1.0, 4.0, 8.0]], [[4.0, 2.0, 8.0], [8.0, 6.0, 6.0], [2.0, 4.0, 7.0]]], [[[2.0, 2.0, 4.0], [2.0, 8.0, 5.0], [6.0, 2.0, 5.0]], [[3.0, 3.0, 3.0], [6.0, 2.0, 6.0], [7.0, 7.0, 5.0]], [[5.0, 3.0, 7.0], [1.0, 1.0, 8.0], [7.0, 2.0, 1.0]]], [[[1.0, 6.0, 2.0], [8.0, 4.0, 7.0], [2.0, 8.0, 6.0]], [[2.0, 5.0, 2.0], [4.0, 1.0, 7.0], [5.0, 2.0, 1.0]], [[7.0, 7.0, 6.0], [4.0, 5.0, 8.0], [2.0, 5.0, 6.0]]]]),self.functionspace)
4760          val=Data(numarray.array([[[[4.0, 4.0, 7.0]]], [[[4.0, 2.0, 3.0]]]]),self.functionspace)
4761          val.setTaggedValue(1,numarray.array([[[[6.0, 2.0, 5.0]]], [[[4.0, 5.0, 1.0]]]]))
4762          arg[1:3,2:,2:]=val
4763          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4764          ref=msk_ref*numarray.array([[[[1.0, 8.0, 5.0], [3.0, 3.0, 1.0], [3.0, 5.0, 6.0]], [[7.0, 8.0, 5.0], [4.0, 6.0, 7.0], [7.0, 4.0, 6.0]], [[8.0, 1.0, 7.0], [8.0, 7.0, 5.0], [4.0, 3.0, 3.0]]], [[[4.0, 8.0, 6.0], [3.0, 7.0, 1.0], [4.0, 5.0, 1.0]], [[1.0, 2.0, 3.0], [2.0, 5.0, 6.0], [1.0, 4.0, 8.0]], [[4.0, 2.0, 8.0], [8.0, 6.0, 6.0], [4.0, 4.0, 7.0]]], [[[2.0, 2.0, 4.0], [2.0, 8.0, 5.0], [6.0, 2.0, 5.0]], [[3.0, 3.0, 3.0], [6.0, 2.0, 6.0], [7.0, 7.0, 5.0]], [[5.0, 3.0, 7.0], [1.0, 1.0, 8.0], [4.0, 2.0, 3.0]]], [[[1.0, 6.0, 2.0], [8.0, 4.0, 7.0], [2.0, 8.0, 6.0]], [[2.0, 5.0, 2.0], [4.0, 1.0, 7.0], [5.0, 2.0, 1.0]], [[7.0, 7.0, 6.0], [4.0, 5.0, 8.0], [2.0, 5.0, 6.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 8.0, 5.0], [3.0, 3.0, 1.0], [3.0, 5.0, 6.0]], [[7.0, 8.0, 5.0], [4.0, 6.0, 7.0], [7.0, 4.0, 6.0]], [[8.0, 1.0, 7.0], [8.0, 7.0, 5.0], [4.0, 3.0, 3.0]]], [[[4.0, 8.0, 6.0], [3.0, 7.0, 1.0], [4.0, 5.0, 1.0]], [[1.0, 2.0, 3.0], [2.0, 5.0, 6.0], [1.0, 4.0, 8.0]], [[4.0, 2.0, 8.0], [8.0, 6.0, 6.0], [6.0, 2.0, 5.0]]], [[[2.0, 2.0, 4.0], [2.0, 8.0, 5.0], [6.0, 2.0, 5.0]], [[3.0, 3.0, 3.0], [6.0, 2.0, 6.0], [7.0, 7.0, 5.0]], [[5.0, 3.0, 7.0], [1.0, 1.0, 8.0], [4.0, 5.0, 1.0]]], [[[1.0, 6.0, 2.0], [8.0, 4.0, 7.0], [2.0, 8.0, 6.0]], [[2.0, 5.0, 2.0], [4.0, 1.0, 7.0], [5.0, 2.0, 1.0]], [[7.0, 7.0, 6.0], [4.0, 5.0, 8.0], [2.0, 5.0, 6.0]]]])
4765          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4766       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4767       def test_setslice_constData_rank4_taggedData_RULN(self):
4768          arg=Data(numarray.array([[[[8.0, 7.0, 3.0], [2.0, 3.0, 5.0], [8.0, 4.0, 2.0]], [[3.0, 7.0, 4.0], [2.0, 3.0, 3.0], [2.0, 1.0, 6.0]], [[7.0, 4.0, 1.0], [8.0, 4.0, 1.0], [1.0, 6.0, 1.0]]], [[[2.0, 8.0, 2.0], [4.0, 5.0, 2.0], [6.0, 5.0, 3.0]], [[6.0, 6.0, 7.0], [1.0, 1.0, 8.0], [4.0, 1.0, 5.0]], [[8.0, 2.0, 6.0], [6.0, 3.0, 6.0], [2.0, 7.0, 7.0]]], [[[3.0, 8.0, 6.0], [1.0, 8.0, 2.0], [1.0, 7.0, 6.0]], [[2.0, 4.0, 3.0], [5.0, 4.0, 6.0], [1.0, 6.0, 8.0]], [[4.0, 2.0, 6.0], [3.0, 4.0, 6.0], [3.0, 4.0, 5.0]]], [[[3.0, 8.0, 6.0], [8.0, 2.0, 8.0], [1.0, 3.0, 7.0]], [[7.0, 5.0, 4.0], [4.0, 4.0, 8.0], [1.0, 5.0, 6.0]], [[8.0, 3.0, 3.0], [2.0, 6.0, 1.0], [3.0, 7.0, 2.0]]]]),self.functionspace)
4769          val=Data(numarray.array([[[[7.0, 4.0, 4.0]], [[2.0, 8.0, 2.0]]], [[[1.0, 4.0, 1.0]], [[7.0, 6.0, 8.0]]]]),self.functionspace)
4770          val.setTaggedValue(1,numarray.array([[[[4.0, 6.0, 5.0]], [[7.0, 2.0, 3.0]]], [[[7.0, 5.0, 2.0]], [[6.0, 7.0, 6.0]]]]))
4771          arg[1:3,:2,2:]=val
4772          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4773          ref=msk_ref*numarray.array([[[[8.0, 7.0, 3.0], [2.0, 3.0, 5.0], [8.0, 4.0, 2.0]], [[3.0, 7.0, 4.0], [2.0, 3.0, 3.0], [2.0, 1.0, 6.0]], [[7.0, 4.0, 1.0], [8.0, 4.0, 1.0], [1.0, 6.0, 1.0]]], [[[2.0, 8.0, 2.0], [4.0, 5.0, 2.0], [7.0, 4.0, 4.0]], [[6.0, 6.0, 7.0], [1.0, 1.0, 8.0], [2.0, 8.0, 2.0]], [[8.0, 2.0, 6.0], [6.0, 3.0, 6.0], [2.0, 7.0, 7.0]]], [[[3.0, 8.0, 6.0], [1.0, 8.0, 2.0], [1.0, 4.0, 1.0]], [[2.0, 4.0, 3.0], [5.0, 4.0, 6.0], [7.0, 6.0, 8.0]], [[4.0, 2.0, 6.0], [3.0, 4.0, 6.0], [3.0, 4.0, 5.0]]], [[[3.0, 8.0, 6.0], [8.0, 2.0, 8.0], [1.0, 3.0, 7.0]], [[7.0, 5.0, 4.0], [4.0, 4.0, 8.0], [1.0, 5.0, 6.0]], [[8.0, 3.0, 3.0], [2.0, 6.0, 1.0], [3.0, 7.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 7.0, 3.0], [2.0, 3.0, 5.0], [8.0, 4.0, 2.0]], [[3.0, 7.0, 4.0], [2.0, 3.0, 3.0], [2.0, 1.0, 6.0]], [[7.0, 4.0, 1.0], [8.0, 4.0, 1.0], [1.0, 6.0, 1.0]]], [[[2.0, 8.0, 2.0], [4.0, 5.0, 2.0], [4.0, 6.0, 5.0]], [[6.0, 6.0, 7.0], [1.0, 1.0, 8.0], [7.0, 2.0, 3.0]], [[8.0, 2.0, 6.0], [6.0, 3.0, 6.0], [2.0, 7.0, 7.0]]], [[[3.0, 8.0, 6.0], [1.0, 8.0, 2.0], [7.0, 5.0, 2.0]], [[2.0, 4.0, 3.0], [5.0, 4.0, 6.0], [6.0, 7.0, 6.0]], [[4.0, 2.0, 6.0], [3.0, 4.0, 6.0], [3.0, 4.0, 5.0]]], [[[3.0, 8.0, 6.0], [8.0, 2.0, 8.0], [1.0, 3.0, 7.0]], [[7.0, 5.0, 4.0], [4.0, 4.0, 8.0], [1.0, 5.0, 6.0]], [[8.0, 3.0, 3.0], [2.0, 6.0, 1.0], [3.0, 7.0, 2.0]]]])
4774          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4775       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4776       def test_setslice_constData_rank4_taggedData_CRUN(self):
4777          arg=Data(numarray.array([[[[7.0, 5.0, 2.0], [8.0, 8.0, 3.0], [5.0, 1.0, 7.0]], [[5.0, 7.0, 5.0], [7.0, 7.0, 8.0], [7.0, 6.0, 6.0]], [[6.0, 6.0, 1.0], [7.0, 8.0, 6.0], [4.0, 4.0, 5.0]]], [[[7.0, 2.0, 6.0], [3.0, 7.0, 2.0], [1.0, 8.0, 5.0]], [[7.0, 8.0, 8.0], [8.0, 4.0, 7.0], [7.0, 4.0, 6.0]], [[8.0, 2.0, 6.0], [2.0, 7.0, 5.0], [5.0, 6.0, 7.0]]], [[[6.0, 6.0, 3.0], [6.0, 6.0, 8.0], [2.0, 8.0, 2.0]], [[5.0, 7.0, 7.0], [5.0, 3.0, 2.0], [6.0, 8.0, 5.0]], [[5.0, 6.0, 5.0], [3.0, 4.0, 1.0], [1.0, 2.0, 5.0]]], [[[1.0, 7.0, 1.0], [7.0, 7.0, 6.0], [1.0, 1.0, 6.0]], [[3.0, 2.0, 6.0], [1.0, 3.0, 6.0], [2.0, 8.0, 6.0]], [[5.0, 5.0, 5.0], [1.0, 6.0, 2.0], [1.0, 6.0, 1.0]]]]),self.functionspace)
4778          val=Data(numarray.array([[[[2.0, 1.0, 6.0], [2.0, 2.0, 3.0]]], [[[2.0, 2.0, 5.0], [1.0, 8.0, 1.0]]], [[[5.0, 8.0, 4.0], [2.0, 8.0, 6.0]]], [[[5.0, 4.0, 5.0], [1.0, 5.0, 7.0]]]]),self.functionspace)
4779          val.setTaggedValue(1,numarray.array([[[[1.0, 2.0, 7.0], [5.0, 5.0, 7.0]]], [[[2.0, 7.0, 8.0], [2.0, 1.0, 3.0]]], [[[7.0, 6.0, 6.0], [4.0, 1.0, 4.0]]], [[[8.0, 3.0, 8.0], [3.0, 4.0, 6.0]]]]))
4780          arg[:,1:2,:2]=val
4781          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4782          ref=msk_ref*numarray.array([[[[7.0, 5.0, 2.0], [8.0, 8.0, 3.0], [5.0, 1.0, 7.0]], [[2.0, 1.0, 6.0], [2.0, 2.0, 3.0], [7.0, 6.0, 6.0]], [[6.0, 6.0, 1.0], [7.0, 8.0, 6.0], [4.0, 4.0, 5.0]]], [[[7.0, 2.0, 6.0], [3.0, 7.0, 2.0], [1.0, 8.0, 5.0]], [[2.0, 2.0, 5.0], [1.0, 8.0, 1.0], [7.0, 4.0, 6.0]], [[8.0, 2.0, 6.0], [2.0, 7.0, 5.0], [5.0, 6.0, 7.0]]], [[[6.0, 6.0, 3.0], [6.0, 6.0, 8.0], [2.0, 8.0, 2.0]], [[5.0, 8.0, 4.0], [2.0, 8.0, 6.0], [6.0, 8.0, 5.0]], [[5.0, 6.0, 5.0], [3.0, 4.0, 1.0], [1.0, 2.0, 5.0]]], [[[1.0, 7.0, 1.0], [7.0, 7.0, 6.0], [1.0, 1.0, 6.0]], [[5.0, 4.0, 5.0], [1.0, 5.0, 7.0], [2.0, 8.0, 6.0]], [[5.0, 5.0, 5.0], [1.0, 6.0, 2.0], [1.0, 6.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 5.0, 2.0], [8.0, 8.0, 3.0], [5.0, 1.0, 7.0]], [[1.0, 2.0, 7.0], [5.0, 5.0, 7.0], [7.0, 6.0, 6.0]], [[6.0, 6.0, 1.0], [7.0, 8.0, 6.0], [4.0, 4.0, 5.0]]], [[[7.0, 2.0, 6.0], [3.0, 7.0, 2.0], [1.0, 8.0, 5.0]], [[2.0, 7.0, 8.0], [2.0, 1.0, 3.0], [7.0, 4.0, 6.0]], [[8.0, 2.0, 6.0], [2.0, 7.0, 5.0], [5.0, 6.0, 7.0]]], [[[6.0, 6.0, 3.0], [6.0, 6.0, 8.0], [2.0, 8.0, 2.0]], [[7.0, 6.0, 6.0], [4.0, 1.0, 4.0], [6.0, 8.0, 5.0]], [[5.0, 6.0, 5.0], [3.0, 4.0, 1.0], [1.0, 2.0, 5.0]]], [[[1.0, 7.0, 1.0], [7.0, 7.0, 6.0], [1.0, 1.0, 6.0]], [[8.0, 3.0, 8.0], [3.0, 4.0, 6.0], [2.0, 8.0, 6.0]], [[5.0, 5.0, 5.0], [1.0, 6.0, 2.0], [1.0, 6.0, 1.0]]]])
4783          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4784       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4785       def test_setslice_constData_rank4_taggedData_PULN(self):
4786          arg=Data(numarray.array([[[[8.0, 6.0, 2.0], [6.0, 6.0, 5.0], [6.0, 1.0, 8.0]], [[8.0, 4.0, 7.0], [4.0, 8.0, 7.0], [4.0, 3.0, 3.0]], [[6.0, 5.0, 6.0], [1.0, 8.0, 2.0], [1.0, 2.0, 3.0]]], [[[4.0, 5.0, 3.0], [6.0, 4.0, 5.0], [6.0, 3.0, 1.0]], [[2.0, 3.0, 3.0], [5.0, 7.0, 1.0], [8.0, 7.0, 5.0]], [[6.0, 6.0, 8.0], [2.0, 2.0, 8.0], [5.0, 7.0, 3.0]]], [[[4.0, 8.0, 3.0], [8.0, 7.0, 8.0], [2.0, 6.0, 4.0]], [[6.0, 5.0, 8.0], [6.0, 5.0, 5.0], [2.0, 3.0, 4.0]], [[8.0, 5.0, 2.0], [5.0, 2.0, 4.0], [4.0, 8.0, 8.0]]], [[[3.0, 1.0, 5.0], [6.0, 7.0, 6.0], [7.0, 1.0, 1.0]], [[7.0, 5.0, 3.0], [1.0, 4.0, 1.0], [8.0, 6.0, 3.0]], [[6.0, 7.0, 3.0], [4.0, 6.0, 5.0], [7.0, 6.0, 8.0]]]]),self.functionspace)
4787          val=Data(numarray.array([[[1.0, 7.0, 3.0]], [[7.0, 4.0, 3.0]]]),self.functionspace)
4788          val.setTaggedValue(1,numarray.array([[[6.0, 4.0, 6.0]], [[7.0, 7.0, 7.0]]]))
4789          arg[2,:2,2:]=val
4790          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4791          ref=msk_ref*numarray.array([[[[8.0, 6.0, 2.0], [6.0, 6.0, 5.0], [6.0, 1.0, 8.0]], [[8.0, 4.0, 7.0], [4.0, 8.0, 7.0], [4.0, 3.0, 3.0]], [[6.0, 5.0, 6.0], [1.0, 8.0, 2.0], [1.0, 2.0, 3.0]]], [[[4.0, 5.0, 3.0], [6.0, 4.0, 5.0], [6.0, 3.0, 1.0]], [[2.0, 3.0, 3.0], [5.0, 7.0, 1.0], [8.0, 7.0, 5.0]], [[6.0, 6.0, 8.0], [2.0, 2.0, 8.0], [5.0, 7.0, 3.0]]], [[[4.0, 8.0, 3.0], [8.0, 7.0, 8.0], [1.0, 7.0, 3.0]], [[6.0, 5.0, 8.0], [6.0, 5.0, 5.0], [7.0, 4.0, 3.0]], [[8.0, 5.0, 2.0], [5.0, 2.0, 4.0], [4.0, 8.0, 8.0]]], [[[3.0, 1.0, 5.0], [6.0, 7.0, 6.0], [7.0, 1.0, 1.0]], [[7.0, 5.0, 3.0], [1.0, 4.0, 1.0], [8.0, 6.0, 3.0]], [[6.0, 7.0, 3.0], [4.0, 6.0, 5.0], [7.0, 6.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 6.0, 2.0], [6.0, 6.0, 5.0], [6.0, 1.0, 8.0]], [[8.0, 4.0, 7.0], [4.0, 8.0, 7.0], [4.0, 3.0, 3.0]], [[6.0, 5.0, 6.0], [1.0, 8.0, 2.0], [1.0, 2.0, 3.0]]], [[[4.0, 5.0, 3.0], [6.0, 4.0, 5.0], [6.0, 3.0, 1.0]], [[2.0, 3.0, 3.0], [5.0, 7.0, 1.0], [8.0, 7.0, 5.0]], [[6.0, 6.0, 8.0], [2.0, 2.0, 8.0], [5.0, 7.0, 3.0]]], [[[4.0, 8.0, 3.0], [8.0, 7.0, 8.0], [6.0, 4.0, 6.0]], [[6.0, 5.0, 8.0], [6.0, 5.0, 5.0], [7.0, 7.0, 7.0]], [[8.0, 5.0, 2.0], [5.0, 2.0, 4.0], [4.0, 8.0, 8.0]]], [[[3.0, 1.0, 5.0], [6.0, 7.0, 6.0], [7.0, 1.0, 1.0]], [[7.0, 5.0, 3.0], [1.0, 4.0, 1.0], [8.0, 6.0, 3.0]], [[6.0, 7.0, 3.0], [4.0, 6.0, 5.0], [7.0, 6.0, 8.0]]]])
4792          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4793       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4794       def test_setslice_constData_rank4_taggedData_RCCN(self):
4795          arg=Data(numarray.array([[[[7.0, 5.0, 5.0], [3.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[3.0, 2.0, 6.0], [1.0, 7.0, 7.0], [8.0, 1.0, 3.0]], [[5.0, 7.0, 3.0], [2.0, 2.0, 7.0], [3.0, 5.0, 5.0]]], [[[5.0, 5.0, 3.0], [4.0, 3.0, 1.0], [8.0, 7.0, 4.0]], [[3.0, 4.0, 6.0], [8.0, 1.0, 4.0], [3.0, 2.0, 3.0]], [[3.0, 5.0, 7.0], [8.0, 1.0, 4.0], [2.0, 1.0, 5.0]]], [[[5.0, 8.0, 3.0], [2.0, 1.0, 3.0], [5.0, 4.0, 6.0]], [[8.0, 4.0, 1.0], [4.0, 6.0, 5.0], [7.0, 6.0, 2.0]], [[1.0, 4.0, 2.0], [7.0, 1.0, 4.0], [7.0, 5.0, 7.0]]], [[[2.0, 5.0, 2.0], [1.0, 8.0, 4.0], [1.0, 6.0, 8.0]], [[2.0, 2.0, 1.0], [2.0, 2.0, 4.0], [5.0, 7.0, 2.0]], [[7.0, 7.0, 5.0], [5.0, 7.0, 4.0], [5.0, 6.0, 2.0]]]]),self.functionspace)
4796          val=Data(numarray.array([[[[8.0, 2.0, 3.0], [5.0, 5.0, 3.0], [2.0, 6.0, 1.0]], [[3.0, 1.0, 7.0], [4.0, 4.0, 4.0], [2.0, 3.0, 4.0]], [[3.0, 1.0, 8.0], [2.0, 4.0, 1.0], [2.0, 6.0, 4.0]]], [[[5.0, 4.0, 5.0], [1.0, 7.0, 4.0], [1.0, 7.0, 4.0]], [[7.0, 1.0, 6.0], [3.0, 3.0, 2.0], [1.0, 2.0, 1.0]], [[7.0, 1.0, 2.0], [7.0, 8.0, 5.0], [5.0, 7.0, 3.0]]]]),self.functionspace)
4797          val.setTaggedValue(1,numarray.array([[[[3.0, 6.0, 5.0], [8.0, 1.0, 8.0], [3.0, 3.0, 4.0]], [[7.0, 4.0, 3.0], [1.0, 5.0, 3.0], [2.0, 2.0, 5.0]], [[1.0, 6.0, 6.0], [7.0, 8.0, 8.0], [2.0, 3.0, 7.0]]], [[[6.0, 4.0, 5.0], [7.0, 1.0, 6.0], [1.0, 5.0, 8.0]], [[8.0, 1.0, 7.0], [4.0, 4.0, 1.0], [8.0, 6.0, 5.0]], [[7.0, 6.0, 4.0], [2.0, 4.0, 2.0], [1.0, 6.0, 3.0]]]]))
4798          arg[1:3,:,:]=val
4799          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4800          ref=msk_ref*numarray.array([[[[7.0, 5.0, 5.0], [3.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[3.0, 2.0, 6.0], [1.0, 7.0, 7.0], [8.0, 1.0, 3.0]], [[5.0, 7.0, 3.0], [2.0, 2.0, 7.0], [3.0, 5.0, 5.0]]], [[[8.0, 2.0, 3.0], [5.0, 5.0, 3.0], [2.0, 6.0, 1.0]], [[3.0, 1.0, 7.0], [4.0, 4.0, 4.0], [2.0, 3.0, 4.0]], [[3.0, 1.0, 8.0], [2.0, 4.0, 1.0], [2.0, 6.0, 4.0]]], [[[5.0, 4.0, 5.0], [1.0, 7.0, 4.0], [1.0, 7.0, 4.0]], [[7.0, 1.0, 6.0], [3.0, 3.0, 2.0], [1.0, 2.0, 1.0]], [[7.0, 1.0, 2.0], [7.0, 8.0, 5.0], [5.0, 7.0, 3.0]]], [[[2.0, 5.0, 2.0], [1.0, 8.0, 4.0], [1.0, 6.0, 8.0]], [[2.0, 2.0, 1.0], [2.0, 2.0, 4.0], [5.0, 7.0, 2.0]], [[7.0, 7.0, 5.0], [5.0, 7.0, 4.0], [5.0, 6.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 5.0, 5.0], [3.0, 3.0, 7.0], [7.0, 1.0, 7.0]], [[3.0, 2.0, 6.0], [1.0, 7.0, 7.0], [8.0, 1.0, 3.0]], [[5.0, 7.0, 3.0], [2.0, 2.0, 7.0], [3.0, 5.0, 5.0]]], [[[3.0, 6.0, 5.0], [8.0, 1.0, 8.0], [3.0, 3.0, 4.0]], [[7.0, 4.0, 3.0], [1.0, 5.0, 3.0], [2.0, 2.0, 5.0]], [[1.0, 6.0, 6.0], [7.0, 8.0, 8.0], [2.0, 3.0, 7.0]]], [[[6.0, 4.0, 5.0], [7.0, 1.0, 6.0], [1.0, 5.0, 8.0]], [[8.0, 1.0, 7.0], [4.0, 4.0, 1.0], [8.0, 6.0, 5.0]], [[7.0, 6.0, 4.0], [2.0, 4.0, 2.0], [1.0, 6.0, 3.0]]], [[[2.0, 5.0, 2.0], [1.0, 8.0, 4.0], [1.0, 6.0, 8.0]], [[2.0, 2.0, 1.0], [2.0, 2.0, 4.0], [5.0, 7.0, 2.0]], [[7.0, 7.0, 5.0], [5.0, 7.0, 4.0], [5.0, 6.0, 2.0]]]])
4801          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4802       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4803       def test_setslice_constData_rank4_taggedData_CURN(self):
4804          arg=Data(numarray.array([[[[1.0, 2.0, 5.0], [5.0, 8.0, 7.0], [3.0, 5.0, 4.0]], [[8.0, 4.0, 4.0], [5.0, 2.0, 5.0], [7.0, 6.0, 1.0]], [[6.0, 6.0, 6.0], [4.0, 1.0, 7.0], [2.0, 3.0, 1.0]]], [[[2.0, 7.0, 1.0], [6.0, 5.0, 4.0], [7.0, 4.0, 3.0]], [[7.0, 6.0, 2.0], [2.0, 2.0, 2.0], [5.0, 8.0, 1.0]], [[5.0, 1.0, 7.0], [1.0, 7.0, 6.0], [7.0, 7.0, 3.0]]], [[[2.0, 5.0, 8.0], [3.0, 1.0, 8.0], [2.0, 2.0, 3.0]], [[4.0, 1.0, 1.0], [5.0, 7.0, 6.0], [1.0, 4.0, 2.0]], [[3.0, 3.0, 8.0], [4.0, 8.0, 7.0], [2.0, 7.0, 4.0]]], [[[6.0, 2.0, 6.0], [2.0, 2.0, 2.0], [7.0, 4.0, 1.0]], [[4.0, 4.0, 7.0], [3.0, 5.0, 6.0], [8.0, 4.0, 1.0]], [[7.0, 1.0, 2.0], [7.0, 6.0, 2.0], [3.0, 2.0, 4.0]]]]),self.functionspace)
4805          val=Data(numarray.array([[[[3.0, 1.0, 4.0]], [[8.0, 3.0, 8.0]]], [[[5.0, 4.0, 5.0]], [[8.0, 6.0, 6.0]]], [[[3.0, 4.0, 2.0]], [[3.0, 8.0, 2.0]]], [[[6.0, 2.0, 4.0]], [[3.0, 5.0, 3.0]]]]),self.functionspace)
4806          val.setTaggedValue(1,numarray.array([[[[7.0, 2.0, 2.0]], [[4.0, 2.0, 1.0]]], [[[7.0, 1.0, 8.0]], [[4.0, 6.0, 4.0]]], [[[5.0, 3.0, 7.0]], [[8.0, 3.0, 5.0]]], [[[7.0, 1.0, 2.0]], [[4.0, 3.0, 1.0]]]]))
4807          arg[:,:2,1:2]=val
4808          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4809          ref=msk_ref*numarray.array([[[[1.0, 2.0, 5.0], [3.0, 1.0, 4.0], [3.0, 5.0, 4.0]], [[8.0, 4.0, 4.0], [8.0, 3.0, 8.0], [7.0, 6.0, 1.0]], [[6.0, 6.0, 6.0], [4.0, 1.0, 7.0], [2.0, 3.0, 1.0]]], [[[2.0, 7.0, 1.0], [5.0, 4.0, 5.0], [7.0, 4.0, 3.0]], [[7.0, 6.0, 2.0], [8.0, 6.0, 6.0], [5.0, 8.0, 1.0]], [[5.0, 1.0, 7.0], [1.0, 7.0, 6.0], [7.0, 7.0, 3.0]]], [[[2.0, 5.0, 8.0], [3.0, 4.0, 2.0], [2.0, 2.0, 3.0]], [[4.0, 1.0, 1.0], [3.0, 8.0, 2.0], [1.0, 4.0, 2.0]], [[3.0, 3.0, 8.0], [4.0, 8.0, 7.0], [2.0, 7.0, 4.0]]], [[[6.0, 2.0, 6.0], [6.0, 2.0, 4.0], [7.0, 4.0, 1.0]], [[4.0, 4.0, 7.0], [3.0, 5.0, 3.0], [8.0, 4.0, 1.0]], [[7.0, 1.0, 2.0], [7.0, 6.0, 2.0], [3.0, 2.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[1.0, 2.0, 5.0], [7.0, 2.0, 2.0], [3.0, 5.0, 4.0]], [[8.0, 4.0, 4.0], [4.0, 2.0, 1.0], [7.0, 6.0, 1.0]], [[6.0, 6.0, 6.0], [4.0, 1.0, 7.0], [2.0, 3.0, 1.0]]], [[[2.0, 7.0, 1.0], [7.0, 1.0, 8.0], [7.0, 4.0, 3.0]], [[7.0, 6.0, 2.0], [4.0, 6.0, 4.0], [5.0, 8.0, 1.0]], [[5.0, 1.0, 7.0], [1.0, 7.0, 6.0], [7.0, 7.0, 3.0]]], [[[2.0, 5.0, 8.0], [5.0, 3.0, 7.0], [2.0, 2.0, 3.0]], [[4.0, 1.0, 1.0], [8.0, 3.0, 5.0], [1.0, 4.0, 2.0]], [[3.0, 3.0, 8.0], [4.0, 8.0, 7.0], [2.0, 7.0, 4.0]]], [[[6.0, 2.0, 6.0], [7.0, 1.0, 2.0], [7.0, 4.0, 1.0]], [[4.0, 4.0, 7.0], [4.0, 3.0, 1.0], [8.0, 4.0, 1.0]], [[7.0, 1.0, 2.0], [7.0, 6.0, 2.0], [3.0, 2.0, 4.0]]]])
4810          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4811       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4812       def test_setslice_constData_rank4_taggedData_UUUP(self):
4813          arg=Data(numarray.array([[[[8.0, 8.0, 1.0], [1.0, 5.0, 2.0], [6.0, 6.0, 8.0]], [[6.0, 5.0, 1.0], [8.0, 7.0, 6.0], [4.0, 2.0, 2.0]], [[2.0, 1.0, 4.0], [2.0, 1.0, 8.0], [6.0, 1.0, 6.0]]], [[[5.0, 1.0, 7.0], [6.0, 8.0, 2.0], [1.0, 2.0, 1.0]], [[4.0, 5.0, 4.0], [4.0, 8.0, 2.0], [4.0, 2.0, 6.0]], [[2.0, 4.0, 4.0], [4.0, 6.0, 8.0], [6.0, 3.0, 6.0]]], [[[1.0, 7.0, 8.0], [5.0, 6.0, 2.0], [5.0, 5.0, 2.0]], [[3.0, 3.0, 6.0], [1.0, 3.0, 7.0], [8.0, 1.0, 1.0]], [[2.0, 7.0, 4.0], [7.0, 5.0, 3.0], [4.0, 5.0, 1.0]]], [[[1.0, 4.0, 2.0], [6.0, 4.0, 4.0], [1.0, 7.0, 7.0]], [[4.0, 7.0, 7.0], [6.0, 5.0, 2.0], [6.0, 1.0, 2.0]], [[2.0, 1.0, 8.0], [1.0, 5.0, 8.0], [2.0, 4.0, 8.0]]]]),self.functionspace)
4814          val=Data(numarray.array([[[7.0, 5.0], [1.0, 7.0]], [[5.0, 4.0], [5.0, 5.0]], [[4.0, 4.0], [5.0, 2.0]]]),self.functionspace)
4815          val.setTaggedValue(1,numarray.array([[[7.0, 6.0], [4.0, 3.0]], [[5.0, 6.0], [2.0, 5.0]], [[4.0, 8.0], [3.0, 7.0]]]))
4816          arg[:3,:2,:2,1]=val
4817          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4818          ref=msk_ref*numarray.array([[[[8.0, 7.0, 1.0], [1.0, 5.0, 2.0], [6.0, 6.0, 8.0]], [[6.0, 1.0, 1.0], [8.0, 7.0, 6.0], [4.0, 2.0, 2.0]], [[2.0, 1.0, 4.0], [2.0, 1.0, 8.0], [6.0, 1.0, 6.0]]], [[[5.0, 5.0, 7.0], [6.0, 4.0, 2.0], [1.0, 2.0, 1.0]], [[4.0, 5.0, 4.0], [4.0, 5.0, 2.0], [4.0, 2.0, 6.0]], [[2.0, 4.0, 4.0], [4.0, 6.0, 8.0], [6.0, 3.0, 6.0]]], [[[1.0, 4.0, 8.0], [5.0, 4.0, 2.0], [5.0, 5.0, 2.0]], [[3.0, 5.0, 6.0], [1.0, 2.0, 7.0], [8.0, 1.0, 1.0]], [[2.0, 7.0, 4.0], [7.0, 5.0, 3.0], [4.0, 5.0, 1.0]]], [[[1.0, 4.0, 2.0], [6.0, 4.0, 4.0], [1.0, 7.0, 7.0]], [[4.0, 7.0, 7.0], [6.0, 5.0, 2.0], [6.0, 1.0, 2.0]], [[2.0, 1.0, 8.0], [1.0, 5.0, 8.0], [2.0, 4.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 7.0, 1.0], [1.0, 6.0, 2.0], [6.0, 6.0, 8.0]], [[6.0, 4.0, 1.0], [8.0, 3.0, 6.0], [4.0, 2.0, 2.0]], [[2.0, 1.0, 4.0], [2.0, 1.0, 8.0], [6.0, 1.0, 6.0]]], [[[5.0, 5.0, 7.0], [6.0, 6.0, 2.0], [1.0, 2.0, 1.0]], [[4.0, 2.0, 4.0], [4.0, 5.0, 2.0], [4.0, 2.0, 6.0]], [[2.0, 4.0, 4.0], [4.0, 6.0, 8.0], [6.0, 3.0, 6.0]]], [[[1.0, 4.0, 8.0], [5.0, 8.0, 2.0], [5.0, 5.0, 2.0]], [[3.0, 3.0, 6.0], [1.0, 7.0, 7.0], [8.0, 1.0, 1.0]], [[2.0, 7.0, 4.0], [7.0, 5.0, 3.0], [4.0, 5.0, 1.0]]], [[[1.0, 4.0, 2.0], [6.0, 4.0, 4.0], [1.0, 7.0, 7.0]], [[4.0, 7.0, 7.0], [6.0, 5.0, 2.0], [6.0, 1.0, 2.0]], [[2.0, 1.0, 8.0], [1.0, 5.0, 8.0], [2.0, 4.0, 8.0]]]])
4819          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4820       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4821       def test_setslice_constData_rank4_taggedData_PLPN(self):
4822          arg=Data(numarray.array([[[[6.0, 3.0, 7.0], [2.0, 3.0, 5.0], [2.0, 5.0, 2.0]], [[2.0, 8.0, 7.0], [8.0, 7.0, 1.0], [2.0, 3.0, 2.0]], [[7.0, 7.0, 2.0], [6.0, 8.0, 4.0], [8.0, 2.0, 4.0]]], [[[4.0, 5.0, 8.0], [2.0, 1.0, 5.0], [4.0, 5.0, 4.0]], [[7.0, 6.0, 3.0], [4.0, 1.0, 2.0], [3.0, 6.0, 7.0]], [[3.0, 7.0, 8.0], [8.0, 5.0, 1.0], [6.0, 6.0, 8.0]]], [[[3.0, 5.0, 2.0], [5.0, 1.0, 1.0], [6.0, 4.0, 3.0]], [[5.0, 4.0, 1.0], [2.0, 3.0, 7.0], [5.0, 2.0, 6.0]], [[5.0, 1.0, 8.0], [5.0, 6.0, 5.0], [6.0, 6.0, 3.0]]], [[[4.0, 8.0, 5.0], [7.0, 7.0, 3.0], [6.0, 1.0, 3.0]], [[5.0, 8.0, 1.0], [6.0, 3.0, 8.0], [2.0, 6.0, 4.0]], [[6.0, 8.0, 2.0], [5.0, 4.0, 5.0], [1.0, 7.0, 4.0]]]]),self.functionspace)
4823          val=Data(numarray.array([[1.0, 4.0, 2.0]]),self.functionspace)
4824          val.setTaggedValue(1,numarray.array([[5.0, 7.0, 7.0]]))
4825          arg[2,2:,1]=val
4826          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4827          ref=msk_ref*numarray.array([[[[6.0, 3.0, 7.0], [2.0, 3.0, 5.0], [2.0, 5.0, 2.0]], [[2.0, 8.0, 7.0], [8.0, 7.0, 1.0], [2.0, 3.0, 2.0]], [[7.0, 7.0, 2.0], [6.0, 8.0, 4.0], [8.0, 2.0, 4.0]]], [[[4.0, 5.0, 8.0], [2.0, 1.0, 5.0], [4.0, 5.0, 4.0]], [[7.0, 6.0, 3.0], [4.0, 1.0, 2.0], [3.0, 6.0, 7.0]], [[3.0, 7.0, 8.0], [8.0, 5.0, 1.0], [6.0, 6.0, 8.0]]], [[[3.0, 5.0, 2.0], [5.0, 1.0, 1.0], [6.0, 4.0, 3.0]], [[5.0, 4.0, 1.0], [2.0, 3.0, 7.0], [5.0, 2.0, 6.0]], [[5.0, 1.0, 8.0], [1.0, 4.0, 2.0], [6.0, 6.0, 3.0]]], [[[4.0, 8.0, 5.0], [7.0, 7.0, 3.0], [6.0, 1.0, 3.0]], [[5.0, 8.0, 1.0], [6.0, 3.0, 8.0], [2.0, 6.0, 4.0]], [[6.0, 8.0, 2.0], [5.0, 4.0, 5.0], [1.0, 7.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 3.0, 7.0], [2.0, 3.0, 5.0], [2.0, 5.0, 2.0]], [[2.0, 8.0, 7.0], [8.0, 7.0, 1.0], [2.0, 3.0, 2.0]], [[7.0, 7.0, 2.0], [6.0, 8.0, 4.0], [8.0, 2.0, 4.0]]], [[[4.0, 5.0, 8.0], [2.0, 1.0, 5.0], [4.0, 5.0, 4.0]], [[7.0, 6.0, 3.0], [4.0, 1.0, 2.0], [3.0, 6.0, 7.0]], [[3.0, 7.0, 8.0], [8.0, 5.0, 1.0], [6.0, 6.0, 8.0]]], [[[3.0, 5.0, 2.0], [5.0, 1.0, 1.0], [6.0, 4.0, 3.0]], [[5.0, 4.0, 1.0], [2.0, 3.0, 7.0], [5.0, 2.0, 6.0]], [[5.0, 1.0, 8.0], [5.0, 7.0, 7.0], [6.0, 6.0, 3.0]]], [[[4.0, 8.0, 5.0], [7.0, 7.0, 3.0], [6.0, 1.0, 3.0]], [[5.0, 8.0, 1.0], [6.0, 3.0, 8.0], [2.0, 6.0, 4.0]], [[6.0, 8.0, 2.0], [5.0, 4.0, 5.0], [1.0, 7.0, 4.0]]]])
4828          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4829       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4830       def test_setslice_constData_rank4_taggedData_LCCN(self):
4831          arg=Data(numarray.array([[[[7.0, 5.0, 1.0], [4.0, 8.0, 3.0], [4.0, 4.0, 1.0]], [[3.0, 5.0, 2.0], [6.0, 2.0, 7.0], [5.0, 6.0, 1.0]], [[8.0, 8.0, 8.0], [4.0, 4.0, 4.0], [6.0, 8.0, 1.0]]], [[[1.0, 2.0, 4.0], [6.0, 1.0, 8.0], [5.0, 2.0, 7.0]], [[8.0, 7.0, 6.0], [7.0, 4.0, 3.0], [6.0, 8.0, 1.0]], [[3.0, 5.0, 4.0], [2.0, 7.0, 7.0], [2.0, 4.0, 5.0]]], [[[8.0, 3.0, 3.0], [1.0, 3.0, 2.0], [2.0, 2.0, 6.0]], [[6.0, 2.0, 1.0], [4.0, 6.0, 2.0], [2.0, 4.0, 3.0]], [[8.0, 5.0, 6.0], [1.0, 7.0, 4.0], [3.0, 8.0, 6.0]]], [[[5.0, 8.0, 7.0], [7.0, 2.0, 1.0], [3.0, 5.0, 4.0]], [[1.0, 5.0, 1.0], [6.0, 1.0, 4.0], [1.0, 2.0, 2.0]], [[4.0, 5.0, 1.0], [2.0, 2.0, 8.0], [4.0, 7.0, 1.0]]]]),self.functionspace)
4832          val=Data(numarray.array([[[[6.0, 7.0, 1.0], [6.0, 7.0, 7.0], [7.0, 2.0, 1.0]], [[2.0, 5.0, 8.0], [4.0, 8.0, 7.0], [4.0, 3.0, 6.0]], [[8.0, 3.0, 8.0], [5.0, 6.0, 6.0], [1.0, 1.0, 8.0]]], [[[4.0, 6.0, 2.0], [6.0, 8.0, 5.0], [3.0, 8.0, 2.0]], [[4.0, 7.0, 2.0], [7.0, 8.0, 2.0], [4.0, 3.0, 6.0]], [[3.0, 5.0, 6.0], [5.0, 8.0, 5.0], [5.0, 3.0, 8.0]]]]),self.functionspace)
4833          val.setTaggedValue(1,numarray.array([[[[4.0, 2.0, 6.0], [1.0, 7.0, 7.0], [4.0, 5.0, 1.0]], [[5.0, 1.0, 5.0], [2.0, 2.0, 7.0], [3.0, 5.0, 8.0]], [[5.0, 5.0, 1.0], [3.0, 7.0, 3.0], [2.0, 4.0, 8.0]]], [[[7.0, 8.0, 4.0], [1.0, 3.0, 3.0], [4.0, 6.0, 6.0]], [[1.0, 2.0, 6.0], [7.0, 1.0, 5.0], [3.0, 1.0, 5.0]], [[8.0, 3.0, 6.0], [6.0, 8.0, 7.0], [6.0, 3.0, 1.0]]]]))
4834          arg[2:,:,:]=val
4835          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4836          ref=msk_ref*numarray.array([[[[7.0, 5.0, 1.0], [4.0, 8.0, 3.0], [4.0, 4.0, 1.0]], [[3.0, 5.0, 2.0], [6.0, 2.0, 7.0], [5.0, 6.0, 1.0]], [[8.0, 8.0, 8.0], [4.0, 4.0, 4.0], [6.0, 8.0, 1.0]]], [[[1.0, 2.0, 4.0], [6.0, 1.0, 8.0], [5.0, 2.0, 7.0]], [[8.0, 7.0, 6.0], [7.0, 4.0, 3.0], [6.0, 8.0, 1.0]], [[3.0, 5.0, 4.0], [2.0, 7.0, 7.0], [2.0, 4.0, 5.0]]], [[[6.0, 7.0, 1.0], [6.0, 7.0, 7.0], [7.0, 2.0, 1.0]], [[2.0, 5.0, 8.0], [4.0, 8.0, 7.0], [4.0, 3.0, 6.0]], [[8.0, 3.0, 8.0], [5.0, 6.0, 6.0], [1.0, 1.0, 8.0]]], [[[4.0, 6.0, 2.0], [6.0, 8.0, 5.0], [3.0, 8.0, 2.0]], [[4.0, 7.0, 2.0], [7.0, 8.0, 2.0], [4.0, 3.0, 6.0]], [[3.0, 5.0, 6.0], [5.0, 8.0, 5.0], [5.0, 3.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 5.0, 1.0], [4.0, 8.0, 3.0], [4.0, 4.0, 1.0]], [[3.0, 5.0, 2.0], [6.0, 2.0, 7.0], [5.0, 6.0, 1.0]], [[8.0, 8.0, 8.0], [4.0, 4.0, 4.0], [6.0, 8.0, 1.0]]], [[[1.0, 2.0, 4.0], [6.0, 1.0, 8.0], [5.0, 2.0, 7.0]], [[8.0, 7.0, 6.0], [7.0, 4.0, 3.0], [6.0, 8.0, 1.0]], [[3.0, 5.0, 4.0], [2.0, 7.0, 7.0], [2.0, 4.0, 5.0]]], [[[4.0, 2.0, 6.0], [1.0, 7.0, 7.0], [4.0, 5.0, 1.0]], [[5.0, 1.0, 5.0], [2.0, 2.0, 7.0], [3.0, 5.0, 8.0]], [[5.0, 5.0, 1.0], [3.0, 7.0, 3.0], [2.0, 4.0, 8.0]]], [[[7.0, 8.0, 4.0], [1.0, 3.0, 3.0], [4.0, 6.0, 6.0]], [[1.0, 2.0, 6.0], [7.0, 1.0, 5.0], [3.0, 1.0, 5.0]], [[8.0, 3.0, 6.0], [6.0, 8.0, 7.0], [6.0, 3.0, 1.0]]]])
4837          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4838       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4839       def test_setslice_constData_rank4_taggedData_ULRN(self):
4840          arg=Data(numarray.array([[[[2.0, 5.0, 5.0], [2.0, 2.0, 2.0], [5.0, 7.0, 7.0]], [[1.0, 6.0, 5.0], [3.0, 7.0, 2.0], [4.0, 4.0, 4.0]], [[8.0, 7.0, 7.0], [7.0, 1.0, 4.0], [4.0, 3.0, 2.0]]], [[[5.0, 8.0, 2.0], [8.0, 8.0, 3.0], [7.0, 5.0, 8.0]], [[1.0, 1.0, 5.0], [8.0, 2.0, 4.0], [3.0, 5.0, 8.0]], [[8.0, 2.0, 2.0], [5.0, 4.0, 4.0], [7.0, 6.0, 8.0]]], [[[2.0, 5.0, 1.0], [6.0, 2.0, 4.0], [7.0, 7.0, 5.0]], [[6.0, 4.0, 5.0], [2.0, 5.0, 2.0], [3.0, 4.0, 4.0]], [[6.0, 8.0, 6.0], [5.0, 4.0, 3.0], [6.0, 8.0, 6.0]]], [[[1.0, 4.0, 1.0], [8.0, 3.0, 6.0], [3.0, 7.0, 5.0]], [[6.0, 6.0, 2.0], [8.0, 6.0, 2.0], [8.0, 2.0, 1.0]], [[7.0, 5.0, 4.0], [4.0, 3.0, 6.0], [2.0, 2.0, 7.0]]]]),self.functionspace)
4841          val=Data(numarray.array([[[[4.0, 5.0, 5.0]]], [[[5.0, 4.0, 2.0]]], [[[1.0, 4.0, 4.0]]]]),self.functionspace)
4842          val.setTaggedValue(1,numarray.array([[[[3.0, 2.0, 2.0]]], [[[6.0, 7.0, 5.0]]], [[[1.0, 7.0, 6.0]]]]))
4843          arg[:3,2:,1:2]=val
4844          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4845          ref=msk_ref*numarray.array([[[[2.0, 5.0, 5.0], [2.0, 2.0, 2.0], [5.0, 7.0, 7.0]], [[1.0, 6.0, 5.0], [3.0, 7.0, 2.0], [4.0, 4.0, 4.0]], [[8.0, 7.0, 7.0], [4.0, 5.0, 5.0], [4.0, 3.0, 2.0]]], [[[5.0, 8.0, 2.0], [8.0, 8.0, 3.0], [7.0, 5.0, 8.0]], [[1.0, 1.0, 5.0], [8.0, 2.0, 4.0], [3.0, 5.0, 8.0]], [[8.0, 2.0, 2.0], [5.0, 4.0, 2.0], [7.0, 6.0, 8.0]]], [[[2.0, 5.0, 1.0], [6.0, 2.0, 4.0], [7.0, 7.0, 5.0]], [[6.0, 4.0, 5.0], [2.0, 5.0, 2.0], [3.0, 4.0, 4.0]], [[6.0, 8.0, 6.0], [1.0, 4.0, 4.0], [6.0, 8.0, 6.0]]], [[[1.0, 4.0, 1.0], [8.0, 3.0, 6.0], [3.0, 7.0, 5.0]], [[6.0, 6.0, 2.0], [8.0, 6.0, 2.0], [8.0, 2.0, 1.0]], [[7.0, 5.0, 4.0], [4.0, 3.0, 6.0], [2.0, 2.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 5.0, 5.0], [2.0, 2.0, 2.0], [5.0, 7.0, 7.0]], [[1.0, 6.0, 5.0], [3.0, 7.0, 2.0], [4.0, 4.0, 4.0]], [[8.0, 7.0, 7.0], [3.0, 2.0, 2.0], [4.0, 3.0, 2.0]]], [[[5.0, 8.0, 2.0], [8.0, 8.0, 3.0], [7.0, 5.0, 8.0]], [[1.0, 1.0, 5.0], [8.0, 2.0, 4.0], [3.0, 5.0, 8.0]], [[8.0, 2.0, 2.0], [6.0, 7.0, 5.0], [7.0, 6.0, 8.0]]], [[[2.0, 5.0, 1.0], [6.0, 2.0, 4.0], [7.0, 7.0, 5.0]], [[6.0, 4.0, 5.0], [2.0, 5.0, 2.0], [3.0, 4.0, 4.0]], [[6.0, 8.0, 6.0], [1.0, 7.0, 6.0], [6.0, 8.0, 6.0]]], [[[1.0, 4.0, 1.0], [8.0, 3.0, 6.0], [3.0, 7.0, 5.0]], [[6.0, 6.0, 2.0], [8.0, 6.0, 2.0], [8.0, 2.0, 1.0]], [[7.0, 5.0, 4.0], [4.0, 3.0, 6.0], [2.0, 2.0, 7.0]]]])
4846          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4847       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4848       def test_setslice_constData_rank4_taggedData_UUPN(self):
4849          arg=Data(numarray.array([[[[3.0, 4.0, 6.0], [7.0, 5.0, 2.0], [7.0, 8.0, 3.0]], [[2.0, 3.0, 3.0], [1.0, 7.0, 7.0], [5.0, 3.0, 6.0]], [[5.0, 4.0, 5.0], [7.0, 7.0, 6.0], [5.0, 7.0, 3.0]]], [[[3.0, 3.0, 6.0], [3.0, 8.0, 4.0], [6.0, 7.0, 4.0]], [[7.0, 5.0, 7.0], [2.0, 6.0, 4.0], [5.0, 3.0, 6.0]], [[8.0, 7.0, 2.0], [2.0, 6.0, 2.0], [3.0, 2.0, 2.0]]], [[[7.0, 2.0, 5.0], [7.0, 1.0, 2.0], [3.0, 6.0, 4.0]], [[7.0, 8.0, 8.0], [8.0, 1.0, 6.0], [2.0, 2.0, 3.0]], [[1.0, 8.0, 5.0], [1.0, 2.0, 1.0], [2.0, 6.0, 3.0]]], [[[6.0, 2.0, 7.0], [6.0, 4.0, 8.0], [1.0, 2.0, 3.0]], [[1.0, 7.0, 1.0], [4.0, 1.0, 8.0], [3.0, 5.0, 7.0]], [[3.0, 5.0, 7.0], [1.0, 5.0, 7.0], [4.0, 2.0, 8.0]]]]),self.functionspace)
4850          val=Data(numarray.array([[[2.0, 7.0, 8.0], [2.0, 2.0, 3.0]], [[5.0, 8.0, 5.0], [3.0, 8.0, 3.0]], [[5.0, 1.0, 4.0], [1.0, 5.0, 7.0]]]),self.functionspace)
4851          val.setTaggedValue(1,numarray.array([[[4.0, 1.0, 2.0], [2.0, 8.0, 7.0]], [[2.0, 3.0, 5.0], [7.0, 1.0, 6.0]], [[5.0, 2.0, 1.0], [5.0, 2.0, 3.0]]]))
4852          arg[:3,:2,1]=val
4853          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4854          ref=msk_ref*numarray.array([[[[3.0, 4.0, 6.0], [2.0, 7.0, 8.0], [7.0, 8.0, 3.0]], [[2.0, 3.0, 3.0], [2.0, 2.0, 3.0], [5.0, 3.0, 6.0]], [[5.0, 4.0, 5.0], [7.0, 7.0, 6.0], [5.0, 7.0, 3.0]]], [[[3.0, 3.0, 6.0], [5.0, 8.0, 5.0], [6.0, 7.0, 4.0]], [[7.0, 5.0, 7.0], [3.0, 8.0, 3.0], [5.0, 3.0, 6.0]], [[8.0, 7.0, 2.0], [2.0, 6.0, 2.0], [3.0, 2.0, 2.0]]], [[[7.0, 2.0, 5.0], [5.0, 1.0, 4.0], [3.0, 6.0, 4.0]], [[7.0, 8.0, 8.0], [1.0, 5.0, 7.0], [2.0, 2.0, 3.0]], [[1.0, 8.0, 5.0], [1.0, 2.0, 1.0], [2.0, 6.0, 3.0]]], [[[6.0, 2.0, 7.0], [6.0, 4.0, 8.0], [1.0, 2.0, 3.0]], [[1.0, 7.0, 1.0], [4.0, 1.0, 8.0], [3.0, 5.0, 7.0]], [[3.0, 5.0, 7.0], [1.0, 5.0, 7.0], [4.0, 2.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[3.0, 4.0, 6.0], [4.0, 1.0, 2.0], [7.0, 8.0, 3.0]], [[2.0, 3.0, 3.0], [2.0, 8.0, 7.0], [5.0, 3.0, 6.0]], [[5.0, 4.0, 5.0], [7.0, 7.0, 6.0], [5.0, 7.0, 3.0]]], [[[3.0, 3.0, 6.0], [2.0, 3.0, 5.0], [6.0, 7.0, 4.0]], [[7.0, 5.0, 7.0], [7.0, 1.0, 6.0], [5.0, 3.0, 6.0]], [[8.0, 7.0, 2.0], [2.0, 6.0, 2.0], [3.0, 2.0, 2.0]]], [[[7.0, 2.0, 5.0], [5.0, 2.0, 1.0], [3.0, 6.0, 4.0]], [[7.0, 8.0, 8.0], [5.0, 2.0, 3.0], [2.0, 2.0, 3.0]], [[1.0, 8.0, 5.0], [1.0, 2.0, 1.0], [2.0, 6.0, 3.0]]], [[[6.0, 2.0, 7.0], [6.0, 4.0, 8.0], [1.0, 2.0, 3.0]], [[1.0, 7.0, 1.0], [4.0, 1.0, 8.0], [3.0, 5.0, 7.0]], [[3.0, 5.0, 7.0], [1.0, 5.0, 7.0], [4.0, 2.0, 8.0]]]])
4855          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4856       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4857       def test_setslice_constData_rank4_taggedData_RCRN(self):
4858          arg=Data(numarray.array([[[[8.0, 5.0, 2.0], [5.0, 2.0, 8.0], [6.0, 5.0, 2.0]], [[3.0, 5.0, 3.0], [6.0, 6.0, 4.0], [3.0, 6.0, 3.0]], [[1.0, 4.0, 8.0], [5.0, 2.0, 8.0], [8.0, 7.0, 8.0]]], [[[6.0, 3.0, 7.0], [2.0, 3.0, 5.0], [8.0, 2.0, 7.0]], [[1.0, 6.0, 3.0], [7.0, 7.0, 4.0], [5.0, 2.0, 2.0]], [[5.0, 1.0, 4.0], [2.0, 3.0, 6.0], [8.0, 4.0, 4.0]]], [[[6.0, 6.0, 4.0], [7.0, 8.0, 3.0], [6.0, 1.0, 1.0]], [[4.0, 6.0, 3.0], [7.0, 3.0, 3.0], [8.0, 7.0, 4.0]], [[1.0, 2.0, 3.0], [6.0, 2.0, 3.0], [4.0, 8.0, 1.0]]], [[[8.0, 3.0, 3.0], [1.0, 2.0, 7.0], [1.0, 1.0, 3.0]], [[4.0, 2.0, 4.0], [4.0, 5.0, 8.0], [5.0, 6.0, 1.0]], [[1.0, 8.0, 7.0], [2.0, 8.0, 7.0], [1.0, 8.0, 8.0]]]]),self.functionspace)
4859          val=Data(numarray.array([[[[3.0, 7.0, 3.0]], [[8.0, 2.0, 3.0]], [[3.0, 7.0, 6.0]]], [[[2.0, 6.0, 7.0]], [[3.0, 7.0, 6.0]], [[3.0, 7.0, 7.0]]]]),self.functionspace)
4860          val.setTaggedValue(1,numarray.array([[[[8.0, 4.0, 5.0]], [[1.0, 7.0, 2.0]], [[5.0, 3.0, 4.0]]], [[[6.0, 8.0, 1.0]], [[6.0, 8.0, 1.0]], [[7.0, 8.0, 3.0]]]]))
4861          arg[1:3,:,1:2]=val
4862          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4863          ref=msk_ref*numarray.array([[[[8.0, 5.0, 2.0], [5.0, 2.0, 8.0], [6.0, 5.0, 2.0]], [[3.0, 5.0, 3.0], [6.0, 6.0, 4.0], [3.0, 6.0, 3.0]], [[1.0, 4.0, 8.0], [5.0, 2.0, 8.0], [8.0, 7.0, 8.0]]], [[[6.0, 3.0, 7.0], [3.0, 7.0, 3.0], [8.0, 2.0, 7.0]], [[1.0, 6.0, 3.0], [8.0, 2.0, 3.0], [5.0, 2.0, 2.0]], [[5.0, 1.0, 4.0], [3.0, 7.0, 6.0], [8.0, 4.0, 4.0]]], [[[6.0, 6.0, 4.0], [2.0, 6.0, 7.0], [6.0, 1.0, 1.0]], [[4.0, 6.0, 3.0], [3.0, 7.0, 6.0], [8.0, 7.0, 4.0]], [[1.0, 2.0, 3.0], [3.0, 7.0, 7.0], [4.0, 8.0, 1.0]]], [[[8.0, 3.0, 3.0], [1.0, 2.0, 7.0], [1.0, 1.0, 3.0]], [[4.0, 2.0, 4.0], [4.0, 5.0, 8.0], [5.0, 6.0, 1.0]], [[1.0, 8.0, 7.0], [2.0, 8.0, 7.0], [1.0, 8.0, 8.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 5.0, 2.0], [5.0, 2.0, 8.0], [6.0, 5.0, 2.0]], [[3.0, 5.0, 3.0], [6.0, 6.0, 4.0], [3.0, 6.0, 3.0]], [[1.0, 4.0, 8.0], [5.0, 2.0, 8.0], [8.0, 7.0, 8.0]]], [[[6.0, 3.0, 7.0], [8.0, 4.0, 5.0], [8.0, 2.0, 7.0]], [[1.0, 6.0, 3.0], [1.0, 7.0, 2.0], [5.0, 2.0, 2.0]], [[5.0, 1.0, 4.0], [5.0, 3.0, 4.0], [8.0, 4.0, 4.0]]], [[[6.0, 6.0, 4.0], [6.0, 8.0, 1.0], [6.0, 1.0, 1.0]], [[4.0, 6.0, 3.0], [6.0, 8.0, 1.0], [8.0, 7.0, 4.0]], [[1.0, 2.0, 3.0], [7.0, 8.0, 3.0], [4.0, 8.0, 1.0]]], [[[8.0, 3.0, 3.0], [1.0, 2.0, 7.0], [1.0, 1.0, 3.0]], [[4.0, 2.0, 4.0], [4.0, 5.0, 8.0], [5.0, 6.0, 1.0]], [[1.0, 8.0, 7.0], [2.0, 8.0, 7.0], [1.0, 8.0, 8.0]]]])
4864          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4865       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4866       def test_setslice_constData_rank4_taggedData_PUUN(self):
4867          arg=Data(numarray.array([[[[5.0, 1.0, 7.0], [7.0, 8.0, 1.0], [7.0, 7.0, 2.0]], [[3.0, 2.0, 5.0], [2.0, 3.0, 1.0], [6.0, 6.0, 7.0]], [[8.0, 5.0, 6.0], [3.0, 7.0, 5.0], [4.0, 8.0, 5.0]]], [[[8.0, 6.0, 3.0], [2.0, 2.0, 1.0], [5.0, 6.0, 7.0]], [[5.0, 4.0, 7.0], [4.0, 1.0, 1.0], [4.0, 8.0, 4.0]], [[2.0, 2.0, 5.0], [4.0, 3.0, 5.0], [4.0, 5.0, 1.0]]], [[[1.0, 2.0, 1.0], [7.0, 5.0, 6.0], [7.0, 8.0, 8.0]], [[7.0, 3.0, 3.0], [2.0, 2.0, 8.0], [4.0, 8.0, 8.0]], [[5.0, 2.0, 3.0], [8.0, 1.0, 5.0], [2.0, 3.0, 5.0]]], [[[5.0, 4.0, 8.0], [4.0, 7.0, 4.0], [3.0, 3.0, 8.0]], [[3.0, 8.0, 3.0], [5.0, 4.0, 2.0], [2.0, 2.0, 6.0]], [[6.0, 2.0, 2.0], [7.0, 6.0, 7.0], [5.0, 6.0, 2.0]]]]),self.functionspace)
4868          val=Data(numarray.array([[[8.0, 5.0, 4.0], [6.0, 6.0, 5.0]], [[4.0, 2.0, 5.0], [7.0, 1.0, 4.0]]]),self.functionspace)
4869          val.setTaggedValue(1,numarray.array([[[5.0, 8.0, 6.0], [5.0, 7.0, 6.0]], [[5.0, 7.0, 7.0], [3.0, 4.0, 7.0]]]))
4870          arg[2,:2,:2]=val
4871          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4872          ref=msk_ref*numarray.array([[[[5.0, 1.0, 7.0], [7.0, 8.0, 1.0], [7.0, 7.0, 2.0]], [[3.0, 2.0, 5.0], [2.0, 3.0, 1.0], [6.0, 6.0, 7.0]], [[8.0, 5.0, 6.0], [3.0, 7.0, 5.0], [4.0, 8.0, 5.0]]], [[[8.0, 6.0, 3.0], [2.0, 2.0, 1.0], [5.0, 6.0, 7.0]], [[5.0, 4.0, 7.0], [4.0, 1.0, 1.0], [4.0, 8.0, 4.0]], [[2.0, 2.0, 5.0], [4.0, 3.0, 5.0], [4.0, 5.0, 1.0]]], [[[8.0, 5.0, 4.0], [6.0, 6.0, 5.0], [7.0, 8.0, 8.0]], [[4.0, 2.0, 5.0], [7.0, 1.0, 4.0], [4.0, 8.0, 8.0]], [[5.0, 2.0, 3.0], [8.0, 1.0, 5.0], [2.0, 3.0, 5.0]]], [[[5.0, 4.0, 8.0], [4.0, 7.0, 4.0], [3.0, 3.0, 8.0]], [[3.0, 8.0, 3.0], [5.0, 4.0, 2.0], [2.0, 2.0, 6.0]], [[6.0, 2.0, 2.0], [7.0, 6.0, 7.0], [5.0, 6.0, 2.0]]]])+(1.-msk_ref)*numarray.array([[[[5.0, 1.0, 7.0], [7.0, 8.0, 1.0], [7.0, 7.0, 2.0]], [[3.0, 2.0, 5.0], [2.0, 3.0, 1.0], [6.0, 6.0, 7.0]], [[8.0, 5.0, 6.0], [3.0, 7.0, 5.0], [4.0, 8.0, 5.0]]], [[[8.0, 6.0, 3.0], [2.0, 2.0, 1.0], [5.0, 6.0, 7.0]], [[5.0, 4.0, 7.0], [4.0, 1.0, 1.0], [4.0, 8.0, 4.0]], [[2.0, 2.0, 5.0], [4.0, 3.0, 5.0], [4.0, 5.0, 1.0]]], [[[5.0, 8.0, 6.0], [5.0, 7.0, 6.0], [7.0, 8.0, 8.0]], [[5.0, 7.0, 7.0], [3.0, 4.0, 7.0], [4.0, 8.0, 8.0]], [[5.0, 2.0, 3.0], [8.0, 1.0, 5.0], [2.0, 3.0, 5.0]]], [[[5.0, 4.0, 8.0], [4.0, 7.0, 4.0], [3.0, 3.0, 8.0]], [[3.0, 8.0, 3.0], [5.0, 4.0, 2.0], [2.0, 2.0, 6.0]], [[6.0, 2.0, 2.0], [7.0, 6.0, 7.0], [5.0, 6.0, 2.0]]]])
4873          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4874       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4875       def test_setslice_constData_rank4_taggedData_RRRR(self):
4876          arg=Data(numarray.array([[[[7.0, 6.0, 2.0], [5.0, 4.0, 7.0], [5.0, 4.0, 4.0]], [[3.0, 8.0, 4.0], [6.0, 3.0, 3.0], [6.0, 4.0, 3.0]], [[3.0, 3.0, 8.0], [2.0, 3.0, 5.0], [7.0, 3.0, 4.0]]], [[[8.0, 5.0, 8.0], [7.0, 2.0, 6.0], [5.0, 6.0, 5.0]], [[4.0, 4.0, 6.0], [4.0, 3.0, 1.0], [7.0, 1.0, 3.0]], [[4.0, 7.0, 6.0], [3.0, 2.0, 1.0], [1.0, 8.0, 3.0]]], [[[8.0, 3.0, 2.0], [1.0, 1.0, 2.0], [5.0, 6.0, 1.0]], [[3.0, 5.0, 3.0], [3.0, 5.0, 3.0], [5.0, 2.0, 4.0]], [[6.0, 2.0, 8.0], [5.0, 6.0, 7.0], [5.0, 8.0, 8.0]]], [[[2.0, 6.0, 3.0], [4.0, 7.0, 5.0], [3.0, 7.0, 3.0]], [[8.0, 4.0, 7.0], [4.0, 5.0, 1.0], [5.0, 1.0, 6.0]], [[3.0, 4.0, 2.0], [4.0, 6.0, 5.0], [6.0, 3.0, 1.0]]]]),self.functionspace)
4877          val=Data(numarray.array([[[[6.0]]], [[[5.0]]]]),self.functionspace)
4878          val.setTaggedValue(1,numarray.array([[[[4.0]]], [[[2.0]]]]))
4879          arg[1:3,1:2,1:2,1:2]=val
4880          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4881          ref=msk_ref*numarray.array([[[[7.0, 6.0, 2.0], [5.0, 4.0, 7.0], [5.0, 4.0, 4.0]], [[3.0, 8.0, 4.0], [6.0, 3.0, 3.0], [6.0, 4.0, 3.0]], [[3.0, 3.0, 8.0], [2.0, 3.0, 5.0], [7.0, 3.0, 4.0]]], [[[8.0, 5.0, 8.0], [7.0, 2.0, 6.0], [5.0, 6.0, 5.0]], [[4.0, 4.0, 6.0], [4.0, 6.0, 1.0], [7.0, 1.0, 3.0]], [[4.0, 7.0, 6.0], [3.0, 2.0, 1.0], [1.0, 8.0, 3.0]]], [[[8.0, 3.0, 2.0], [1.0, 1.0, 2.0], [5.0, 6.0, 1.0]], [[3.0, 5.0, 3.0], [3.0, 5.0, 3.0], [5.0, 2.0, 4.0]], [[6.0, 2.0, 8.0], [5.0, 6.0, 7.0], [5.0, 8.0, 8.0]]], [[[2.0, 6.0, 3.0], [4.0, 7.0, 5.0], [3.0, 7.0, 3.0]], [[8.0, 4.0, 7.0], [4.0, 5.0, 1.0], [5.0, 1.0, 6.0]], [[3.0, 4.0, 2.0], [4.0, 6.0, 5.0], [6.0, 3.0, 1.0]]]])+(1.-msk_ref)*numarray.array([[[[7.0, 6.0, 2.0], [5.0, 4.0, 7.0], [5.0, 4.0, 4.0]], [[3.0, 8.0, 4.0], [6.0, 3.0, 3.0], [6.0, 4.0, 3.0]], [[3.0, 3.0, 8.0], [2.0, 3.0, 5.0], [7.0, 3.0, 4.0]]], [[[8.0, 5.0, 8.0], [7.0, 2.0, 6.0], [5.0, 6.0, 5.0]], [[4.0, 4.0, 6.0], [4.0, 4.0, 1.0], [7.0, 1.0, 3.0]], [[4.0, 7.0, 6.0], [3.0, 2.0, 1.0], [1.0, 8.0, 3.0]]], [[[8.0, 3.0, 2.0], [1.0, 1.0, 2.0], [5.0, 6.0, 1.0]], [[3.0, 5.0, 3.0], [3.0, 2.0, 3.0], [5.0, 2.0, 4.0]], [[6.0, 2.0, 8.0], [5.0, 6.0, 7.0], [5.0, 8.0, 8.0]]], [[[2.0, 6.0, 3.0], [4.0, 7.0, 5.0], [3.0, 7.0, 3.0]], [[8.0, 4.0, 7.0], [4.0, 5.0, 1.0], [5.0, 1.0, 6.0]], [[3.0, 4.0, 2.0], [4.0, 6.0, 5.0], [6.0, 3.0, 1.0]]]])
4882          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4883       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4884       def test_setslice_constData_rank4_taggedData_LLUN(self):
4885          arg=Data(numarray.array([[[[6.0, 2.0, 5.0], [7.0, 4.0, 6.0], [4.0, 1.0, 8.0]], [[7.0, 4.0, 5.0], [7.0, 1.0, 3.0], [5.0, 4.0, 1.0]], [[8.0, 1.0, 5.0], [3.0, 6.0, 2.0], [1.0, 5.0, 7.0]]], [[[3.0, 5.0, 5.0], [5.0, 5.0, 7.0], [4.0, 7.0, 5.0]], [[4.0, 7.0, 5.0], [1.0, 3.0, 1.0], [1.0, 7.0, 4.0]], [[5.0, 7.0, 1.0], [1.0, 6.0, 1.0], [2.0, 2.0, 5.0]]], [[[3.0, 3.0, 3.0], [3.0, 3.0, 8.0], [5.0, 8.0, 4.0]], [[1.0, 2.0, 1.0], [8.0, 2.0, 1.0], [5.0, 2.0, 8.0]], [[2.0, 4.0, 8.0], [1.0, 4.0, 2.0], [6.0, 2.0, 7.0]]], [[[5.0, 1.0, 7.0], [7.0, 8.0, 2.0], [2.0, 1.0, 8.0]], [[2.0, 7.0, 3.0], [8.0, 7.0, 5.0], [6.0, 4.0, 3.0]], [[2.0, 3.0, 7.0], [3.0, 2.0, 5.0], [3.0, 6.0, 4.0]]]]),self.functionspace)
4886          val=Data(numarray.array([[[[6.0, 6.0, 7.0], [5.0, 4.0, 8.0]]], [[[5.0, 6.0, 3.0], [7.0, 2.0, 5.0]]]]),self.functionspace)
4887          val.setTaggedValue(1,numarray.array([[[[2.0, 4.0, 7.0], [6.0, 8.0, 7.0]]], [[[3.0, 2.0, 6.0], [8.0, 4.0, 6.0]]]]))
4888          arg[2:,2:,:2]=val
4889          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4890          ref=msk_ref*numarray.array([[[[6.0, 2.0, 5.0], [7.0, 4.0, 6.0], [4.0, 1.0, 8.0]], [[7.0, 4.0, 5.0], [7.0, 1.0, 3.0], [5.0, 4.0, 1.0]], [[8.0, 1.0, 5.0], [3.0, 6.0, 2.0], [1.0, 5.0, 7.0]]], [[[3.0, 5.0, 5.0], [5.0, 5.0, 7.0], [4.0, 7.0, 5.0]], [[4.0, 7.0, 5.0], [1.0, 3.0, 1.0], [1.0, 7.0, 4.0]], [[5.0, 7.0, 1.0], [1.0, 6.0, 1.0], [2.0, 2.0, 5.0]]], [[[3.0, 3.0, 3.0], [3.0, 3.0, 8.0], [5.0, 8.0, 4.0]], [[1.0, 2.0, 1.0], [8.0, 2.0, 1.0], [5.0, 2.0, 8.0]], [[6.0, 6.0, 7.0], [5.0, 4.0, 8.0], [6.0, 2.0, 7.0]]], [[[5.0, 1.0, 7.0], [7.0, 8.0, 2.0], [2.0, 1.0, 8.0]], [[2.0, 7.0, 3.0], [8.0, 7.0, 5.0], [6.0, 4.0, 3.0]], [[5.0, 6.0, 3.0], [7.0, 2.0, 5.0], [3.0, 6.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[6.0, 2.0, 5.0], [7.0, 4.0, 6.0], [4.0, 1.0, 8.0]], [[7.0, 4.0, 5.0], [7.0, 1.0, 3.0], [5.0, 4.0, 1.0]], [[8.0, 1.0, 5.0], [3.0, 6.0, 2.0], [1.0, 5.0, 7.0]]], [[[3.0, 5.0, 5.0], [5.0, 5.0, 7.0], [4.0, 7.0, 5.0]], [[4.0, 7.0, 5.0], [1.0, 3.0, 1.0], [1.0, 7.0, 4.0]], [[5.0, 7.0, 1.0], [1.0, 6.0, 1.0], [2.0, 2.0, 5.0]]], [[[3.0, 3.0, 3.0], [3.0, 3.0, 8.0], [5.0, 8.0, 4.0]], [[1.0, 2.0, 1.0], [8.0, 2.0, 1.0], [5.0, 2.0, 8.0]], [[2.0, 4.0, 7.0], [6.0, 8.0, 7.0], [6.0, 2.0, 7.0]]], [[[5.0, 1.0, 7.0], [7.0, 8.0, 2.0], [2.0, 1.0, 8.0]], [[2.0, 7.0, 3.0], [8.0, 7.0, 5.0], [6.0, 4.0, 3.0]], [[3.0, 2.0, 6.0], [8.0, 4.0, 6.0], [3.0, 6.0, 4.0]]]])
4891          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4892       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4893       def test_setslice_constData_rank4_taggedData_PRPN(self):
4894          arg=Data(numarray.array([[[[8.0, 5.0, 5.0], [2.0, 6.0, 1.0], [1.0, 1.0, 3.0]], [[7.0, 2.0, 6.0], [4.0, 4.0, 8.0], [7.0, 2.0, 7.0]], [[5.0, 2.0, 8.0], [4.0, 3.0, 5.0], [6.0, 4.0, 8.0]]], [[[8.0, 2.0, 6.0], [5.0, 7.0, 5.0], [5.0, 1.0, 4.0]], [[3.0, 7.0, 5.0], [6.0, 5.0, 4.0], [2.0, 5.0, 3.0]], [[4.0, 3.0, 6.0], [1.0, 3.0, 1.0], [7.0, 5.0, 1.0]]], [[[5.0, 7.0, 6.0], [5.0, 7.0, 1.0], [3.0, 8.0, 6.0]], [[2.0, 1.0, 8.0], [6.0, 1.0, 4.0], [7.0, 6.0, 6.0]], [[8.0, 3.0, 8.0], [4.0, 5.0, 6.0], [8.0, 6.0, 5.0]]], [[[1.0, 1.0, 3.0], [2.0, 6.0, 1.0], [8.0, 4.0, 7.0]], [[5.0, 6.0, 6.0], [2.0, 8.0, 5.0], [1.0, 7.0, 8.0]], [[1.0, 4.0, 5.0], [3.0, 7.0, 4.0], [1.0, 2.0, 4.0]]]]),self.functionspace)
4895          val=Data(numarray.array([[3.0, 4.0, 1.0]]),self.functionspace)
4896          val.setTaggedValue(1,numarray.array([[8.0, 5.0, 5.0]]))
4897          arg[2,1:2,1]=val
4898          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4899          ref=msk_ref*numarray.array([[[[8.0, 5.0, 5.0], [2.0, 6.0, 1.0], [1.0, 1.0, 3.0]], [[7.0, 2.0, 6.0], [4.0, 4.0, 8.0], [7.0, 2.0, 7.0]], [[5.0, 2.0, 8.0], [4.0, 3.0, 5.0], [6.0, 4.0, 8.0]]], [[[8.0, 2.0, 6.0], [5.0, 7.0, 5.0], [5.0, 1.0, 4.0]], [[3.0, 7.0, 5.0], [6.0, 5.0, 4.0], [2.0, 5.0, 3.0]], [[4.0, 3.0, 6.0], [1.0, 3.0, 1.0], [7.0, 5.0, 1.0]]], [[[5.0, 7.0, 6.0], [5.0, 7.0, 1.0], [3.0, 8.0, 6.0]], [[2.0, 1.0, 8.0], [3.0, 4.0, 1.0], [7.0, 6.0, 6.0]], [[8.0, 3.0, 8.0], [4.0, 5.0, 6.0], [8.0, 6.0, 5.0]]], [[[1.0, 1.0, 3.0], [2.0, 6.0, 1.0], [8.0, 4.0, 7.0]], [[5.0, 6.0, 6.0], [2.0, 8.0, 5.0], [1.0, 7.0, 8.0]], [[1.0, 4.0, 5.0], [3.0, 7.0, 4.0], [1.0, 2.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 5.0, 5.0], [2.0, 6.0, 1.0], [1.0, 1.0, 3.0]], [[7.0, 2.0, 6.0], [4.0, 4.0, 8.0], [7.0, 2.0, 7.0]], [[5.0, 2.0, 8.0], [4.0, 3.0, 5.0], [6.0, 4.0, 8.0]]], [[[8.0, 2.0, 6.0], [5.0, 7.0, 5.0], [5.0, 1.0, 4.0]], [[3.0, 7.0, 5.0], [6.0, 5.0, 4.0], [2.0, 5.0, 3.0]], [[4.0, 3.0, 6.0], [1.0, 3.0, 1.0], [7.0, 5.0, 1.0]]], [[[5.0, 7.0, 6.0], [5.0, 7.0, 1.0], [3.0, 8.0, 6.0]], [[2.0, 1.0, 8.0], [8.0, 5.0, 5.0], [7.0, 6.0, 6.0]], [[8.0, 3.0, 8.0], [4.0, 5.0, 6.0], [8.0, 6.0, 5.0]]], [[[1.0, 1.0, 3.0], [2.0, 6.0, 1.0], [8.0, 4.0, 7.0]], [[5.0, 6.0, 6.0], [2.0, 8.0, 5.0], [1.0, 7.0, 8.0]], [[1.0, 4.0, 5.0], [3.0, 7.0, 4.0], [1.0, 2.0, 4.0]]]])
4900          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4901       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4902       def test_setslice_constData_rank4_taggedData_PPLP(self):
4903          arg=Data(numarray.array([[[[8.0, 2.0, 5.0], [2.0, 3.0, 4.0], [8.0, 4.0, 3.0]], [[4.0, 5.0, 5.0], [4.0, 2.0, 2.0], [7.0, 6.0, 5.0]], [[6.0, 1.0, 2.0], [4.0, 7.0, 2.0], [3.0, 1.0, 5.0]]], [[[6.0, 2.0, 6.0], [7.0, 3.0, 1.0], [3.0, 6.0, 7.0]], [[7.0, 2.0, 4.0], [2.0, 1.0, 6.0], [8.0, 7.0, 2.0]], [[5.0, 2.0, 1.0], [2.0, 1.0, 2.0], [6.0, 7.0, 4.0]]], [[[5.0, 3.0, 7.0], [3.0, 8.0, 8.0], [5.0, 5.0, 1.0]], [[4.0, 5.0, 1.0], [6.0, 4.0, 5.0], [5.0, 7.0, 3.0]], [[6.0, 7.0, 8.0], [5.0, 8.0, 5.0], [7.0, 8.0, 8.0]]], [[[2.0, 6.0, 5.0], [4.0, 6.0, 3.0], [8.0, 1.0, 7.0]], [[4.0, 4.0, 2.0], [8.0, 1.0, 7.0], [2.0, 8.0, 3.0]], [[2.0, 7.0, 8.0], [3.0, 2.0, 2.0], [2.0, 4.0, 4.0]]]]),self.functionspace)
4904          val=Data(numarray.array([7.0]),self.functionspace)
4905          val.setTaggedValue(1,numarray.array([1.0]))
4906          arg[2,1,2:,1]=val
4907          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4908          ref=msk_ref*numarray.array([[[[8.0, 2.0, 5.0], [2.0, 3.0, 4.0], [8.0, 4.0, 3.0]], [[4.0, 5.0, 5.0], [4.0, 2.0, 2.0], [7.0, 6.0, 5.0]], [[6.0, 1.0, 2.0], [4.0, 7.0, 2.0], [3.0, 1.0, 5.0]]], [[[6.0, 2.0, 6.0], [7.0, 3.0, 1.0], [3.0, 6.0, 7.0]], [[7.0, 2.0, 4.0], [2.0, 1.0, 6.0], [8.0, 7.0, 2.0]], [[5.0, 2.0, 1.0], [2.0, 1.0, 2.0], [6.0, 7.0, 4.0]]], [[[5.0, 3.0, 7.0], [3.0, 8.0, 8.0], [5.0, 5.0, 1.0]], [[4.0, 5.0, 1.0], [6.0, 4.0, 5.0], [5.0, 7.0, 3.0]], [[6.0, 7.0, 8.0], [5.0, 8.0, 5.0], [7.0, 8.0, 8.0]]], [[[2.0, 6.0, 5.0], [4.0, 6.0, 3.0], [8.0, 1.0, 7.0]], [[4.0, 4.0, 2.0], [8.0, 1.0, 7.0], [2.0, 8.0, 3.0]], [[2.0, 7.0, 8.0], [3.0, 2.0, 2.0], [2.0, 4.0, 4.0]]]])+(1.-msk_ref)*numarray.array([[[[8.0, 2.0, 5.0], [2.0, 3.0, 4.0], [8.0, 4.0, 3.0]], [[4.0, 5.0, 5.0], [4.0, 2.0, 2.0], [7.0, 6.0, 5.0]], [[6.0, 1.0, 2.0], [4.0, 7.0, 2.0], [3.0, 1.0, 5.0]]], [[[6.0, 2.0, 6.0], [7.0, 3.0, 1.0], [3.0, 6.0, 7.0]], [[7.0, 2.0, 4.0], [2.0, 1.0, 6.0], [8.0, 7.0, 2.0]], [[5.0, 2.0, 1.0], [2.0, 1.0, 2.0], [6.0, 7.0, 4.0]]], [[[5.0, 3.0, 7.0], [3.0, 8.0, 8.0], [5.0, 5.0, 1.0]], [[4.0, 5.0, 1.0], [6.0, 4.0, 5.0], [5.0, 1.0, 3.0]], [[6.0, 7.0, 8.0], [5.0, 8.0, 5.0], [7.0, 8.0, 8.0]]], [[[2.0, 6.0, 5.0], [4.0, 6.0, 3.0], [8.0, 1.0, 7.0]], [[4.0, 4.0, 2.0], [8.0, 1.0, 7.0], [2.0, 8.0, 3.0]], [[2.0, 7.0, 8.0], [3.0, 2.0, 2.0], [2.0, 4.0, 4.0]]]])
4909          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4910       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4911       def test_setslice_constData_rank4_taggedData_PLUN(self):
4912          arg=Data(numarray.array([[[[2.0, 3.0, 3.0], [5.0, 4.0, 2.0], [1.0, 7.0, 3.0]], [[8.0, 8.0, 4.0], [5.0, 3.0, 8.0], [4.0, 6.0, 3.0]], [[6.0, 5.0, 3.0], [8.0, 5.0, 4.0], [5.0, 3.0, 3.0]]], [[[4.0, 4.0, 7.0], [2.0, 1.0, 7.0], [8.0, 5.0, 3.0]], [[2.0, 2.0, 4.0], [5.0, 7.0, 3.0], [6.0, 4.0, 5.0]], [[8.0, 2.0, 8.0], [4.0, 2.0, 6.0], [6.0, 4.0, 5.0]]], [[[3.0, 4.0, 8.0], [6.0, 3.0, 5.0], [2.0, 5.0, 2.0]], [[8.0, 1.0, 2.0], [8.0, 8.0, 6.0], [8.0, 6.0, 5.0]], [[1.0, 7.0, 6.0], [7.0, 1.0, 5.0], [3.0, 5.0, 1.0]]], [[[4.0, 5.0, 4.0], [6.0, 6.0, 1.0], [1.0, 6.0, 6.0]], [[4.0, 1.0, 4.0], [5.0, 8.0, 4.0], [1.0, 8.0, 5.0]], [[4.0, 4.0, 7.0], [7.0, 3.0, 3.0], [3.0, 4.0, 7.0]]]]),self.functionspace)
4913          val=Data(numarray.array([[[6.0, 3.0, 7.0], [5.0, 6.0, 7.0]]]),self.functionspace)
4914          val.setTaggedValue(1,numarray.array([[[3.0, 5.0, 8.0], [6.0, 6.0, 7.0]]]))
4915          arg[2,2:,:2]=val
4916          msk_ref=1.-whereZero(self.functionspace.getX()[0],1.e-8)
4917          ref=msk_ref*numarray.array([[[[2.0, 3.0, 3.0], [5.0, 4.0, 2.0], [1.0, 7.0, 3.0]], [[8.0, 8.0, 4.0], [5.0, 3.0, 8.0], [4.0, 6.0, 3.0]], [[6.0, 5.0, 3.0], [8.0, 5.0, 4.0], [5.0, 3.0, 3.0]]], [[[4.0, 4.0, 7.0], [2.0, 1.0, 7.0], [8.0, 5.0, 3.0]], [[2.0, 2.0, 4.0], [5.0, 7.0, 3.0], [6.0, 4.0, 5.0]], [[8.0, 2.0, 8.0], [4.0, 2.0, 6.0], [6.0, 4.0, 5.0]]], [[[3.0, 4.0, 8.0], [6.0, 3.0, 5.0], [2.0, 5.0, 2.0]], [[8.0, 1.0, 2.0], [8.0, 8.0, 6.0], [8.0, 6.0, 5.0]], [[6.0, 3.0, 7.0], [5.0, 6.0, 7.0], [3.0, 5.0, 1.0]]], [[[4.0, 5.0, 4.0], [6.0, 6.0, 1.0], [1.0, 6.0, 6.0]], [[4.0, 1.0, 4.0], [5.0, 8.0, 4.0], [1.0, 8.0, 5.0]], [[4.0, 4.0, 7.0], [7.0, 3.0, 3.0], [3.0, 4.0, 7.0]]]])+(1.-msk_ref)*numarray.array([[[[2.0, 3.0, 3.0], [5.0, 4.0, 2.0], [1.0, 7.0, 3.0]], [[8.0, 8.0, 4.0], [5.0, 3.0, 8.0], [4.0, 6.0, 3.0]], [[6.0, 5.0, 3.0], [8.0, 5.0, 4.0], [5.0, 3.0, 3.0]]], [[[4.0, 4.0, 7.0], [2.0, 1.0, 7.0], [8.0, 5.0, 3.0]], [[2.0, 2.0, 4.0], [5.0, 7.0, 3.0], [6.0, 4.0, 5.0]], [[8.0, 2.0, 8.0], [4.0, 2.0, 6.0], [6.0, 4.0, 5.0]]], [[[3.0, 4.0, 8.0], [6.0, 3.0, 5.0], [2.0, 5.0, 2.0]], [[8.0, 1.0, 2.0], [8.0, 8.0, 6.0], [8.0, 6.0, 5.0]], [[3.0, 5.0, 8.0], [6.0, 6.0, 7.0], [3.0, 5.0, 1.0]]], [[[4.0, 5.0, 4.0], [6.0, 6.0, 1.0], [1.0, 6.0, 6.0]], [[4.0, 1.0, 4.0], [5.0, 8.0, 4.0], [1.0, 8.0, 5.0]], [[4.0, 4.0, 7.0], [7.0, 3.0, 3.0], [3.0, 4.0, 7.0]]]])
4918          self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),"wrong result")
4919       #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4920       def test_setslice_constData_rank4_taggedData_CPCN(self):
4921          arg=Data(numarray.array([[[[6.0, 4.0, 4.0], [5.0, 5.0, 8.0], [1.0, 7.0, 2.0]], [[2.0, 8.0, 3.0], [1.0, 6.0, 5.0], [4.0, 7.0, 6.0]], [[1.0, 5.0, 5.0], [1.0, 5.0, 2.0], [4.0, 2.0, 1.0]]], [[[3.0, 3.0, 1.0], [3.0, 2.0, 2.0], [8.0, 5.0, 3.0]], [[2.0, 8.0, 7.0], [6.0, 5.0, 2.0], [3.0, 7.0, 5.0]], [[8.0, 8.0, 6.0], [4.0, 8.0, 6.0], [6.0, 3.0, 3.0]]], [[[8.0, 5.0, 7.0], [5.0, 1.0, 6.0], [1.0, 3.0, 5.0]], [[1.0, 6.0, 2.0], [3.0, 4.0, 3.0], [3.0, 4.0, 1.0]], [[1.0, 7.0, 1.0], [6.0, 1.0, 5.0], [7.0, 2.0, 7.0]]], [[[6.0, 1.0, 6.0], [3.0, 3.0, 5.0], [5.0, 2.0, 3.0]], [[2.0, 3.0, 8.0], [1.0, 2.0, 5.0], [7.0, 8.0, 5.0]], [[5.0, 8.0, 6.0], [8.0, 5.0, 8.0], [1.0, 7.0, 8.0]]]]),self.functionspace)
4922          val=Data(numarray.array([[[4.0, 3.0, 1.0], [1.0, 3.0, 1.0], [8.0, 1.0, 2.0]], [[1.0, 6.0, 3.0], [1.0, 7.0, 8.0], [1.0, 8.0, 2.0]], [[2.0, 4.0, 7.0], [1.0, 5.0, 1.0], [8.0, 7.0, 6.0]], [[5.0, 3.0, 1.0], [6.0, 3.0, 4.0], [3.0, 1.0, 1.0]]]),self.functionspace)
4923          val.setTaggedValue(1,numarray.array([[[6.0, 3.0, 8.0], [1.0, 7.0, 5.0], [2.0, 7.0, 8.0]], [[1.0, 6.0, 5.0], [6.0, 4.0, 6.0], [3.0, 4.0, 6.0]], [[5.0, 3.0, 5.0], [1.0, 6.0, 5.0], [4.0, 2.0, 7.0]], [[5.0, 6.0, 4.0], [6.0, 1.0, 2.0], [4.0, 2.0, 8.0]]]))
4924          arg[:,1,:]=val
4925          msk_ref