/*
题意:就是找出三个元素,使其递增,递减的数目
对于递增,枚举中间的那个数, 找到前面比它小的数目 和后面比他大的数目 相乘即为 递增的递增的数目
递减同理
*/
#include<stdio.h>
#include<string.h>
const int maxm = 100000;
const int maxn = 20000+100;
int a[maxn+100],b[maxm+100],c[maxm+100];
int g[maxn+100],h[maxn+100];
int lowbit(int x)
{
return x&(-x);
}
int query(int b[maxm],int x)
{
int ans=0;
for(int i=x;i>0;i-=lowbit(i))
ans+=b[i];
return ans;
}
void insert(int b[maxm],int x)
{
for(int i=x;i<=maxm;i+=lowbit(i))
b[i]++;
}
int main()
{
int t,i;
int n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
g[i]=query(b,a[i]-1);
insert(b,a[i]);
}
for(i=n-1;i>=0;i--)
{
h[i]=query(c,a[i]-1);
insert(c,a[i]);
}
__int64 ans=0;
for(i=0;i<n;i++)
ans+=(__int64)(g[i])*(__int64)(n-i-1-h[i]) +(__int64)(i-g[i])*(__int64)(h[i]);
printf("%I64d\n",ans);
}
return 0;
}