コード例 #1
0
ファイル: testmatr.hpp プロジェクト: skempken/interverdikom
	matrixsectassign(const M1 &a, const M2 &b)
	{
		int i,j;
		E c,e(n,n);
		testing(nameof(e),"operator &=("+nameof(a)+","+nameof(b)+")");
		if(!tested())
		{
			for(i=1;i<=n;i++)
				for(j=1;j<=n;j++)
					a[i][j]= 23-i+j,b[i][j]=1023-2*i-3*j,e[i][j]=(123-i+j)&(1023-2*i-3*j);


			c=(a&=b);

			int err=0;

			for(i=1;i<=n;i++)
			{
				//cout << c[i][j] << " " << a[i][j] << " " << e[i][j] << endl;
				for(j=1;j<=n;j++)
					if(c[i][j]!=e[i][j] || a[i][j]!=e[i][j])
					 err=1;
			}
			if(err)
				error();
			else
				ok();
		}
	}
コード例 #2
0
ファイル: testmatr.hpp プロジェクト: skempken/interverdikom
	matrixsect(const M1 &a, const M2 &b)
	{
		int i,j;
		E c,e(n,n);
		testing(nameof(e),"operator &("+nameof(a)+","+nameof(b)+")");
		if(!tested())
		{
			for(i=1;i<=n;i++)
				for(j=1;j<=n;j++)
					a[i][j]= 23-i+j,b[i][j]=1023-2*i-3*j,e[i][j]=(23-i+j)&(1023-2*i-3*j);

			int err=0;
			c=a&b;

			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
					if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
						err=1;
			}
			if(err)
				error();
			else
				ok();
		}
		testing(nameof(e),"operator &("+nameof(b)+","+nameof(a)+")");
		if(!tested())
		{
			for(i=1;i<=n;i++)
				for(j=1;j<=n;j++)
					a[i][j]= 23-i+j,b[i][j]=1023-2*i-3*j,e[i][j]=(23-i+j)&(1023-2*i-3*j);

			int err=0;
			c=b&a;

			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
					if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
						err=1;
			}
			if(err)
				error();
			else
				ok();
		}
	}
