#include using std::cin; using std::cout; using std::endl; using std::set; using std::map; using std::min; using std::max; using std::vector; using std::deque; using std::queue; using std::min; using std::max; using std::swap; using std::string; using std::sort; using std::unique; typedef long long ll; typedef double db; const int MOD = 998244353; const int N = 1000005; struct Pir { ll x,y; }; ll get_gcd(ll x,ll y) {return (y==0) ? x : get_gcd(y,x%y);} ll power(const ll & x,const ll & mi) { ll s1=1LL,s2=x,m=mi; while (m) { if (m&1) s1=s1*s2%MOD; s2=s2*s2%MOD; m>>=1; } return s1; } inline ll get_inv(ll x) { return power(x,MOD - 2); } void solve() { int n; db a,b; cin>>n; db mx=0; for (int i=1;i<=n;++i) { cin>>a>>b; mx=max(mx,(1.0-b)/(a+1-b)); } printf("%.5f\n",mx); return; } int main() { int T=1; cin>>T; while (T--) solve(); return 0; }