#include<bits/stdc++.h>
using namespace std;
#define int long long
bool flag;
int t,x,y,p,q,d,a,b,ans;
void exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
d=a;
x=1;
y=0;
return;
}
exgcd(b,a%b,x,y);
int tmp=x;
x=y;
y=tmp-a/b*y;
}
signed main()
{
freopen("oversleeping.in","r",stdin);
freopen("oversleepint.out","w",stdout);
cin>>t;
while(t--)
{
cin>>x>>y>>p>>q;
ans=0x7fffffffffffffff;
flag=0;
exgcd(2*(x+y),p+q,a,b);
for(int i=x;i<x+y;i++)
{
for(int j=p;j<p+q;j++)
{
if((j-i)%d!=0)
{
continue;
}
flag=1;
int k=(j-i)/d;
int tmp=a*k;
tmp=(tmp%((p+q)/d)+((p+q)/d))%((p+q)/d);
ans=min(ans,tmp*2*(x+y)+i);
}
}
if(flag==0)
{
cout<<"infinity";
}
else
{
cout<<ans;
}
cout<<'\n';
}
return 0;
}