#include<bits/stdc++.h>
using namespace std;
const int MAXN=10000005;
struct node{
double x;
double y;
}a[5],b[5];
node aa,bb,cc;
int main()
{
int T;
cin>>T;
while(T--)
{
for(int i=1;i<=4;i++)
{
cin>>a[i].x>>a[i].y;
}
for(int i=1;i<=4;i++)
{
cin>>b[i].x>>b[i].y;
}
double minn=0x7fffffff;
for(int i=1;i<=4;i++)
{
for(int j=1;j<=4;j++)
{
if(minn>sqrt(pow((a[i].x-b[j].x),2)+pow((a[i].y-b[j].y),2)))
{
minn=sqrt(pow((a[i].x-b[j].x),2)+pow((a[i].y-b[j].y),2));
aa.x=a[i].x;
aa.y=a[i].y;
bb.x=b[j].x;
bb.y=b[j].y;
}
}
}
cc.x=(aa.x+bb.x)/2;
cc.y=(aa.y+bb.y)/2;
double k;
if(aa.y>=bb.y)
{
k=(aa.y-bb.y)/(aa.x-bb.x);
}
else
{
k=(bb.y-aa.y)/(bb.x-aa.x);
}
k=0-(1/k);
double b=k*cc.x-cc.y;
cout<<k<<" "<<-1<<" "<<0-b<<endl;
}
return 0;
}