#include <iostream>
#include <map>
#include <cstdio>
#include <algorithm>
using namespace std;
//英语 看博友分析 抄博友程序 数学 巧妙
double ax[1008];
double ay[1008];
struct nod{
double x;
double y;
};
nod mid[1000008];//抄博友程序
bool cmp(nod a,nod b)
{
if(a.x==b.x)
{
return a.y<b.y;
}else
{
return a.x<b.x;
}
}
int main()
{
int T;
scanf("%d",&T);
//cin>>T;
for(int o=0;o<T;o++)
{
int n;
scanf("%d",&n);
//cin>>n;
//map<pair<double,double>,int> mp;//TLE
//mp.clear();
for(int i=0;i<n;i++)
{
scanf("%lf%lf",&ax[i],&ay[i]);
//cin>>x>>y;
}
int tal=0;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
mid[tal].x=(ax[i]+ax[j])/2.0;
mid[tal++].y=(ay[i]+ay[j])/2.0;
//mp[make_pair(x,y)]++;
}
}
sort(mid,mid+tal,cmp);
long long jg=0;
/*
for(map<pair<double,double> ,int>::iterator it=mp.begin();it!=mp.end();it++)
{
long long t=it->second;
if(t>1)
{
jg=jg+t*(t-1)/2;
}
}*/
long long k=1;
for(int i=0;i<tal;i++)
{
if(mid[i].x==mid[i+1].x && mid[i].y==mid[i+1].y)
{
k++;
}else
{
jg=jg+k*(k-1)/2;
k=1;
}
}
cout<<jg<<endl;
}
}