#include <bits/stdc++.h>
using namespace std;
long long int n, k;
bool check(vector<long long int> a) {
  sort(a.rbegin(), a.rend());
  long long int tmp = min(a[1], a[2]);
  if (tmp < 0) {
    for (int i = 0; i < (int)(a.size()); i++) a[i] -= tmp;
  }
  long long int ret = 0;
  for (int i = 0; i < (int)(3); i++) ret += a[i];
  tmp = k - ret;
  if (tmp < 0 || tmp % 3) return false;
  for (int i = 0; i < (int)(3); i++) a[i] += tmp / 3;
  tmp = max(a[0], max(a[1], a[2]));
  if (tmp > n / 3) return false;
  return true;
}
int main(void) {
  long long int t;
  cin >> t;
  while (t--) {
    long long int d1, d2;
    cin >> n >> k >> d1 >> d2;
    if (n % 3) {
      cout << "no" << endl;
      continue;
    }
    vector<long long int> a;
    int f = 0;
    a.push_back(0);
    a.push_back(a[0] + d1);
    a.push_back(a[1] + d2);
    if (check(a)) f = 1;
    a.clear();
    a.push_back(0);
    a.push_back(a[0] - d1);
    a.push_back(a[1] + d2);
    if (check(a)) f = 1;
    a.clear();
    a.push_back(0);
    a.push_back(a[0] + d1);
    a.push_back(a[1] - d2);
    if (check(a)) f = 1;
    a.clear();
    a.push_back(0);
    a.push_back(a[0] - d1);
    a.push_back(a[1] - d2);
    if (check(a)) f = 1;
    if (f)
      cout << "yes" << endl;
    else
      cout << "no" << endl;
  }
  return 0;
}
