#include<iostream>
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define ull unsigned long long int
#define _imax INT32_MAX
#define _imin INT32_MIN
#define mm 1000000007
#define pb push_back
struct node{
    vector<int> v;
    int s=0;
    int e=0;
};
int gcd(int a,int b){
    if(b==0){
        return a;
    }
    return gcd(b,a%b);
}
bool cmp(pair<int,int> p1,pair<int,int> p2){
    return p1.second<p2.second;
}
void solve(){
    int n;
    cin>>n;
    int a[n];
    for(int &i:a){
        cin>>i;
    }
    unordered_map<int,vector<int>> m;
    for(int i=0;i<n;i++){
        m[a[i]].pb(i+1);
    }
    ll ans=0;
    for(auto i:m){
        if(i.second.size()>1){
            int len=i.second.size();
            ll suf[len];
            for(int j=len-1;j>=0;j--){
                if(j==len-1){
                    suf[j]=(n-i.second[j]+1)*1ll;
                }else{
                    suf[j]=suf[j+1]+(n-i.second[j]+1)*1ll;
                }
            }
            for(int j=0;j<len-1;j++){
                if(j==0){
                    ans+=(suf[j+1]*i.second[j])*1ll;
                }else{
                    ans+=(i.second[j]*suf[j+1])*1ll;
                }

            }
        }
    }
    cout<<ans<<'\n';

}
int main(){
    int t;
    cin>>t;
    while(t>0){
        solve();
        t--;
    }
    return 0;
}