#include <bits/stdc++.h>
using namespace std;
long long fun(long long x1, long long x2, long long x3, long long n) {
  if ((n + x1 + x2 + x3) % 3 == 0) {
    long long p = (n + x1 + x2 + x3) / 3;
    if (p >= max(x1, max(x2, x3))) {
      cout << "yes\n";
      return 1;
    }
  }
  return 0;
}
long long fp(long long d1, long long d2, long long n, long long k) {
  long long x1, x2, x3, p = 0;
  double X, Y, Z;
  x1 = X = (2 * d1 + k + d2) / 3.0;
  x2 = Y = (k - d1 + d2) / 3.0;
  x3 = Z = (k - d1 - 2 * d2) / 3.0;
  if (x1 >= 0 && x2 >= 0 && x3 >= 0) {
    if (X == x1 && Y == x2 && Z == x3) p = fun(x1, x2, x3, n - k);
  }
  return p;
}
int main() {
  long long i, j, k, l, m, n, t, p;
  cin >> t;
  while (t--) {
    p = 0;
    long long d1, d2, d3;
    cin >> n >> k >> d1 >> d2;
    if ((n == k && d1 != 0 && d2 != 0) || n % 3 != 0)
      cout << "no\n";
    else {
      p = fp(d1, d2, n, k);
      if (p == 1) continue;
      p = fp(d1, -d2, n, k);
      if (p == 1) continue;
      p = fp(-d1, d2, n, k);
      if (p == 1) continue;
      p = fp(-d1, -d2, n, k);
      if (p == 1) continue;
      cout << "no\n";
    }
  }
  return 0;
}
