/*
异或运算中 同0异1,要求得x = max(x1, x2),则应使得x1[pos] = 1&&x2[pos] = 0(pos为x1的最高位);
*/
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
const int Max = 1e5 + 10;
int a[Max];
int bit[50];//最高位在当前位置的数的个数
int f[Max];//对于数x的最高位的位置
/*
作用:寻找数x的最高位的位置pos,并累加bit[pos];
*/
void solve(int x,int i)
{
int pos = 30;
while(pos>=0)
{
if(x&(1<<pos))
{
bit[pos] ++;
f[i] = pos;
return;
}
pos--;
}
}
int main()
{
int T,n;
cin>>T;
while(T--)
{
memset(bit,0,sizeof(bit));
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
solve(a[i],i);
}
int sum = 0 ;
for(int i=0; i<n; i++)
{
int pos = f[i];
while(pos>=0)
{
if(!(a[i]&(1<<pos)))
sum += bit[pos];
pos--;
}
}
cout<<sum<<endl;
}
return 0;
}