#include<iostream>
#include<vector>
#include<iomanip>
#include<limits>
double func(double x, int a, int b, int c) {
double res = 0;
res = (res + a) * x;
res = (res + b) * x;
res += c;
return res;
}
double Func(double x, const std::vector<std::vector<int>>& coes) {
double res = std::numeric_limits<double>::min();
for (int i = 0; i < coes.size(); ++i)
res = res < func(x, coes[i][0], coes[i][1], coes[i][2]) ? func(x, coes[i][0], coes[i][1], coes[i][2]) : res;
return res;
}
int main() {
int T, n;
std::cin >> T;
std::vector<std::vector<int>> coes;
for (int i = 0; i < T; ++i) {
coes.clear();
std::cin >> n;
coes.assign(n, std::vector<int>(3));
for (int j = 0; j < n; ++j)
std::cin >> coes[j][0] >> coes[j][1] >> coes[j][2];
double left = 0, right = 1000;
while (right - left > 1e-9) {
double midl = left + (right - left) / 3, midr = right - (right - left) / 3;
if (Func(midl, coes) > Func(midr, coes))
left = midl;
else
right = midr;
}
std::cout << std::fixed << std::setprecision(4) << (left + right) / 2;
if(i < T-1)
std::cout << '\n';
}
return 0;
}