#include <bits/stdc++.h>
using namespace std;
long long x, y, z, d1, d2, k, t, n, no;
bool posv() { return (x >= 0 && y >= 0 && z >= 0); }
void check() {
  long long p = k;
  long long arr[3];
  arr[0] = x, arr[1] = y, arr[2] = z;
  long long mx = *max_element(arr, arr + 3);
  for (int i = 0; i < 3; i++) {
    p += mx - arr[i];
  }
  if (p <= n && (n - p) % 3 == 0) no = 0;
}
int main() {
  cin >> t;
  while (t--) {
    no = 1;
    cin >> n >> k >> d1 >> d2;
    y = (k - d1 + d2) / 3;
    x = y + d1;
    z = k - x - y;
    if (x >= y && y >= z && (k - d1 + d2) % 3 == 0 && posv()) check();
    y = (k + d1 + d2) / 3;
    x = y - d1;
    z = k - x - y;
    if (y >= x && y >= z && (k + d1 + d2) % 3 == 0 && posv()) check();
    y = (k - d1 - d2) / 3;
    x = y + d1;
    z = k - y - x;
    if (x >= y && z >= y && (k - d1 - d2) % 3 == 0 && posv()) check();
    y = (k + d1 - d2) / 3;
    x = y - d1;
    z = k - x - y;
    if (y >= x && z >= y && (k + d1 - d2) % 3 == 0 && posv()) check();
    if (no)
      cout << "no\n";
    else
      cout << "yes\n";
  }
  return 0;
}
