#include <cstdio>
#include <cmath>
// 无脑三分法
// 直接在固定一边的情况下三分就可以
//
// 比较恶心的就是要写很多运算=-=
struct
point { double x, y; };
double dis(point a, point b) {
return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
double p,q,r;
double find2(point a, point c, point d) {
point left, right;
point mid, midmid;
double t1,t2;
left = c;
right = d;
do {
mid.x = (left.x + right.x) / 2;
mid.y = (left.y + right.y) / 2;
midmid.x = (mid.x + right.x) / 2;
midmid.y = (mid.y + right.y) / 2;
t1 = dis(a, mid) / r + dis(mid, d) / q;
t2 = dis(a, midmid) / r + dis(midmid, d) / q;
if(t1 > t2)
left=mid;
else
right=midmid;
}
while(dis(left, right) >= 1e-5);
return t1;
}
double find(point a, point b, point c, point d) {
point left, right;
point mid, midmid;
double t1, t2;
left = a;
right = b;
do {
mid.x = (left.x + right.x) / 2;
mid.y = (left.y + right.y) / 2;
midmid.x = (mid.x + right.x) / 2;
midmid.y = (mid.y + right.y) / 2;
t1 = dis(a, mid) / p + find2(mid, c, d);
t2 = dis(a, midmid) / p + find2(midmid, c, d);
if(t1 > t2)
left = mid;
else
right = midmid;
} while(dis(right, left) >= 1e-5);
return t1;
}
int main() {
int t;
point a, b, c, d;
scanf("%d", &t);
while(t--) {
scanf("%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y,&c.x,&c.y,&d.x,&d.y,&p,&q,&r);
printf("%.2lf\n",find(a,b,c,d));
}
return 0;
}