/***--_saelcc03_--***/
#include<bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#include "debug.cpp"
#else
#define dbg(...)
#endif
#define fori(i,n) for(int i=0;i<(int)n;i++)
#define fore(i,n) for(int i=1;i<=(int)n;i++)
#define fora(i,n) for(int i=(int)n-1;i>=0;i--)
#define foro(i,a,b) for(int i=a;i<(int)b;i++)
#define int long long
#define inf 1e9
#define INF 1e18
#define pii pair<int,int>
#define piii tuple<int,int,int>
#define vi vector<int>
#define vii vector<pii>
#define viii vector<piii>
#define vvi vector<vi>
#define vvii vector<vii>
#define vviii vector<viii>
#define vvvi vector<vvi>
#define vb vector<bool>
#define vs vector<string>
#define si set<int>
#define mpii map<int,int>
#define pb push_back
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(), v.rend()
#define sz(x) (int)x.size()
#define yesi cout<<"YES"<<'\n'
#define nosi cout<<"NO"<<'\n'
#define endl '\n'
#define approx(a) fixed << setprecision(a)
#define ff first
#define ss second
#define fast read(n); vi v(n); read(v)
// reading your mind
template <class T> void read(vector<T> &v);
template <class F, class S> void read(pair<F, S> &p);
template <class T> void read(T &x) {cin >> x;}
template <class T> void read(vector<T> &v) {for(auto& x : v) read(x);}
template <class R, class... T> void read(R& r, T&... t){read(r); read(t...);};
template <class F, class S> void read(pair<F, S> &p) {read(p.ff, p.ss);}
// puking your feelings
template <class T> void ps(vector<T> &v);
template <class F, class S> void pr(const pair<F, S> &x);
template <class T> void pr(const T &x) {cout << x;}
void ps() {pr("\n");}
template <class R, class... T> void pr(const R& r, const T&... t) {pr(r); pr(t...);}
template <class F, class S> void pr(const pair<F, S> &x) {pr("{", x.ff, ", ", x.ss, "}\n");}
template <class T> void ps(vector<T> &v) {for(auto& x : v) pr(x, ' '); ps();}
template <class T> void ps(set<T> &v) {for(auto& x : v) pr(x, ' '); ps();}
template <class T> void ps(const T &x) {pr(x); ps();}
template <class R, class... T> void ps(const R& r, const T &...t) {pr(r, ' '); ps(t...);}
int tc=1,n,q,timer;
void solve(int caso){
fast;
sort(all(v));
int ans = 0, mx = *max_element(all(v));
for(int j = n - 1; j >= 1; --j){
int c = v[j];
int k = 0;
for(int i = j-1; i >=0; --i){
int a = v[i];
int threshold = max(c - a, mx - c - a);
// move k to first position where v[k] > threshold
while(k < j && v[k] <= threshold) k++;
// we want k in [i+1, j)
int id = max(k, i + 1);
ans += (j - id);
}
}
ps(ans);
}
int32_t main(){
ios::sync_with_stdio(false); cin.tie(0);
read(tc);
fore(caso, tc){
solve(caso);
}
}
LyoqKi0tX3NhZWxjYzAzXy0tKioqLwoKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNpZmRlZiBMT0NBTAojaW5jbHVkZSAiZGVidWcuY3BwIgojZWxzZQojZGVmaW5lIGRiZyguLi4pCiNlbmRpZgoKI2RlZmluZSBmb3JpKGksbikgZm9yKGludCBpPTA7aTwoaW50KW47aSsrKQojZGVmaW5lIGZvcmUoaSxuKSBmb3IoaW50IGk9MTtpPD0oaW50KW47aSsrKQojZGVmaW5lIGZvcmEoaSxuKSBmb3IoaW50IGk9KGludCluLTE7aT49MDtpLS0pCiNkZWZpbmUgZm9ybyhpLGEsYikgZm9yKGludCBpPWE7aTwoaW50KWI7aSsrKQojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBpbmYgMWU5CiNkZWZpbmUgSU5GIDFlMTgKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBpaWkgdHVwbGU8aW50LGludCxpbnQ+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2aWkgdmVjdG9yPHBpaT4KI2RlZmluZSB2aWlpIHZlY3RvcjxwaWlpPgojZGVmaW5lIHZ2aSB2ZWN0b3I8dmk+CiNkZWZpbmUgdnZpaSB2ZWN0b3I8dmlpPgojZGVmaW5lIHZ2aWlpIHZlY3Rvcjx2aWlpPgojZGVmaW5lIHZ2dmkgdmVjdG9yPHZ2aT4KI2RlZmluZSB2YiB2ZWN0b3I8Ym9vbD4KI2RlZmluZSB2cyB2ZWN0b3I8c3RyaW5nPgojZGVmaW5lIHNpIHNldDxpbnQ+CiNkZWZpbmUgbXBpaSBtYXA8aW50LGludD4KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSByYWxsKHYpIHYucmJlZ2luKCksIHYucmVuZCgpCiNkZWZpbmUgc3ooeCkgKGludCl4LnNpemUoKQojZGVmaW5lIHllc2kgY291dDw8IllFUyI8PCdcbicKI2RlZmluZSBub3NpIGNvdXQ8PCJOTyI8PCdcbicKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBhcHByb3goYSkgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKGEpCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBmYXN0IHJlYWQobik7IHZpIHYobik7IHJlYWQodikKLy8gcmVhZGluZyB5b3VyIG1pbmQKdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgcmVhZCh2ZWN0b3I8VD4gJnYpOwp0ZW1wbGF0ZSA8Y2xhc3MgRiwgY2xhc3MgUz4gdm9pZCByZWFkKHBhaXI8RiwgUz4gJnApOwp0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCByZWFkKFQgJngpIHtjaW4gPj4geDt9CnRlbXBsYXRlIDxjbGFzcyBUPiB2b2lkIHJlYWQodmVjdG9yPFQ+ICZ2KSB7Zm9yKGF1dG8mIHggOiB2KSByZWFkKHgpO30KdGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzLi4uIFQ+IHZvaWQgcmVhZChSJiByLCBUJi4uLiB0KXtyZWFkKHIpOyByZWFkKHQuLi4pO307CnRlbXBsYXRlIDxjbGFzcyBGLCBjbGFzcyBTPiB2b2lkIHJlYWQocGFpcjxGLCBTPiAmcCkge3JlYWQocC5mZiwgcC5zcyk7fQovLyBwdWtpbmcgeW91ciBmZWVsaW5ncwp0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBwcyh2ZWN0b3I8VD4gJnYpOwp0ZW1wbGF0ZSA8Y2xhc3MgRiwgY2xhc3MgUz4gdm9pZCBwcihjb25zdCBwYWlyPEYsIFM+ICZ4KTsKdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgcHIoY29uc3QgVCAmeCkge2NvdXQgPDwgeDt9CnZvaWQgcHMoKSB7cHIoIlxuIik7fQp0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MuLi4gVD4gdm9pZCBwcihjb25zdCBSJiByLCBjb25zdCBUJi4uLiB0KSB7cHIocik7IHByKHQuLi4pO30KdGVtcGxhdGUgPGNsYXNzIEYsIGNsYXNzIFM+IHZvaWQgcHIoY29uc3QgcGFpcjxGLCBTPiAmeCkge3ByKCJ7IiwgeC5mZiwgIiwgIiwgeC5zcywgIn1cbiIpO30KdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgcHModmVjdG9yPFQ+ICZ2KSB7Zm9yKGF1dG8mIHggOiB2KSBwcih4LCAnICcpOyBwcygpO30KdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgcHMoc2V0PFQ+ICZ2KSB7Zm9yKGF1dG8mIHggOiB2KSBwcih4LCAnICcpOyBwcygpO30KdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgcHMoY29uc3QgVCAmeCkge3ByKHgpOyBwcygpO30KdGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzLi4uIFQ+IHZvaWQgcHMoY29uc3QgUiYgciwgIGNvbnN0IFQgJi4uLnQpIHtwcihyLCAnICcpOyBwcyh0Li4uKTt9CgppbnQgdGM9MSxuLHEsdGltZXI7Cgp2b2lkIHNvbHZlKGludCBjYXNvKXsKICAgIGZhc3Q7CiAgICBzb3J0KGFsbCh2KSk7CiAgICBpbnQgYW5zID0gMCwgbXggPSAqbWF4X2VsZW1lbnQoYWxsKHYpKTsKCiAgICBmb3IoaW50IGogPSBuIC0gMTsgaiA+PSAxOyAtLWopewogICAgICAgIGludCBjID0gdltqXTsKICAgICAgICBpbnQgayA9IDA7CiAgICAgICAgZm9yKGludCBpID0gai0xOyBpID49MDsgLS1pKXsKICAgICAgICAgICAgaW50IGEgPSB2W2ldOwogICAgICAgICAgICBpbnQgdGhyZXNob2xkID0gbWF4KGMgLSBhLCBteCAtIGMgLSBhKTsKCiAgICAgICAgICAgIC8vIG1vdmUgayB0byBmaXJzdCBwb3NpdGlvbiB3aGVyZSB2W2tdID4gdGhyZXNob2xkCiAgICAgICAgICAgIHdoaWxlKGsgPCBqICYmIHZba10gPD0gdGhyZXNob2xkKSBrKys7CgogICAgICAgICAgICAvLyB3ZSB3YW50IGsgaW4gW2krMSwgaikKICAgICAgICAgICAgaW50IGlkID0gbWF4KGssIGkgKyAxKTsKICAgICAgICAgICAgYW5zICs9IChqIC0gaWQpOwogICAgICAgIH0KICAgIH0KICAgIHBzKGFucyk7Cn0KaW50MzJfdCBtYWluKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoMCk7CiAgICByZWFkKHRjKTsKICAgIGZvcmUoY2FzbywgdGMpewogICAgICAgIHNvbHZlKGNhc28pOwogICAgfQp9Cgo=