#include <bits/stdc++.h>
using namespace std;
const long long N = 1000000;
long long n;
long long a[N + 1], b[N + 1];
bool chk1(long long x) {
  long long y;
  for (long long i = 2; i <= n; i++) {
    y = b[i - 1] - x;
    x = max(0ll, a[i] - y);
    if (y < 0) return false;
  }
  y = b[n] - x;
  if (y < 0) return false;
  return true;
}
bool chk2(long long x) {
  long long y, cpy = x;
  for (long long i = 2; i <= n; i++) {
    y = b[i - 1] - x;
    x = max(0ll, a[i] - y);
  }
  y = b[n] - x;
  return y + cpy >= a[1];
}
void mian() {
  cin >> n;
  for (long long i = 1; i <= n; i++) scanf("%lld", a + i);
  for (long long i = 1; i <= n; i++) scanf("%lld", b + i);
  long long fst = -1, scd = 1ll << 32;
  for (long long i = 32; ~i; i--)
    if (chk1(fst + (1ll << i))) fst += 1ll << i;
  for (long long i = 32; ~i; i--)
    if (scd - (1ll << i) >= 0 && chk2(scd - (1ll << i))) scd -= 1ll << i;
  puts(scd <= fst ? "YES" : "NO");
}
signed main() {
  long long testnum;
  cin >> testnum;
  while (testnum--) mian();
  return 0;
}
