#include <bits/stdc++.h>
int take() {
  int n;
  scanf("%d", &n);
  return n;
}
double ttake() {
  double n;
  scanf("%lf", &n);
  return n;
}
long long takes() {
  long long n;
  scanf("%lld", &n);
  return n;
}
int cas;
using namespace std;
bool approximatelyEqual(float a, float b, float epsilon) {
  return fabs(a - b) <= ((fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
bool essentiallyEqual(float a, float b, float epsilon) {
  return fabs(a - b) <= ((fabs(a) > fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
bool definitelyGreaterThan(float a, float b, float epsilon) {
  return (a - b) > ((fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
bool definitelyLessThan(float a, float b, float epsilon) {
  return (b - a) > ((fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
int main() {
  int tc = take();
  while (tc--) {
    long long aa = takes(), bb = takes(), cc = takes(), dd = takes();
    unsigned long long a = aa, b = bb, c = cc, d = dd;
    bool y = 1;
    for (int i = 1; i <= 1000005; i += 1) {
      long long f = (a / b);
      if (!f) {
        y = 0;
        break;
      }
      a -= (f * b);
      if (a <= c) a += d;
    }
    if (y)
      printf("Yes");
    else
      printf("No");
    printf("\n");
  }
  { return 0; };
}
