#include <bits/stdc++.h>
using namespace std;
void show(vector<int> a) { return; }
const int MOD = 1e9 + 7;
const int md = MOD;
int Power(int n, int x) {
  int ans = 1;
  while (x > 0) {
    if (x & 1) ans = (ans * n) % md;
    n = (n * n) % md;
    x = x >> 1;
  }
  return ans;
}
vector<long long> fact, inv;
void inverse(long long n) {
  if (n >= inv.size()) {
    long long size = inv.size();
    size = size == 0 ? 1 : size;
    inv.resize(n + 1);
    inv[0] = 1;
    for (long long i = size; i <= n; i++) inv[i] = Power(fact[i], md - 2);
  }
}
void factorial(long long n) {
  if (n >= fact.size()) {
    long long size = fact.size();
    size = size == 0 ? 1 : size;
    fact.resize(n + 1);
    fact[0] = 1;
    for (long long i = size; i <= n; i++) fact[i] = (fact[i - 1] * i) % md;
  }
}
long long ncr(long long n, long long r) {
  return (((fact[n] * inv[r]) % md) * inv[n - r]) % md;
}
void solve1() {
  int n, m;
  cin >> n >> m;
  if (n == 1 or m == 1) {
    cout << "YES"
         << "\n";
    return;
  } else if (n == 2 and m == 2) {
    cout << "YES"
         << "\n";
  } else {
    cout << "NO"
         << "\n";
  }
}
long long calculate(int n) {
  long long ans = n * (3 * n + 1) / 2;
  return ans;
}
long long rec = 1;
void lastPyramid(long long card) {
  long long n = card;
  long long i = 1;
  long long ans = 0;
  while (ans <= n) {
    ans = (i * (3 * i + 1)) / 2;
    i++;
  }
  i -= 2;
  ;
  ;
  ;
  ans = (i * (3 * i + 1)) / 2;
  ;
  long long remaingcard = card - ans;
  ;
  if (remaingcard == 0 or remaingcard == 1) {
    cout << rec << "\n";
    return;
  } else {
    rec++;
    lastPyramid(remaingcard);
  }
}
void solve2() {
  long long n;
  cin >> n;
  if (n == 1) {
    cout << "0"
         << "\n";
    return;
  } else {
    rec = 1;
    lastPyramid(n);
  }
}
void solveC();
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  int test_case;
  cin >> test_case;
  while (test_case--) {
    solveC();
  }
  return 0;
}
void solveC() {
  int n;
  cin >> n;
  vector<int> arr(n);
  for (auto &i : arr) {
    cin >> i;
  }
  set<int> elements;
  bool flag = true;
  for (int i = 0; i < n; i++) {
    int index = i + arr[i];
    if (index < 0) {
      index = ((index % n) + n) % n;
    } else {
      index = index % n;
    }
    if (elements.find(index) != elements.end()) {
      flag = false;
      break;
    } else {
      elements.insert(index);
    }
  }
  cout << (flag ? "YES\n" : "NO\n");
}