コード例 #3
0
ファイル: testmatr.hpp プロジェクト: skempken/interverdikom
      matrixaddsub(const A &a, const B &b)
      {
         int i,j;
         E c,e(n,n);
         testing(nameof(e),"operator +("+nameof(a)+","+nameof(b)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
	               a[i][j]= 123-i+j,b[i][j]=1023-2*i-3*j,e[i][j]=123+1023-3*i-2*j;

            int err=0;
				c=a+b;

            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
         
         testing(nameof(e),"operator +=("+nameof(a)+","+nameof(b)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
	               a[i][j]= 123-i+j,b[i][j]=1023-2*i-3*j,e[i][j]=123+1023-3*i-2*j;


            c=(a+=b);

            int err=0;

            for(i=1;i<=n;i++)
            {
               //cout << c[i][j] << " " << a[i][j] << " " << e[i][j] << endl;
					for(j=1;j<=n;j++)
	               if(c[i][j]!=e[i][j] || a[i][j]!=e[i][j])
  	                err=1;
            }
            if(err)
               error();
            else
               ok();
         }
         
         testing(nameof(e),"operator -("+nameof(a)+","+nameof(b)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
	               a[i][j]= 123-i+j,b[i][j]=1023-2*i-3*j,e[i][j]=123-1023+i+4*j;

            int err=0;
				c=(a-b);

            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
	               if(c[i][j]!=e[i][j] || !(c[i][j]==e[i][j]))
  	                err=1;
            }

            if(err)
               error();
            else
               ok();
         }

         testing(nameof(e),"operator -=("+nameof(a)+","+nameof(b)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
	               a[i][j]= 123-i+j,b[i][j]=1023-2*i-3*j,e[i][j]=123-1023+i+4*j;

            c=(a-=b);

            int err=0;

            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
						if(c[i][j]!=e[i][j] || a[i][j]!=e[i][j])
  	                err=1;
            }

            if(err)
               error();
            else
               ok();
         }

         testing(nameof(e),"operator -("+nameof(a)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
	               a[i][j]= 123-i+j,e[i][j]=-(123-i+j);

            int err=0;

				b= -a;
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
						if( b[i][j]!=e[i][j] || !(b[i][j]==e[i][j]))
  	                err=1;
            }

            if(err)
               error();
            else
               ok();
         }
         testing(nameof(e),"operator +("+nameof(a)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
	               a[i][j]= 123-i+j,e[i][j]=+(123-i+j);

            int err=0;
				b= +a;

            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
						if( b[i][j]!=e[i][j] || !(b[i][j]==e[i][j]))
  	                err=1;
            }
            if(err)
               error();
            else
               ok();
         }
         
         testing(nameof(e),"operator +("+nameof(a)+"(),"+nameof(b)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]= 123-i+j;
						if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
						{
							b[i][j]=e[i][j]=1023-2*i-3*j;
							e[i][j]+=123-i+j;
						}
					}
				}
            int err=0;
				c=a(10,n-10,10,n-10)+B(b(10,n-10,10,n-10));

            for(i=10;i<=n-10;i++)
				{
					for(j=10;j<=n-10;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
         
         testing(nameof(e),"operator +("+nameof(a)+","+nameof(b)+"() )");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]= 123-i+j;
						if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
						{
							b[i][j]=e[i][j]=1023-2*i-3*j;
							e[i][j]+=123-i+j;
						}
					}
				}
            int err=0;
				c=B(b(10,n-10,10,n-10))+a(10,n-10,10,n-10);

            for(i=10;i<=n-10;i++)
				{
					for(j=10;j<=n-10;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
         
         testing(nameof(e),"operator +("+nameof(a)+"() ,"+nameof(b)+"() )");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]= 123-i+j;
						b[i][j]=1023-2*i-3*j;
						if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
						{
							e[i][j]=1023-2*i-3*j+123-i+j;
						}
					}
				}
            int err=0;
				c=b(10,n-10,10,n-10)+a(10,n-10,10,n-10);

            for(i=10;i<=n-10;i++)
				{
					for(j=10;j<=n-10;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
         
         testing(nameof(e),"operator ().+=("+nameof(a)+","+nameof(b)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]=e[i][j]=123-i+j;
						if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
						{
							e[i][j]+=b[i][j]=1023-2*i-3*j;
						}
					}
				}
            int err=0;
				c=(a(10,n-10,10,n-10)+=B(b(10,n-10,10,n-10)));

            for(i=10;i<=n-10;i++)
				{
					for(j=10;j<=n-10;j++)
   	            if(!(a[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
			
         testing(nameof(e),"operator ().+=("+nameof(a)+","+nameof(b)+"() )");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]=e[i][j]=123-i+j;
						b[i][j]=1023-2*i-3*j;
						if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
						{
							e[i][j]+=b[i][j];
						}
					}
				}
            int err=0;
				c=(a(10,n-10,10,n-10)+=b(10,n-10,10,n-10));

            for(i=10;i<=n-10;i++)
				{
					for(j=10;j<=n-10;j++)
   	            if(!(a[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
			
		testing(nameof(e),"operator +=("+nameof(a)+","+nameof(b)+"() )");
		if(!tested())
		{
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
				{
					e[i][j]= 123-i+j+1023-2*i-3*j;
					b[i][j]=1023-2*i-3*j;
					a[i][j]=123-i+j;
				}
			}
			int err=0;
			c=(a+=b(n,n));

			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
					if(!(a[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
						err=1;
			}
			if(err)
				error();
			else
				ok();
		}
		
         testing(nameof(e),"operator -("+nameof(a)+"(),"+nameof(b)+")");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]= 123-i+j;
						if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
						{
							e[i][j]=123-i+j;
							e[i][j]-=b[i][j]=1023-2*i-3*j;
						}
					}
				}
            int err=0;
				c=a(10,n-10,10,n-10)-B(b(10,n-10,10,n-10));

            for(i=10;i<=n-10;i++)
				{
					for(j=10;j<=n-10;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
         
         testing(nameof(e),"operator -("+nameof(a)+","+nameof(b)+"() )");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]= 123-i+j;
						if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
						{
							e[i][j]=b[i][j]=1023-2*i-3*j;
							e[i][j]-=123-i+j;
						}
					}
				}
            int err=0;
				c=B(b(10,n-10,10,n-10))-a(10,n-10,10,n-10);

            for(i=10;i<=n-10;i++)
				{
					for(j=10;j<=n-10;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
         
         testing(nameof(e),"operator -("+nameof(a)+"() ,"+nameof(b)+"() )");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]= 123-i+j;
						b[i][j]=1023-2*i-3*j;
						if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
						{
							e[i][j]=1023-2*i-3*j-(123-i+j);
						}
					}
				}
            int err=0;
				c=b(10,n-10,10,n-10)-a(10,n-10,10,n-10);

            for(i=10;i<=n-10;i++)
				{
					for(j=10;j<=n-10;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
         
		testing(nameof(e),"operator ().-=("+nameof(a)+","+nameof(b)+")");
		if(!tested())
		{
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
				{
					a[i][j]=e[i][j]= 123-i+j;
					if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
					{
						e[i][j]-=b[i][j]=1023-2*i-3*j;
					}
				}
			}
			int err=0;
			c=(a(10,n-10,10,n-10)-=B(b(10,n-10,10,n-10)));

			for(i=10;i<=n-10;i++)
			{
				for(j=10;j<=n-10;j++)
					if(!(a[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
						err=1;
			}
			if(err)
				error();
			else
				ok();
		}
		
		testing(nameof(e),"operator ().-=("+nameof(a)+","+nameof(b)+"() )");
		if(!tested())
		{
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
				{
					a[i][j]=e[i][j]= 123-i+j;
					b[i][j]=1023-2*i-3*j;
					if((i>=10)&&(j>=10)&&(i<=n-10)&&(j<=n-10))
					{
						e[i][j]-=b[i][j];
					}
				}
			}
			int err=0;
			c=(a(10,n-10,10,n-10)-=b(10,n-10,10,n-10));

			for(i=10;i<=n-10;i++)
			{
				for(j=10;j<=n-10;j++)
					if(!(c[i][j]==e[i][j] && !(a[i][j]!=e[i][j])))
						err=1;
			}
			if(err)
				error();
			else
				ok();
		}
		
		testing(nameof(e),"operator -=("+nameof(a)+","+nameof(b)+"() )");
		if(!tested())
		{
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
				{
					e[i][j]= 123-i+j-(1023-2*i-3*j);
					b[i][j]=1023-2*i-3*j;
					a[i][j]=123-i+j;
				}
			}
			int err=0;
			c=(a-=b(1,n,1,n));

			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
					if(!(c[i][j]==e[i][j] && !(a[i][j]!=e[i][j])))
						err=1;
			}
			if(err)
				error();
			else
				ok();
		}
		
         testing(nameof(e),"operator -("+nameof(a)+"() )");
         if(!tested())
         {
            for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
	          	{
						a[i][j]= 123-i+j;
					}
				}
            int err=0;

				c= -a(10,n-10,10,n-10);
            for(i=10;i<=n-10;i++)
            {
					for(j=10;j<=n-10;j++)
						if( c[i][j]!=-a[i][j] || !(c[i][j]==-a[i][j]))
  	                err=1;
            }

            if(err)
               error();
            else
               ok();
         }
         testing(nameof(e),"operator +("+nameof(a)+"() )");
         if(!tested())
         {
            for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
	               a[i][j]= 123-i+j;

            int err=0;
				c= +a;

            for(i=10;i<=n-10;i++)
            {
					for(j=10;j<=n-10;j++)
						if( c[i][j]!=a[i][j] || !(c[i][j]==a[i][j]))
  	                err=1;
            }
            if(err)
               error();
            else
               ok();
         }
         
      }
