/*
无知的YY:
树状数组就是能对>x的所有值进行操作,
可以是加上一个v(即,求SUM(int x))
也可以对其进行标记(即,每个出现过的进行记录,此题就是,比较典型)
*/
#include <stdio.h>
#include <string.h>
int s[100001],flag[100001];
int lmin[100001],lmax[100001],rmin[100001],rmax[100001];
int SUM(int x)
{
int ss=0;
for(int i=x;i>0;i-=i&-i)
ss+=flag[i];
return ss;
}
void update(int x)
{
for(int i=x;i<=100000;i+=i&-i)
flag[i]++;
}
int main()
{
int i,j,n,m,cas;
__int64 sum;
scanf("%d",&cas);
while(cas--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&s[i]);
}
memset(flag,0,sizeof(flag));
for(i=1;i<=n;i++)
{
lmin[i]=SUM(s[i]);
lmax[i]=i-1-lmin[i];
update(s[i]);
}
memset(flag,0,sizeof(flag));
for(i=n,j=1;i>0;j++,i--)
{
rmin[i]=SUM(s[i]);
rmax[i]=j-1-rmin[i];
update(s[i]);
}
sum=0;
for(i=1;i<=n;i++)
sum+=lmin[i]*rmax[i]+lmax[i]*rmin[i];
printf("%I64d\n",sum);
}
return 0;
}