#include <bits/stdc++.h>

#define all(x) (x).begin(), (x).end()
#define itn int
#define make_unique(x) sort((x).begin(), (x).end()); (x).erase(unique((x).begin(), (x).end()), (x).end())

using namespace std;

inline int nxt() {
	int x;
	scanf("%d", &x);
	return x;
}

void solve() {
	long long a, b, c, d;
	cin >> a >> b >> c >> d;
	if (a < b || b > d) {
		puts("No");
		return;
	}
	if (a > max(b, c)) {
		long long k = (a - max(b, c) + b - 1) / b;
		a -= k * b;
	}

	long long g = gcd(b, d);

	if (a <= c) {
		a += d;
	}

	if (c + 1 >= b) {
		if (a >= b) {
			puts("Yes");
		} else {
			puts("No");
		}
		return;
	}

	// [c + 1, b - 1]
	if ((c + 1) / g + 1 < (b - 1) / g) {
		puts("No");
	} else if ((c + 1) / g == (b - 1) / g) {
		if (a % g >= (c + 1) % g && a % g <= (b - 1) % g) {
			puts("No");
		} else {
			puts("Yes");
		}
	} else if ((c + 1) / g + 1 == (b - 1) / g) {
		if (a % g >= (c + 1) % g || a % g <= (b - 1) % g) {
			puts("No");
		} else {
			puts("Yes");
		}
	}
}

int main() {
	int t = nxt();
	while (t--) {
		solve();
	}

	return 0;
}
