#include <bits/stdc++.h>
using namespace std;

double c,m,p,v,ans;

void backtracking(double c,double m,double p,int k,double produs){
    ans+=k*produs*p;
    if(c!=0&&m!=0){
        double cc=c,mm=m,difc,difm;

        if((cc-v)>1e-6)
            cc-=v,difc=v;
        else
            cc=0,difc=c;
        backtracking(cc,m+difc/2,p+difc/2,k+1,produs*c);

        if((mm-v)>1e-6)
            mm-=v,difm=v;
        else
            mm=0,difm=m;
        backtracking(c+difm/2,mm,p+difm/2,k+1,produs*m);
    }
    if(c==0&&m!=0){
        double mm=m,dif;
        if((mm-v)>1e-6)
            mm-=v,dif=v;
        else
            mm=0,dif=0,p=1;
        backtracking(0,mm,p+dif,k+1,produs*m);
    }
    if(c!=0&&m==0){
        double cc=c,dif;
        if((cc-v)>1e-6)
            cc-=v,dif=v;
        else
            cc=0,dif=0,p=1;
        backtracking(cc,0,p+dif,k+1,produs*c);
    }
}

void solve(){
    ans=0;
    cin>>c>>m>>p>>v;
    backtracking(c,m,p,1,1);
    cout<<fixed<<setprecision(12)<<ans;
}

signed main(){
    int t=1;
    cin>>t;
    while(t--){
        solve();
        cout<<'\n';
    }
}