コード例 #4
0
ファイル: testmatr.hpp プロジェクト: skempken/interverdikom
		matrixscalarmult(const A &a)
		{
			E e(n,n);
			S s;
			int i,j,err;
//			matrixassign<A,n,n,S> ai;
//			setfail(!ai);

			testing(nameof(a),"operator *("+nameof(s)+")");
			if(!tested())
			{
				err=0;
				s=21;
				for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
					{
						a[i][j]=123*i+4*j;
						e[i][j]=(123*i+4*j)*s;
					}
				}
				E c=a*s;
				for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
						{
	                  err=1;
						}
            if(err)
               error();
            else
               ok();
         }

			testing(nameof(a),"operator /("+nameof(s)+")");
			if(!tested())
			{
				err=0;
				s=21;
				for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
					{
						a[i][j]=123*i+4*j,e[i][j]=(123*i+4*j)/s;
					}
				}
				E c=a/s;
				for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
   	            if(!(c[i][j]==e[i][j] && !(c[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
			testing(nameof(a),"operator *=("+nameof(s)+")");
			if(!tested())
			{
				err=0;
				s=21;
				for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
					{
						a[i][j]=123*i+4*j;
						e[i][j]=(123*i+4*j)*s;
					}
				}
				a*=s;
				for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
   	            if(!(a[i][j]==e[i][j] && !(a[i][j]!=e[i][j])))
						{
	                  err=1;
						}
            if(err)
               error();
            else
               ok();
         }

			testing(nameof(a),"operator /("+nameof(s)+")");
			if(!tested())
			{
				err=0;
				s=21;
				for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
					{
						a[i][j]=123*i+4*j,e[i][j]=(123*i+4*j)/s;
					}
				}
				a/=s;
				for(i=1;i<=n;i++)
				{
					for(j=1;j<=n;j++)
   	            if(!(a[i][j]==e[i][j] && !(a[i][j]!=e[i][j])))
	                  err=1;
				}
            if(err)
               error();
            else
               ok();
         }
		}
コード例 #5
0
ファイル: testmatr.hpp プロジェクト: skempken/interverdikom
		matrixmult(const A &a, const B &b)
		{
			E e(n,n);
			DP dp;
//         int i,j,err;
         
//         matrixassign<A,n,m,int> ai;
         
//         setfail(!ai);
         
      	testing(nameof(e),"operator *("+nameof(a)+","+nameof(b)+")");
			if(!tested())
			{
				int err=0;
				E e(n,n);
				for(int i=1;i<=n;i++)
				{
					for(int j=1;j<=n;j++)
					{
						a[i][j]=10+2*i-j;
						b[i][j]=100-3*i+4*j;
					}
				}
				e=a*b;
				for(int i=1;i<=n;i++)
				{
					for(int j=1;j<=n;j++)
					{
						dp=0.0;
						for(int k=1;k<=n;k++)
							accumulate(dp,10+2*i-k,100-3*k+4*j);
						if(e[i][j]!=rnd(dp))
							err=1;
					}
				}
				if(err)
					error();
				else
					ok();		
			}
      	testing(nameof(e),"operator *("+nameof(b)+","+nameof(a)+")");
			if(!tested())
			{
				int err=0;
				E e(n,n);
				for(int i=1;i<=n;i++)
				{
					for(int j=1;j<=n;j++)
					{
						a[i][j]=10+2*i-j;
						b[i][j]=100-3*i+4*j;
					}
				}
				e=b*a;
				for(int i=1;i<=n;i++)
				{
					for(int j=1;j<=n;j++)
					{
						dp=0.0;
						for(int k=1;k<=n;k++)
							accumulate(dp,10+2*k-j,100-3*i+4*k);
						if(e[i][j]!=rnd(dp))
							err=1;
					}
				}
				if(err)
					error();
				else
					ok();		
			}
      	testing(nameof(e),"operator *=("+nameof(a)+","+nameof(b)+")");
			if(!tested())
			{
				int err=0;
				E e(n,n);
				for(int i=1;i<=n;i++)
				{
					for(int j=1;j<=n;j++)
					{
						a[i][j]=10+2*i-j;
						b[i][j]=100-3*i+4*j;
					}
				}
				e=(a*=b);
				for(int i=1;i<=n;i++)
				{
					for(int j=1;j<=n;j++)
					{
						dp=0.0;
						for(int k=1;k<=n;k++)
							accumulate(dp,10+2*i-k,100-3*k+4*j);
						if((e[i][j]!=rnd(dp))||(a[i][j]!=rnd(dp)))
							err=1;
					}
				}
				if(err)
					error();
				else
					ok();		
			}
		}
コード例 #6
0
ファイル: testmatr.hpp プロジェクト: skempken/interverdikom
	matrixconstr(const M &m, const V &v, const M2 &m2)
	{
		S s;
		for(int i=1;i<=n;i++)
			v[i]=(-5)*i;
		
		testing(nameof(m),nameof(m)+"("+nameof(s)+")");
		if(!tested())
		{
			s=3234;
			if((M(s)[1][1]!=s)||(Lb(M(s),ROW)!=1)||(Lb(M(s),COL)!=1)||(Ub(M(s),ROW)!=1)||(Ub(M(s),COL)!=1))
				error();
			else
				ok();
		}
		testing(nameof(m),nameof(m)+"("+nameof(v)+")");
		if(!tested())
		{
			int err=0;
			for(int i=1;i<=n;i++)
			{
				if((M(v)[i][1]!=(-5)*i)||(Lb(M(v),ROW)!=1)||(Lb(M(v),COL)!=1)||(Ub(M(v),ROW)!=n)||(Ub(M(v),COL)!=1))
					err=1;
			}
			if(err)
				error();
			else
				ok();
		}
		testing(nameof(m),nameof(m)+"("+nameof(v)+"())");
		if(!tested())
		{
			int err=0;
			for(int i=1;i<=n;i++)
			{
				if((M(v(n))[i][1]!=(-5)*i)||(Lb(M(v(n)),ROW)!=1)||(Lb(M(v(n)),COL)!=1)||(Ub(M(v(n)),ROW)!=n)||(Ub(M(v(n)),COL)!=1))
					err=1;
			}
			if(err)
				error();
			else
				ok();
		}
		testing(nameof(m),nameof(m)+"("+nameof(m2)+")");
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				m2[i][j]=i+n*j;
		if(!tested())
		{
			int err=0;
			for(int i=1;i<=n&& !err;i++)
			{
				for(int j=1;j<=n&& !err;j++)
					if((M(m2)[i][j]!=i+n*j)||(Lb(M(m2),ROW)!=1)||(Lb(M(m2),COL)!=1)||(Ub(M(m2),ROW)!=n)||(Ub(M(m2),COL)!=n))
						err=1;
				cout<<"."<<flush;
			}
			cout<<endl;
			if(err)
				error();
			else
				ok();
		}
		testing(nameof(m),nameof(m)+"("+nameof(m2)+"())");
		if(!tested())
		{
			int err=0;
			for(int i=1;i<=n&& !err;i++)
			{
				for(int j=1;j<=n&& !err;j++)
					if((M(m2(n,n))[i][j]!=i+n*j)||(Lb(M(m2(n,n)),ROW)!=1)||(Lb(M(m2(n,n)),COL)!=1)||(Ub(M(m2(n,n)),ROW)!=n)||(Ub(M(m2(n,n)),COL)!=n))
						err=1;
				cout<<"."<<flush;
			}
			cout<<endl;
			if(err)
				error();
			else
				ok();
		}
	}
コード例 #7
0
ファイル: testmatr.hpp プロジェクト: skempken/interverdikom
      matrixassign(const M &x, const V &v, const M2 &y)
      {
         S s;
         
         testing(nameof(x),"operator [][].operator =("+nameof(s)+")");
         if(!tested())
         {
            int i,j;
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
					{
               	s=1234*j-i;
               	x[i][j]=s;
					}
            }
            int err=0;
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
					{
               	s=1234*j-i;
               	if(!(x[i][j]==s && !(x[i][j]!=s)))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }
         testing(nameof(x),"operator [Col()][].operator =("+nameof(s)+")");
         if(!tested())
         {
            int i,j;
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
					{
               	s=1234*j-i;
               	x[Col(j)][i]=s;
					}
            }
            int err=0;
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
					{
               	s=1234*j-i;
               	if(!(x[i][j]==s && !(x[i][j]!=s)))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }

         testing(nameof(x),"operator =("+nameof(y)+")");
         if(!tested())
         {
            int i,j;
				x=S(0.0);
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
					{
						s=1234*j-i;
               	y[i][j]=s;
					}
            }
            int err=0;
				x=y;
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
					{
               	s=1234*j-i;
               	if(x[i][j]!=s || !(x[i][j]==s))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }

         testing(nameof(x),"operator (int,int).[][]=("+nameof(s)+")");
         if(!tested())
         {
            int i,j;
				for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
						x[i][j]=1234*j+i;
         
            int err=0;
            for(i=1;i<=n-10;i++)
            {
					for(j=1;j<=n-10;j++)
					{
               	s=1234*j+i;
               	if(!(x(n-10,n-10)[i][j]==s && !(x(n-10,n-10)[i][j]!=s)))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }
         testing(nameof(x),"operator (int,int,int,int).[][]=("+nameof(s)+")");
         if(!tested())
         {
            int i,j;
				for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
						x[i][j]=1234*j+i;
         
            int err=0;
            for(i=10;i<=n-10;i++)
            {
					for(j=10;j<=n-10;j++)
					{
               	s=1234*j+i;
               	if(!(x(10,n-10,10,n-10)[i][j]==s && !(x(10,n-10,10,n-10)[i][j]!=s)))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }
         testing(nameof(x),"operator (int,int,int,int).[][]=("+nameof(s)+")");
         if(!tested())
         {
            int i,j;
				for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
						x[i][j]=1234*j+i;
         
            int err=0;
            for(i=10;i<=n-10;i++)
            {
					for(j=10;j<=n-10;j++)
					{
						s=123*j-i;
               	x(10,n-10,10,n-10)[i][j]=s;
               	if(!(x[i][j]==s && !(x[i][j]!=s)))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }
         testing(nameof(x),"operator =("+nameof(y)+"())");
         if(!tested())
         {
				x=S(0.0);
            int i,j;
				for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
						y[i][j]=1234*j+i;
         
            int err=0;
				x=y(1,n,1,n);
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
					{
               	s=1234*j+i;
               	if(!(x[i][j]==s && !(x[i][j]!=s)))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }
         testing(nameof(x),"operator ().=("+nameof(y)+")");
         if(!tested())
         {
            int i,j;
				for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
						x[i][j]=1234*j+i;
         
            for(i=10;i<=n-10;i++)
            {
					for(j=10;j<=n-10;j++)
					{
               	s=123*j-i;
               	y[i][j]=s;
					}
            }
            int err=0;
				x(1,n,1,n)=y;
            for(i=10;i<=n-10;i++)
            {
					for(j=10;j<=n-10;j++)
					{
               	s=123*j-i;
               	if(!(x[i][j]==s && !(x[i][j]!=s)))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }
         testing(nameof(x),"operator ().=("+nameof(y)+"())");
         if(!tested())
         {
            int i,j;
				for(i=1;i<=n;i++)
					for(j=1;j<=n;j++)
						x[i][j]=1234*j+i;
         
            for(i=1;i<=n;i++)
            {
					for(j=1;j<=n;j++)
					{
               	s=123*j-i;
               	y[i][j]=s;
					}
            }
            int err=0;
				x(10,n-10,10,n-10)=y(10,n-10,10,n-10);
            for(i=10;i<=n-10;i++)
            {
					for(j=10;j<=n-10;j++)
					{
               	s=123*j-i;
               	if(!(x[i][j]==s && !(x[i][j]!=s)))
               	   err=1;
					}
            }
            if(err)
               error();
            else
               ok();
         }
			testing(nameof(x),"operator =("+nameof(v)+")");
			if(!tested())
			{
				int err=0;
				for(int i=1;i<=n;i++)
					v[i]=3*i+2;
				if(nameof(x).substr(nameof(x).length()-5,5)=="slice")
					x(n,1)=v;
				else
					x=v;
				for(int i=1;i<=n;i++)
				{
					if(x[i][1]!=3*i+2)
						err=1;
					if((nameof(x).substr(nameof(x).length()-5,5)!="slice")&&((Lb(x,ROW)!=1)||(Lb(x,COL)!=1)||(Ub(x,ROW)!=n)||(Ub(x,COL)!=1)))
						err=1;
				}
				if(err)
					error();
				else
					ok();
				x=y;
			}
			testing(nameof(x),"operator =("+nameof(v)+"())");
			if(!tested())
			{
				x=S(0.0);
				int err=0;
				for(int i=1;i<=n;i++)
					v[i]=3*i+2;
				if(nameof(x).substr(nameof(x).length()-5,5)=="slice")
					x(n,1)=v;
				else
					x=v(n);
//				cout << "v"<<endl<<v<<endl;
//				cout<<"x"<<endl<<x<<endl;
				for(int i=1;i<=n;i++)
				{
//					cout<<"i "<<i<<endl;
					if(x[i][1]!=3*i+2)
						err=1;
					if((nameof(x).substr(nameof(x).length()-5,5)!="slice")&&((Lb(x,ROW)!=1)||(Lb(x,COL)!=1)||(Ub(x,ROW)!=n)||(Ub(x,COL)!=1)))
						err=1;
				}
				if(err)
					error();
				else
					ok();
				x=y;
			}
      }
コード例 #8
0
ファイル: main.cpp プロジェクト: CCJY/coliru
int main() {
    Tested tested(42);
    combine<Set<Dummy0, Dummy1, Dummy2>, Set<Hello0, Hello1>>(tested);
}