// iostream is too mainstream
#include <cstdio>
// bitch please
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <list>
#include <cmath>
#include <iomanip>
#define dibs reserve
#define OVER9000 1234567890
#define ALL_THE(CAKE,LIE) for(auto LIE =CAKE.begin(); LIE != CAKE.end(); LIE++)
#define tisic 47
#define soclose 1e-8
#define chocolate win
// so much chocolate
#define patkan 9
#define ff first
#define ss second
#define abs(x) ((x < 0)?-(x):x)
#define uint unsigned int
#define dbl long double
using namespace std;
// mylittledoge
struct pt {
long long x,y;
bool operator<(const pt &A) const {
if(x != A.x) return x < A.x;
return y < A.y;}
};
int vs(pt A, pt B, pt O) {
return (A.x-O.x)*(B.y-O.y)-(A.y-O.y)*(B.x-O.x);}
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
int T;
cin >> T;
for(int t =0; t < T; t++) {
int N;
cin >> N;
vector<pt> P0(N);
for(int i =0; i < N; i++) cin >> P0[i].x >> P0[i].y;
sort(P0.begin(),P0.end());
vector<int> H[2];
for(int i =0; i < 2; i++) H[i].push_back(0);
for(int i =1; i < N; i++) {
if(vs(P0[N-1],P0[i],P0[0]) >= 0) {
while(H[0].size() > 1 && vs(P0[i],P0[*H[0].rbegin()],P0[H[0][H[0].size()-2]]) <= 0)
H[0].pop_back();
H[0].push_back(i);}
if(vs(P0[N-1],P0[i],P0[0]) <= 0) {
while(H[1].size() > 1 && vs(P0[i],P0[*H[1].rbegin()],P0[H[1][H[1].size()-2]]) >= 0)
H[1].pop_back();
H[1].push_back(i);}
}
vector<pt> P;
for(int i =0; i < H[0].size(); i++) P.push_back(P0[H[0][i]]);
for(int i =H[1].size()-2; i > 0; i--) P.push_back(P0[H[1][i]]);
N =P.size();
int ans =0;
for(int i =0; i < N; i++) {
int a =i, b =(i+1)%N;
for(int j =i+1; j < N; j++) {
while((a+1)%N != j && abs(vs(P[(a+1)%N],P[j],P[i])) > abs(vs(P[a],P[j],P[i])))
a =(a+1)%N;
while((b+1)%N != i && abs(vs(P[(b+1)%N],P[j],P[i])) > abs(vs(P[b],P[j],P[i])))
b =(b+1)%N;
ans =max(ans,abs(vs(P[a],P[j],P[i]))+abs(vs(P[b],P[j],P[i])));
if(b == j) b =(b+1)%N;}
}
cout << ans/2 << ((ans%2 != 0)?".5":"") << "\n";}
return 0;}
// look at my code
// my code is amazing
Ly8gaW9zdHJlYW0gaXMgdG9vIG1haW5zdHJlYW0KI2luY2x1ZGUgPGNzdGRpbz4KLy8gYml0Y2ggcGxlYXNlCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8aW9tYW5pcD4KI2RlZmluZSBkaWJzIHJlc2VydmUKI2RlZmluZSBPVkVSOTAwMCAxMjM0NTY3ODkwCiNkZWZpbmUgQUxMX1RIRShDQUtFLExJRSkgZm9yKGF1dG8gTElFID1DQUtFLmJlZ2luKCk7IExJRSAhPSBDQUtFLmVuZCgpOyBMSUUrKykKI2RlZmluZSB0aXNpYyA0NwojZGVmaW5lIHNvY2xvc2UgMWUtOAojZGVmaW5lIGNob2NvbGF0ZSB3aW4KLy8gc28gbXVjaCBjaG9jb2xhdGUKI2RlZmluZSBwYXRrYW4gOQojZGVmaW5lIGZmIGZpcnN0CiNkZWZpbmUgc3Mgc2Vjb25kCiNkZWZpbmUgYWJzKHgpICgoeCA8IDApPy0oeCk6eCkKI2RlZmluZSB1aW50IHVuc2lnbmVkIGludAojZGVmaW5lIGRibCBsb25nIGRvdWJsZQp1c2luZyBuYW1lc3BhY2Ugc3RkOwovLyBteWxpdHRsZWRvZ2UKCnN0cnVjdCBwdCB7Cglsb25nIGxvbmcgeCx5OwoJCglib29sIG9wZXJhdG9yPChjb25zdCBwdCAmQSkgY29uc3QgewoJCWlmKHggIT0gQS54KSByZXR1cm4geCA8IEEueDsKCQlyZXR1cm4geSA8IEEueTt9Cgl9OwoJCmludCB2cyhwdCBBLCBwdCBCLCBwdCBPKSB7CglyZXR1cm4gKEEueC1PLngpKihCLnktTy55KS0oQS55LU8ueSkqKEIueC1PLngpO30KCmludCBtYWluKCkgewoJY2luLnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoMCk7CglpbnQgVDsKCWNpbiA+PiBUOwoJZm9yKGludCB0ID0wOyB0IDwgVDsgdCsrKSB7CgkJaW50IE47CgkJY2luID4+IE47CgkJdmVjdG9yPHB0PiBQMChOKTsKCQlmb3IoaW50IGkgPTA7IGkgPCBOOyBpKyspIGNpbiA+PiBQMFtpXS54ID4+IFAwW2ldLnk7CgkJc29ydChQMC5iZWdpbigpLFAwLmVuZCgpKTsKCQl2ZWN0b3I8aW50PiBIWzJdOwoJCWZvcihpbnQgaSA9MDsgaSA8IDI7IGkrKykgSFtpXS5wdXNoX2JhY2soMCk7CgkJZm9yKGludCBpID0xOyBpIDwgTjsgaSsrKSB7CgkJCWlmKHZzKFAwW04tMV0sUDBbaV0sUDBbMF0pID49IDApIHsKCQkJCXdoaWxlKEhbMF0uc2l6ZSgpID4gMSAmJiB2cyhQMFtpXSxQMFsqSFswXS5yYmVnaW4oKV0sUDBbSFswXVtIWzBdLnNpemUoKS0yXV0pIDw9IDApIAoJCQkJCUhbMF0ucG9wX2JhY2soKTsKCQkJCUhbMF0ucHVzaF9iYWNrKGkpO30KCQkJaWYodnMoUDBbTi0xXSxQMFtpXSxQMFswXSkgPD0gMCkgewoJCQkJd2hpbGUoSFsxXS5zaXplKCkgPiAxICYmIHZzKFAwW2ldLFAwWypIWzFdLnJiZWdpbigpXSxQMFtIWzFdW0hbMV0uc2l6ZSgpLTJdXSkgPj0gMCkgCgkJCQkJSFsxXS5wb3BfYmFjaygpOwoJCQkJSFsxXS5wdXNoX2JhY2soaSk7fQoJCQl9CgkJdmVjdG9yPHB0PiBQOwoJCWZvcihpbnQgaSA9MDsgaSA8IEhbMF0uc2l6ZSgpOyBpKyspIFAucHVzaF9iYWNrKFAwW0hbMF1baV1dKTsKCQlmb3IoaW50IGkgPUhbMV0uc2l6ZSgpLTI7IGkgPiAwOyBpLS0pIFAucHVzaF9iYWNrKFAwW0hbMV1baV1dKTsKCQlOID1QLnNpemUoKTsKCgkJaW50IGFucyA9MDsKCQlmb3IoaW50IGkgPTA7IGkgPCBOOyBpKyspIHsKCQkJaW50IGEgPWksIGIgPShpKzEpJU47CgkJCWZvcihpbnQgaiA9aSsxOyBqIDwgTjsgaisrKSB7CgkJCQl3aGlsZSgoYSsxKSVOICE9IGogJiYgYWJzKHZzKFBbKGErMSklTl0sUFtqXSxQW2ldKSkgPiBhYnModnMoUFthXSxQW2pdLFBbaV0pKSkKCQkJCQlhID0oYSsxKSVOOwoJCQkJd2hpbGUoKGIrMSklTiAhPSBpICYmIGFicyh2cyhQWyhiKzEpJU5dLFBbal0sUFtpXSkpID4gYWJzKHZzKFBbYl0sUFtqXSxQW2ldKSkpCgkJCQkJYiA9KGIrMSklTjsKCQkJCWFucyA9bWF4KGFucyxhYnModnMoUFthXSxQW2pdLFBbaV0pKSthYnModnMoUFtiXSxQW2pdLFBbaV0pKSk7CgkJCQlpZihiID09IGopIGIgPShiKzEpJU47fQoJCQl9CgkJCQoJCWNvdXQgPDwgYW5zLzIgPDwgKChhbnMlMiAhPSAwKT8iLjUiOiIiKSA8PCAiXG4iO30KCXJldHVybiAwO30KCi8vIGxvb2sgYXQgbXkgY29kZQovLyBteSBjb2RlIGlzIGFtYXppbmc=