#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
long long n, m, d1, d2;
long long a[5];
inline bool jud() {
  if ((m - a[1] - a[2]) % 3 || (m - a[1] - a[2]) < 0) return 0;
  long long t = (m - a[1] - a[2]) / 3;
  a[1] += t;
  a[2] += t;
  a[3] += t;
  t = n / 3;
  long long tot = n - m;
  for (int i = 1; i <= 3; i++)
    if (a[i] > t)
      return 0;
    else
      tot -= t - a[i];
  if (tot != 0) return 0;
  return 1;
}
inline bool solve() {
  if (d1 < d2) swap(d1, d2);
  a[1] = d1;
  a[2] = d2;
  a[3] = 0;
  if (jud()) return 1;
  a[1] = d1;
  a[2] = d1 - d2;
  a[3] = 0;
  if (jud()) return 1;
  a[1] = d1 + d2;
  a[2] = d1;
  a[3] = 0;
  if (jud()) return 1;
  a[1] = d1 + d2;
  a[2] = d2;
  a[3] = 0;
  if (jud()) return 1;
  return 0;
}
int main() {
  int T = read();
  while (T--) {
    n = read();
    m = read();
    d1 = read();
    d2 = read();
    if (n % 3 || !solve())
      puts("no");
    else
      puts("yes");
  }
  return 0;
}
