#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<queue>
#include<map>
#include<math.h>
#include<iomanip>
#include<set>
#include<numeric>
#include<cstring>
#include<cstdio>
#include<functional>
#include<bitset>
#include<limits.h>
#include<cassert>
#include<iterator>
#include<complex>
#include<stack>
#include<sstream>
#include<iterator>
using namespace std;
typedef  long long int lint;
typedef pair<int, int> IP;
typedef pair<lint, lint> LLP;
typedef pair<char, char>CP;
#define rep(i, n) for (int i = 0; i < n; i++)
#define repr(i, n) for (int i = n; i >= 0; i--)
#define sort(v) sort((v).begin(), (v).end())
#define reverse(v) reverse((v).begin(), (v).end())
#define upper(v,hoge) upper_bound(v.begin(),v.end(),hoge)
#define lower(v,hoge) lower_bound(v.begin(),v.end(),hoge)
#define llower(v,hoge) *lower_bound(v.begin(), v.end(), hoge)
#define lupper(v,hoge) *upper_bound(v.begin(), v.end(), hoge)

double a(double x1, double y1, double x2, double y2) {
	double a = 0;
	if (y1 == y2) {
		a = 114514;
	}
	else {
		a = -(x1 - x2) / (y1 - y2);
	}
	return a;
}
double b(double x1, double y1, double x2, double y2) {
	double b = 0;
	if (y1 == y2) {
		b = 114514;
	}
	else {
		b = ((x1 - x2) * (x1 + x2) / (y1 - y2) + (y1 + y2)) / 2;
	}
	return b;
}

double cal_X(double a, double b, double c, double d, double e, double f) {
	double Y = (c * d - a * f) / (b * d - a * e);
	double X;
	if (a != 0) {
		X = (c - b * Y) / a;
	}
	else {
		X = (f - e * Y) / d;
	}
	return X;
}

double cal_Y(double a, double b, double c, double d, double e, double f) {
	double Y = (c * d - a * f) / (b * d - a * e);
	double X;
	if (a != 0) {
		X = (c - b * Y) / a;
	}
	else {
		X = (f - e * Y) / d;
	}
	return Y;
}

int main() {
	int N;
	cin >> N;
	rep(i, N) {
		double x1, y1, x2, y2, x3, y3;
		cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
		double a1 = a(x3, y3, x2, y2);
		double b1 = b(x3, y3, x2, y2);
		double a2 = a(x1, y1, x2, y2);
		double b2 = b(x1, y1, x2, y2);
		double a3 = a(x1, y1, x3, y3);
		double b3 = b(x1, y1, x3, y3);
		vector<double>V;
		if (a1 != 114514) {
			V.push_back(a1);
		}
		if (b1 != 114514) {
			V.push_back(b1);
		}
		if (a2 != 114514) {
			V.push_back(a2);
		}
		if (b2 != 114514) {
			V.push_back(b2);
		}
		if (a3 != 114514) {
			V.push_back(a3);
		}
		if (b3 != 114514) {
			V.push_back(b3);
		}
		double X = cal_X(V[0] * (-1), 1, V[1], V[2] * (-1), 1, V[3]);
		double Y = cal_Y(V[0] * (-1), 1, V[1], V[2] * (-1), 1, V[3]);
		double R = sqrt(pow(X - x1, 2) + pow(Y - y1, 2));
		cout <<fixed<<setprecision(3)<< X << ' ' << Y <<' '<< R << endl;
	}
}
