#include <bits/stdc++.h>
#define st first
#define nd second
#define MP make_pair
#define int long long
#define f(i,a,b) for(int i=a;i<=b;i++)
#define allx(a) a.begin(),a.end()
#define ally(a) a.rbegin(),a.rend()
#define add_y_ void add(int x,int y){G[x].push_back(y);}
#define add_y_d void add(int x,int y,int cost){G[x].push_back(MP(y,cost));}
#define add_w_ void add(int x,int y,int cost){G[x].push_back(y);G[y].push_back(x);}
#define add_w_d void add(int x,int y,int cost){G[x].push_back(MP(y,cost));G[y].push_back(MP(x,cost));}
using namespace std;
typedef long long ll;
const int N=10000005,X=100,dx[4]={0,0,-1,1};
const ll INF=1000000000000000000,mod=1000000007;
void read(int &a){
char x;
int cnt=1,ans=0;
while(1){
x=getchar();
if(x==' ' or x=='\n')break;
if(x=='-')cnt=-1;
else ans*=10,ans+=x-'0';
}
a=cnt*ans;
}
void write(int a,char x){
string s;
while(a!=0)s+=a%10+'0',a/=10;
reverse(s.begin(),s.end());
for(int i=0;i<s.size();i++)
putchar(s[i]);
cout<<x;
}
int gcd(ll a,ll b){
if(min(a,b)==0)return max(a,b);
if(a>b)return gcd(a%b,b);
else return gcd(a,b%a);
}
int lcm(ll a,ll b){return a/gcd(a,b)*b;}
bool cmp2(pair<int,int> a,pair<int,int> b){return a.st+a.nd>b.st+b.nd;}
double dis(double sx,double sy,double tx,double ty){
return sqrt((tx-sx)*(tx-sx)+(ty-sy)*(ty-sy));
}
double S(double a,double b,double c){
double s=(a+b+c)/2.0;
return sqrt(s*(s-a)*(s-b)*(s-c));
}
int T,n;
pair<double,double> a[N];
double mn=1000000000.0;
void solve(){
mn=1000000000.0;
bool flag=0;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i].st>>a[i].nd;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){
double x=dis(a[i].st,a[i].nd,a[j].st,a[j].nd);
double y=dis(a[i].st,a[i].nd,a[k].st,a[k].nd);
double z=dis(a[j].st,a[j].nd,a[k].st,a[k].nd);
double s=S(x,y,z);
if(s!=0.0){
mn=min(mn,s);
flag=1;
}
}
}
}
if(flag)printf("%.6f\n",mn);
else printf("%d\n",-1);
}
signed main(){
cin>>T;
while(T--)solve();
return 0;
}