#include <bits/stdc++.h>
using namespace std;
const int dx[] = {-1, 0, 0, 1};
const int dy[] = {0, -1, 1, 0};
int main() {
  int t;
  cin >> t;
  for (int i = 0, _n = (t); i < _n; i++) {
    long long n, k, d1, d2;
    cin >> n >> k;
    cin >> d1 >> d2;
    long long t1, t2, t3;
    t2 = k - d1 + d2;
    if (t2 >= 0 && t2 % 3 == 0) {
      t2 /= 3;
      t3 = t2 - d2;
      long long m = n - k - (d1 + d2 + d1);
      if (t3 >= 0 && m >= 0 && m % 3 == 0) {
        puts("yes");
        continue;
      }
    }
    t2 = k - d1 - d2;
    if (t2 >= 0 && t2 % 3 == 0) {
      long long m = n - k - (max(d1, d2) + abs(d1 - d2));
      if (m >= 0 && m % 3 == 0) {
        puts("yes");
        continue;
      }
    }
    t2 = k + d1 + d2;
    if (t2 >= 0 && t2 % 3 == 0) {
      t2 /= 3;
      long long m = n - k - (d1 + d2);
      t1 = t2 - d1;
      t3 = t2 - d2;
      if (t1 >= 0 && t3 >= 0 && m >= 0 && m % 3 == 0) {
        puts("yes");
        continue;
      }
    }
    t2 = k + d1 - d2;
    if (t2 >= 0 && t2 % 3 == 0) {
      t2 /= 3;
      long long m = n - k - (d1 + d2 + d2);
      t1 = t2 - d1;
      if (t1 >= 0 && m >= 0 && m % 3 == 0) {
        puts("yes");
        continue;
      }
    }
    puts("no");
  }
  return 0;
}
