#include <algorithm>
#include <iostream>
#include <numeric>
#include <cassert>
#include <vector>

typedef long long llong;
const int MAXT = 1e5 + 10;
const llong INF = 4e18;

llong rec(llong a, llong b, llong c, llong d)
{
    if (a > c || b > d)
    {
        return -INF;
    }

    if (a == c && b == d)
    {
        return 0;
    }

    if (c > d)
    {
        return rec(a, b, c - d, d) + 1;
    } else
    {
        return rec(a, b, c, d - c) + 1;
    }
}

int t;
void solve()
{
    llong max = 0;
    for (int i = 1 ; i <= t ; ++i)
    {
        llong a, b, c, d;
        std::cin >> a >> b >> c >> d;
        llong res = rec(a, b, c, d);
        max = std::max(max, res);
        if (res < 0) std::cout << -1 << '\n';
        else std::cout << res << '\n';
    } 

    std::cerr << max << '\n';
}

void input()
{
    std::cin >> t;
}

void fastIOI()
{
    std::ios_base :: sync_with_stdio(0);
    std::cout.tie(nullptr);
    std::cin.tie(nullptr);
}

int main()
{
    fastIOI();
    input();
    solve();

    return 0;
}