#include<bits/stdc++.h>
#define ll long long
#define nl '\n'
#define MOD 1000000000000000007
#define fori(i,n) for(ll i=0;i < n;i++)
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template<typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
using namespace __gnu_pbds;
#define ordered_multiset tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
/*ll Mod(ll base, ll exp, ll MOD){
if(exp == 0) return 1;
ll res = Mod(base,exp/2,MOD);
if(exp % 2)
return (((res * res) % MOD)*base) % MOD;
else
return (res*res) % MOD;
}
ll gcd(ll x,ll y){
ll b = min(x,y);
ll a = max(x,y);
while(b != 0){
ll temp = b;
b = a % b;
a = temp;
}
return a;
}
ll div(vector<ll> &x){
for(ll i=1;i <= 100000;i++){
for(ll j=i;j <= 100000;j+=i){
x[j++];
}
}
}*/
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while(t--){
ll n;
double mx=0;
cin >> n;
vector<double> x(n,0);
for(ll i=0;i < n;i++){
cin >> x[i];
}
sort(x.begin(),x.end(),greater<>());
for(ll i=1;i < n;i++){
x[i] = x[i-1]+x[i];
}
for(ll i=0;i < n-1;i++){
mx = max((x[i]/(i+1))
+((x[n-1]-x[i])/(n-i-1)),mx);
}
cout << fixed << setprecision(6) << mx << nl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBubCAnXG4nCiNkZWZpbmUgTU9EIDEwMDAwMDAwMDAwMDAwMDAwMDcKI2RlZmluZSBmb3JpKGksbikgZm9yKGxsIGk9MDtpIDwgbjtpKyspCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp1c2luZyBvcmRlcmVkX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiNkZWZpbmUgb3JkZXJlZF9tdWx0aXNldCB0cmVlPGludCwgbnVsbF90eXBlLCBsZXNzX2VxdWFsPGludD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+CgovKmxsIE1vZChsbCBiYXNlLCBsbCBleHAsIGxsIE1PRCl7CiAgICBpZihleHAgPT0gMCkgcmV0dXJuIDE7CiAgICBsbCByZXMgPSBNb2QoYmFzZSxleHAvMixNT0QpOwogICAgaWYoZXhwICUgMikgCiAgICAgIHJldHVybiAoKChyZXMgKiByZXMpICUgTU9EKSpiYXNlKSAlIE1PRDsKICAgIGVsc2UKICAgICAgcmV0dXJuIChyZXMqcmVzKSAlIE1PRDsKfQoKbGwgZ2NkKGxsIHgsbGwgeSl7CiAgbGwgYiA9IG1pbih4LHkpOwogIGxsIGEgPSBtYXgoeCx5KTsKICB3aGlsZShiICE9IDApewogICAgbGwgdGVtcCA9IGI7CiAgICBiID0gYSAlIGI7CiAgICBhID0gdGVtcDsKICB9CiAgcmV0dXJuIGE7Cn0KCmxsIGRpdih2ZWN0b3I8bGw+ICZ4KXsKICBmb3IobGwgaT0xO2kgPD0gMTAwMDAwO2krKyl7CiAgICBmb3IobGwgaj1pO2ogPD0gMTAwMDAwO2orPWkpewogICAgICB4W2orK107CiAgICB9CiAgfQp9Ki8KCmludCBtYWluKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlKHQtLSl7CiAgICAgIGxsIG47CiAgICAgIGRvdWJsZSBteD0wOwogICAgICBjaW4gPj4gbjsKICAgICAgdmVjdG9yPGRvdWJsZT4geChuLDApOwogICAgICBmb3IobGwgaT0wO2kgPCBuO2krKyl7CiAgICAgICAgY2luID4+IHhbaV07CiAgICAgIH0KICAgICAgc29ydCh4LmJlZ2luKCkseC5lbmQoKSxncmVhdGVyPD4oKSk7CiAgICAgIGZvcihsbCBpPTE7aSA8IG47aSsrKXsKICAgICAgICB4W2ldID0geFtpLTFdK3hbaV07CiAgICAgIH0KICAgICAgZm9yKGxsIGk9MDtpIDwgbi0xO2krKyl7CiAgICAgICAgIG14ID0gbWF4KCh4W2ldLyhpKzEpKQogICAgICAgICAgICAgICAgICsoKHhbbi0xXS14W2ldKS8obi1pLTEpKSxteCk7CiAgICAgIH0KICAgICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNikgPDwgbXggPDwgbmw7CiAgICB9Cn0=