#include "bits/stdc++.h"
#define _overload3(_1,_2,_3,name,...) name
#define _rep(i,n) repi(i,0,n)
#define repi(i,a,b) for(int i=int(a),i##_len=(b);i<i##_len;++i)
#define MSVC_UNKO(x) x
#define rep(...) MSVC_UNKO(_overload3(__VA_ARGS__,repi,_rep,_rep)(__VA_ARGS__))
#define all(c) c.begin(),c.end()
#define write(x) cout<<(x)<<'\n'
using namespace std; typedef long long ll; template<class T>using vv = vector<vector<T>>;
template<class T>auto vvec(int n, int m, T v) { return vv<T>(n, vector<T>(m, v)); }
template<class T, class U>bool chmax(T& a, U&& b) { return a < b ? a = b, 1 : 0; }
template<class T, class U>bool chmin(T& a, U&& b) { return b < a ? a = b, 1 : 0; }
constexpr int INF = 1 << 29, MOD = int(1e9) + 7; constexpr ll LINF = 1LL << 60;
struct aaa { aaa() { cin.tie(0); ios::sync_with_stdio(0); cout << fixed << setprecision(10); }; }aaaa;

int main() {
    int T;
    cin >> T;
    vector<bool> ans(T);

    rep(i, T) {
        ll A, B, C, D;
        cin >> A >> B >> C >> D;

        if (A < B || D < B) {
            ans[i] = false;
            continue;
        }

        if (B == D) {
            if (A <= C) {
                ans[i] = true;
                continue;
            }
            else {
                // A > C
                // x <= C
                ll E = ((A - C) + (B - 1)) / B;


                if (0 <= A - E * B && A - E * B <= C) {
                    ans[i] = true;
                }
                else {
                    ans[i] = false;
                }

                continue;
            }
        }
        else {
            // D >= B

            if (A <= C || B <= C) {
                ans[i] = true;
                continue;
            }
            else {
                ll E = ((A - C) + (B - 1)) / B;
                ll F = A - E * B;

                if (F < 0) {
                    ans[i] = false;
                    continue;
                }

                ll G = ((C + 1 - F) + ((D - B) - 1)) / (D - B);

                if (F + G * (D - B) < B) {
                    ans[i] = false;
                }
                else {
                    ans[i] = true;
                }

                continue;
            }
        }
    }

    for (bool b : ans) {
        write(b ? "Yes" : "No");
    }
}