#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+10;
const ll mod=1e9+7;
ll visit[N];
ll prime[N];
ll b[N];
ll a[N];
/*ll mi(ll base,ll n)
{
	long long ans=1;
	while(n>0)
	{
		if(n&1)
		ans=ans*base%mod;
		n=n>>1;
		base=base*base%mod;		
	}
	return ans;
}*/
inline ll read() 
{
    char ch;
    ll f = 1, res = 0;
    while ((ch = getchar()) < '0' || ch > '9')
        if (ch == '-') f = -1;
    while (ch >= '0' && ch <= '9') {
        res = (res << 1) + (res << 3) + (ch ^ 48);
        ch = getchar();
    }
    return f * res;
}
/*struct node
{
	ll id;
	ll money;
	string s1;
	ll t; 
}s[1010];
int cmp(node a,node b)
{
	if(a.t==b.t)
	return a.money<b.money;
	return a.t>b.t;
}
map<ll,ll>mp;
inline int isprime(int n)
{
	ll i;
	for(i=2;i*i<=n;i++)
	{
	if(n%i==0)
	return 0;	
	}
	return 1;
}*/
/*void dfs(int x,int y)
{
	if(x>n+1||x<0||y<0||y>m+1||mapp[x][y])
	return;
	mapp[x][y]=2;
   for(i=1;i<=4;i++)
   {
   	if(i==1)
   	dfs(x+1,y);
   	else
   	if(i==2)
   	dfs(x-1,y);
   	else
   	if(i==3)
   	dfs(x,y+1);
   	else
   	
   } 	
*/
/*ll num=0;
void checkprime()
{
	ll i,j;
	memset(prime,0,sizeof(prime));
	memset(visit,0,sizeof(visit));	
	for(i=2;i<=N;i++)
	{
		if(!visit[i])
		prime[++num]=i;
		for(j=1;j<=num&&i*prime[j]<=N;j++)
		{
			visit[i*prime[j]]=1;
			if(i%prime[j]==0)
			break;
		}
	}
}

ll check(ll n)
{
	ll i;
	if(n==1)
	return 0;
	for(i=2;i*i<=n;i++)
	if(n%i==0)
	return 0;
	return 1;
	
}*/
int main()
{        
      ios::sync_with_stdio(false);  
      ll n,m,k,cnt,cnt1,cnt2,cnt3,cnt4,x,y,t,ans,x1,y1,l,x2,y2,d,ans1,maxx;
      ll s1,s2,T,i,j,z,flag,flag1,p,minn,r,q,tmp,f,len,sum,sumax,sumin,sum1,f1,f2;
      char ch;
	  list<int>li;
	  vector<ll>::iterator it;
	  T=read();
	  while(T--)
	  {
	  	n=read();
	  	for(i=1;i<=n;i++)
	  	{
	  		a[i]=read();
	  		if(i==1)
	  		{
	  			k=1;
	  			minn=a[i];
			}
			else
			{
				if(a[i]<minn)
				{
					k=i;
					minn=a[i];
				}
			}
		}
		cout<<n-1<<endl;
		for(i=1;i<=n;i++)
		{
			if(i!=k)
			{
				ans=a[k]+abs(i-k);
				cout<<i<<" "<<k<<" "<<ans<<" "<<a[k]<<endl;
			}
		}
	}
    return 0;
}


