#include <bits/stdc++.h>
using namespace std;
using ii = pair<int, int>;
using lint = long long;
const int MOD = 1e9 + 7, mxn = 1000100;
const int dr[] = {-1, 0, 1, 0};
const int dc[] = {0, -1, 0, 1};
int tc, N, a[mxn], b[mxn], bb[mxn];
vector<vector<int>> adj;
lint tota, totb;
void input() {
  cin >> N;
  tota = 0, totb = 0;
  for (int i = 0; i < N; i++) cin >> a[i], tota += a[i];
  for (int i = 0; i < N; i++) cin >> b[i], totb += b[i], b[i];
}
int f(int res) {
  int cry = res;
  for (int i = 1; i < N; i++) {
    if (cry + b[i] - a[i] < 0) return -1;
    cry = min(b[i], cry + b[i] - a[i]);
  }
  return a[0] <= cry + (b[0] - res);
}
int solve() {
  if (tota > totb) return 0;
  int s = 0, e = b[0];
  for (int i = 0; i < N; i++)
    if (b[(i - 1 + N) % N] + b[i] < a[i]) return 0;
  while (s <= e) {
    int mid = (s + e) / 2;
    int x = f(mid);
    if (x == 1) return 1;
    if (!x)
      e = mid - 1;
    else
      s = mid + 1;
  }
  return 0;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> tc;
  while (tc--) {
    input();
    int ret = solve();
    if (ret)
      cout << "YES\n";
    else
      cout << "NO\n";
  }
  return 0;
}
