#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef long double ld ;
const ld r = 1e8 ;
ld check( ld c, ld m, ld p, ld v, int len){
    ld ans = (p*len)/r ;
    
    if( c > 0){
        if( c > v){
            if( m > 0){
                ans += (c/r)*(check(c-v , m+v/2 , p+v/2 , v ,len+1)) ;
            }
            else{
                ans += (c/r)*(check(c-v , m , p+v , v , len+1)) ;
            }
        }
        else{
            if( m > 0){
                ans += (c/r)*(check(0 , m+c/2 , p+c/2 , v , len+1)) ;
            }
            else{
                ans += (c/r)*check(0  , 0 , p+c  , v , len+1) ;
            }
        }
    }
    if( m > 0){
        if(m > v){
            if( c > 0){
                ans += (m/r)*(check(c+v/2 , m-v , p+v/2 , v , len+1)) ;
            }
            else{
                ans += (m/r)*check(0 , m-v , p+v, v , len+1) ;
            }
        }
        else{
            if( c > 0){
                ans += (m/r)*(check(c+m/2 , 0 , p+m/2,  v , len+1)) ;
            }
            else{
                ans += (m/r)*check(0 , 0 , p+m, v , len+1) ;
            }
        }
    }
    
    return ans ;
    
}
        
    
    
int main()
{
   int t ; cin>>t ;
   while( t-- ){
       ld c, m, p, v, ans ; cin>>c>>m>>p>>v;
       c = c*r ; m = m*r ; p = p*r  ; v = v*r ;
       ans = check(c, m, p, v, 1) ;
       cout<<setprecision(12)<<ans<<endl ;
   }
       
}
