#include<bits/stdc++.h>
using namespace std;
float w=0;
double ans(float n,float m)
{
if(m>=2)
{
return n/(n+m)+(m/(n+m))*(m-1/(n+m-1))*ans(n,m-2);
}
else
{
return n/(n+m);
}
}
int main()
{
int t;
cin>>t;
while(t>0)
{
int n,m;
cin>>n>>m;
float a,b;
a=n;
b=m;
float k;
// float k=a/(a+b);
/*int e=k;
if(e==1)
k=1.000000;
*/
if(n==0||m==0)
k=1.0;
else
k= ans(a,b);
cout<<fixed<<setprecision(6)<<k<<endl;
t--;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKZmxvYXQgdz0wOwpkb3VibGUgYW5zKGZsb2F0IG4sZmxvYXQgbSkKewogICAgaWYobT49MikKICAgIHsKICAgICAgICByZXR1cm4gbi8obittKSsobS8obittKSkqKG0tMS8obittLTEpKSphbnMobixtLTIpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIHJldHVybiBuLyhuK20pOwogICAgfQp9CmludCBtYWluKCkKewogICAgaW50IHQ7CiAgICBjaW4+PnQ7CiAgICB3aGlsZSh0PjApCiAgICB7CiAgICAgaW50IG4sbTsKICAgICBjaW4+Pm4+Pm07CiAgICAgZmxvYXQgYSxiOwogICAgIGE9bjsKICAgICBiPW07CiAgICAgZmxvYXQgazsKICAgIC8vIGZsb2F0IGs9YS8oYStiKTsKICAgICAvKmludCBlPWs7CiAgICAgaWYoZT09MSkKICAgICBrPTEuMDAwMDAwOwogICAgICovCiAgICAgaWYobj09MHx8bT09MCkKICAgICBrPTEuMDsKICAgICBlbHNlCiAgICAgaz0gYW5zKGEsYik7CiAgICAgIGNvdXQ8PGZpeGVkPDxzZXRwcmVjaXNpb24oNik8PGs8PGVuZGw7CgoKCiAgICAgICAgdC0tOwogICAgfQp9