#include<bits/stdc++.h>
using namespace std;
bool qf=false; //fast io enabled/disabled
#define input freopen("in.txt","r",stdin);
#define output freopen("out.txt","w",stdout);
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);qf=true;
#define sc scanf
#define pr printf
#define whi while
#define ll long long
#define ull unsigned long long
#define lld I64d
#define ff first
#define ss second
#define vc vector
#define pb push_back
#define ite iterator
#define str string
#define bl bool
#define tr true
#define fl false
#define ct continue
#define endl '\n'
#define ret return
#define rsort(a) greater<a>
#define nl if(qf==tr) pr("\n");else cout<<"\n";
#define gcd(a,b) __gcd(a,b)
#define mod 1000000007
#define tc int t;if(qf==fl) scanf("%d",&t); else cin>>t;whi(t--)
#define minof(a) std::numeric_limits<a>::min()
#define maxof(a) std::numeric_limits<a>::max()
#define setval(a,v) memset(a,v,sizeof(a));
#define all(c) c.begin(),c.end()
#define sz(c) c.size()
#define clr(c) c.clear()
#define fd(c,a) c.find(a)
#define bg(c) c.begin()
#define ed(c) c.end()
#define ins(c,a) c.insert(a)
#define rem(c,a) c.erase(a)
int main()
{
tc
{
register int n,i,j,k,a[2016],len,previans=0,val1,val2;
register int origlen,len1,len2,tmpans;
ll ans=0;
map <int,vc<int>> m;
vc <int>::ite it;
sc("%d",&n);
for(i=0;i<n;i++)
{
sc("%d",&a[i]);
m[a[i]].pb(i);
}
for(i=0;i<n;i++) m[a[i]].pb(n);
for(i=0;i<n-1;i++)
{
set <int> mark;
set <int>::ite it1,it2;
mark.insert(n);
tmpans=(n-i)*(n-i+1)/2;
for(j=i;j<n-1;j++)
{
it=lower_bound(m[a[j]].begin(),m[a[j]].end(),j);
if(fd(mark,*it)!=ed(mark) and *it!=n)
{
ans+=previans;
ct;
}
for(;*it!=n;it++)
{
it2=mark.lower_bound(*it);
if(it2==bg(mark)) val1=j-1;
else
{
it1=it2;
it1--;
val1=*it1;
}
val2=*it2;
len=val2-val1;
len1=max(0,val2-*it);
len2=max(0,*it-val1);
tmpans-=((len*(len+1)/2)-(len1*(len1+1)/2)-(len2*(len2+1)/2));
ins(mark,*it);
}
previans=tmpans;
ans+=tmpans;
}
}
pr("%lld\n",ans);
}
ret 0;
}
/*
1
3
1 2 3
1
5
1 1 2 2 2
Answer --> 18
1
4
1 2 2 2
Answer --> 6
2
3
1 2 3
4
1 2 1 2
1
4
1 2 1 2
1
10
2 8 5 1 10 5 9 9 3 5
Answer --> 294
1
7
1 4 6 2 1 2 4
Answer --> 55
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKYm9vbCBxZj1mYWxzZTsgICAgICAvL2Zhc3QgaW8gZW5hYmxlZC9kaXNhYmxlZAoKI2RlZmluZSBpbnB1dCAgICAgICBmcmVvcGVuKCJpbi50eHQiLCJyIixzdGRpbik7CiNkZWZpbmUgb3V0cHV0ICAgICAgZnJlb3Blbigib3V0LnR4dCIsInciLHN0ZG91dCk7CiNkZWZpbmUgZmFzdCAgICAgICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTtxZj10cnVlOwoKI2RlZmluZSBzYyAgICAgICAgICBzY2FuZgojZGVmaW5lIHByICAgICAgICAgIHByaW50ZgojZGVmaW5lIHdoaSAgICAgICAgIHdoaWxlCiNkZWZpbmUgbGwgICAgICAgICAgbG9uZyBsb25nCiNkZWZpbmUgdWxsICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgbGxkICAgICAgICAgSTY0ZAojZGVmaW5lIGZmICAgICAgICAgIGZpcnN0CiNkZWZpbmUgc3MgICAgICAgICAgc2Vjb25kCiNkZWZpbmUgdmMgICAgICAgICAgdmVjdG9yCiNkZWZpbmUgcGIgICAgICAgICAgcHVzaF9iYWNrCiNkZWZpbmUgaXRlICAgICAgICAgaXRlcmF0b3IKI2RlZmluZSBzdHIgICAgICAgICBzdHJpbmcKI2RlZmluZSBibCAgICAgICAgICBib29sCiNkZWZpbmUgdHIgICAgICAgICAgdHJ1ZQojZGVmaW5lIGZsICAgICAgICAgIGZhbHNlCiNkZWZpbmUgY3QgICAgICAgICAgY29udGludWUKI2RlZmluZSBlbmRsICAgICAgICAnXG4nCiNkZWZpbmUgcmV0ICAgICAgICAgcmV0dXJuCiNkZWZpbmUgcnNvcnQoYSkgICAgZ3JlYXRlcjxhPgojZGVmaW5lIG5sICAgICAgICAgIGlmKHFmPT10cikgcHIoIlxuIik7ZWxzZSBjb3V0PDwiXG4iOwojZGVmaW5lIGdjZChhLGIpICAgIF9fZ2NkKGEsYikKI2RlZmluZSBtb2QgICAgICAgICAxMDAwMDAwMDA3CiNkZWZpbmUgdGMgICAgICAgICAgaW50IHQ7aWYocWY9PWZsKSBzY2FuZigiJWQiLCZ0KTsgZWxzZSBjaW4+PnQ7d2hpKHQtLSkKI2RlZmluZSBtaW5vZihhKSAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGE+OjptaW4oKQojZGVmaW5lIG1heG9mKGEpICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8YT46Om1heCgpCiNkZWZpbmUgc2V0dmFsKGEsdikgbWVtc2V0KGEsdixzaXplb2YoYSkpOwoKI2RlZmluZSBhbGwoYykgICAgICBjLmJlZ2luKCksYy5lbmQoKQojZGVmaW5lIHN6KGMpICAgICAgIGMuc2l6ZSgpCiNkZWZpbmUgY2xyKGMpICAgICAgYy5jbGVhcigpCiNkZWZpbmUgZmQoYyxhKSAgICAgYy5maW5kKGEpCiNkZWZpbmUgYmcoYykgICAgICAgYy5iZWdpbigpCiNkZWZpbmUgZWQoYykgICAgICAgYy5lbmQoKQojZGVmaW5lIGlucyhjLGEpICAgIGMuaW5zZXJ0KGEpCiNkZWZpbmUgcmVtKGMsYSkgICAgYy5lcmFzZShhKQoKaW50IG1haW4oKQp7CiAgICB0YwogICAgewogICAgICAgIHJlZ2lzdGVyIGludCBuLGksaixrLGFbMjAxNl0sbGVuLHByZXZpYW5zPTAsdmFsMSx2YWwyOwogICAgICAgIHJlZ2lzdGVyIGludCBvcmlnbGVuLGxlbjEsbGVuMix0bXBhbnM7CiAgICAgICAgbGwgYW5zPTA7CiAgICAgICAgbWFwIDxpbnQsdmM8aW50Pj4gbTsKICAgICAgICB2YyA8aW50Pjo6aXRlIGl0OwogICAgICAgIHNjKCIlZCIsJm4pOwogICAgICAgIGZvcihpPTA7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgICAgIHNjKCIlZCIsJmFbaV0pOwogICAgICAgICAgICBtW2FbaV1dLnBiKGkpOwogICAgICAgIH0KICAgICAgICBmb3IoaT0wO2k8bjtpKyspIG1bYVtpXV0ucGIobik7CiAgICAgICAgZm9yKGk9MDtpPG4tMTtpKyspCiAgICAgICAgewogICAgICAgICAgICBzZXQgPGludD4gbWFyazsKICAgICAgICAgICAgc2V0IDxpbnQ+OjppdGUgaXQxLGl0MjsKICAgICAgICAgICAgbWFyay5pbnNlcnQobik7CiAgICAgICAgICAgIHRtcGFucz0obi1pKSoobi1pKzEpLzI7CiAgICAgICAgICAgIGZvcihqPWk7ajxuLTE7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpdD1sb3dlcl9ib3VuZChtW2Fbal1dLmJlZ2luKCksbVthW2pdXS5lbmQoKSxqKTsKICAgICAgICAgICAgICAgIGlmKGZkKG1hcmssKml0KSE9ZWQobWFyaykgYW5kICppdCE9bikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBhbnMrPXByZXZpYW5zOwogICAgICAgICAgICAgICAgICAgIGN0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZm9yKDsqaXQhPW47aXQrKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpdDI9bWFyay5sb3dlcl9ib3VuZCgqaXQpOwogICAgICAgICAgICAgICAgICAgIGlmKGl0Mj09YmcobWFyaykpIHZhbDE9ai0xOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGl0MT1pdDI7CiAgICAgICAgICAgICAgICAgICAgICAgIGl0MS0tOwogICAgICAgICAgICAgICAgICAgICAgICB2YWwxPSppdDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHZhbDI9Kml0MjsKICAgICAgICAgICAgICAgICAgICBsZW49dmFsMi12YWwxOwogICAgICAgICAgICAgICAgICAgIGxlbjE9bWF4KDAsdmFsMi0qaXQpOwogICAgICAgICAgICAgICAgICAgIGxlbjI9bWF4KDAsKml0LXZhbDEpOwogICAgICAgICAgICAgICAgICAgIHRtcGFucy09KChsZW4qKGxlbisxKS8yKS0obGVuMSoobGVuMSsxKS8yKS0obGVuMioobGVuMisxKS8yKSk7CiAgICAgICAgICAgICAgICAgICAgaW5zKG1hcmssKml0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHByZXZpYW5zPXRtcGFuczsKICAgICAgICAgICAgICAgIGFucys9dG1wYW5zOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHByKCIlbGxkXG4iLGFucyk7CiAgICB9CiAgICByZXQgMDsKfQovKgoxCjMKMSAyIDMKCjEKNQoxIDEgMiAyIDIKQW5zd2VyIC0tPiAxOAoKMQo0CjEgMiAyIDIKQW5zd2VyIC0tPiA2CgoyCjMKMSAyIDMKNAoxIDIgMSAyCgoxCjQKMSAyIDEgMgoKMQoxMAoyIDggNSAxIDEwIDUgOSA5IDMgNQpBbnN3ZXIgLS0+IDI5NAoKMQo3CjEgNCA2IDIgMSAyIDQKQW5zd2VyIC0tPiA1NQoqLwo=