#include<bits/stdc++.h>
using namespace std;
const int MAXN=4000+10;
long long T,n,a[MAXN],b[MAXN],c[MAXN],d[MAXN],ans;
unordered_map<long long,long long>mp;
inline bool id(const char ch) {
return ch>='0'&&ch<='9';
}
inline long long read(void) {
long long s=0,f=1;
char ch=getchar();
while(!id(ch)) {
if(ch=='-') f=-1;
ch=getchar();
}
while(id(ch)) s=(s<<1)+(s<<3)+(ch^48),ch=getchar();
return s*f;
}
inline void work() {
ans=0;
mp.clear();
n=read();
for(long long i=1;i<=n;++i) a[i]=read(),b[i]=read(),c[i]=read(),d[i]=read();
for(long long i=1;i<=n;++i) for(long long j=1;j<=n;++j) mp[a[i]+b[j]]++;
for(long long i=1;i<=n;++i) for(long long j=1;j<=n;++j) ans+=mp[-c[i]-d[j]];
printf("%d\n\n",ans);
}
int main() {
T=read();
while(T--) work();
return 0;
}