#include <bits/stdc++.h>
const int inf = 0xfffffff;
const long long INF = 1ll << 61;
using namespace std;
long long n, k, x, y, z;
bool cal(long long d1, long long d2) {
  if (k - 2 * d2 - d1 < 0) return false;
  if ((k - 2 * d2 - d1) % 3) return false;
  z = (k - 2 * d2 - d1) / 3;
  y = d2 + z;
  x = d1 + y;
  if (x < 0 || y < 0) return false;
  long long l = max(max(x, y), z), r = max(max(x, y), z) + n;
  while (l <= r) {
    long long mid = (l + r) >> 1;
    long long tmp = (mid - x) + (mid - y) + (mid - z);
    if (tmp == n) return true;
    if (tmp < n)
      l = mid + 1;
    else
      r = mid - 1;
  }
  return false;
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    long long d1, d2;
    cin >> n >> k >> d1 >> d2;
    n -= k;
    bool flag = false;
    flag |= cal(d1, d2);
    flag |= cal(-d1, d2);
    flag |= cal(d1, -d2);
    flag |= cal(-d1, -d2);
    flag ? puts("yes") : puts("no");
  }
  return 0;
}
