#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 50;
const long long LINF = 0x3f3f3f3f3f3f3f3f;
int n;
long long a[MAXN], b[MAXN];
long long sa[MAXN], sb[MAXN];
void work() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%lld", a + i), sa[i] = a[i];
  for (int i = 1; i <= n; i++) scanf("%lld", b + i), sb[i] = b[i];
  long long x = 0, now = 0;
  for (int i = 2; i <= n; i++) now += b[i - 1] - a[i], x = max(x, now);
  x = min(b[1], x);
  bool ok = 1;
  a[1] -= x;
  b[1] -= x;
  for (int i = 2; i <= n; i++) {
    int tmp = min(a[i], b[i - 1]);
    a[i] -= tmp;
    b[i - 1] -= tmp;
    tmp = min(a[i], b[i]);
    a[i] -= tmp;
    b[i] -= tmp;
    if (a[i] > 0) {
      x -= a[i];
    }
  }
  if (x < 0) ok = 0;
  for (int i = 1; i <= n; i++) a[i] = sa[i], b[i] = sb[i];
  a[1] -= x;
  b[1] -= x;
  for (int i = 2; i <= n; i++) {
    int tmp = min(a[i], b[i - 1]);
    a[i] -= tmp;
    b[i - 1] -= tmp;
    tmp = min(a[i], b[i]);
    a[i] -= tmp;
    b[i] -= tmp;
    if (a[i] > 0) {
      ok = 0;
      break;
    }
  }
  if (a[1] > b[n]) ok = 0;
  printf("%s\n", ok ? "YES" : "NO");
}
int main() {
  int T;
  scanf("%d", &T);
  for (int cas = 1; cas <= T; cas++) work();
}
