import java.io.*;
import java.util.*;
class CLATTK{
Scanner sc
= new Scanner
(System.
in); int T = sc.nextInt();
while(T-->0){
int H = sc.nextInt();
int W = sc.nextInt();
double out = calculate(H, W);
System.
out.
printf("%.7f%n",out
); }
}
static double calculate(int H, int W){
long sum = W*W*(H-1);
long a = W-1;
long b = W-(H-1);
long n = W-H;
if(n>0)
sum += 2*(n*a*b + n*(n+1)*(2*n+1)/6 - (a+b)*n*(n+1)/2);
return (double)sum/(W*W);
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwpjbGFzcyBDTEFUVEt7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKXRocm93cyBFeGNlcHRpb257CiAgICAgICAgU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IFQgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgd2hpbGUoVC0tPjApewogICAgICAgICAgICBpbnQgSCA9IHNjLm5leHRJbnQoKTsKICAgICAgICAgICAgaW50IFcgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgICAgIGRvdWJsZSBvdXQgPSBjYWxjdWxhdGUoSCwgVyk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCIlLjdmJW4iLG91dCk7CiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyBkb3VibGUgY2FsY3VsYXRlKGludCBILCBpbnQgVyl7CiAgICAgICAgbG9uZyBzdW0gPSBXKlcqKEgtMSk7CiAgICAgICAgbG9uZyBhID0gVy0xOwogICAgICAgIGxvbmcgYiA9IFctKEgtMSk7CiAgICAgICAgbG9uZyBuID0gVy1IOwogICAgICAgIGlmKG4+MCkKICAgICAgICAgICAgc3VtICs9IDIqKG4qYSpiICsgbioobisxKSooMipuKzEpLzYgLSAoYStiKSpuKihuKzEpLzIpOwogICAgICAgIHJldHVybiAoZG91YmxlKXN1bS8oVypXKTsKICAgIH0KfQo=