#include <bits/stdc++.h>
using namespace std;
long long n, k, d1, d2;
bool isok(long long d1, long long d2) {
  long long x, y, z;
  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;
  cin >> t;
  while (t--) {
    cin >> n >> k >> d1 >> d2;
    n -= k;
    int flag = 0;
    flag = flag | isok(d1, d2) | isok(-d1, d2) | isok(d1, -d2) | isok(-d1, d2) |
           isok(-d1, -d2);
    if (!flag) {
      puts("no");
    } else
      puts("yes");
  }
}
