#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,sse3,sse4,popcnt,abm,mmx")

#include <bits/stdc++.h>	
#include <stdio.h>    
 
using namespace std;
     
#define F first
#define S second
#define lb lower_bound          	
#define ub upper_bound
#define pb push_back
#define pf push_front    
#define ppb pop_back
#define mp make_pair
#define bpp __builtin_popcount                                                                                        
#define sqr(x) ((x) * (x))
#define al 0x3F3F3F3F
#define sz(x) x.size()
#define all(x) x.begin(), x.end()
#define in insert
#define ppf pop_front
#define endl '\n'
#define int long long
 
typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef pair <int, int> pii;
 
const int mod = (int)1e9 + 7;                                  
const int N = (int)2e5 + 123;
const ll inf = (ll)3e18 + 1;
                                       
const double pi = acos(-1.0);
const double eps = 1e-7;
const int dx[] = {0, 0, 1, 0, -1};   																																					
const int dy[] = {0, 1, 0, -1, 0};  

ll a, b, c, d;

inline void boost () {
	ios_base :: sync_with_stdio (NULL);
	cin.tie (NULL), cout.tie (NULL);
}

inline void Solve () {  
//	boost (); 
	bool ok = 0;
	cin >> a >> b >> c >> d;
	if (b > a || b > d || a % b > c) {
		cout << "No\n";
		return;
	}
	a %= b, d %= b;
	if (d == 0) ok = (a > c);
	else {
	   int cur = (c - a + d - 1) / d * d + a;
	   if (cur == c) cur += d;
		ok = (c < cur && cur < b);
	}
	if (ok) cout << "No\n";
	else cout << "Yes\n";
}
               
main () {                                       
//	freopen ("ormax.in", "r", stdin);    
//	freopen ("ormax.out", "w", stdout); 	         
	int tt = 1;
	cin >> tt;   
	while (tt --) {
		Solve ();
	}        
	return 0;      
}                                                  