#include <bits/stdc++.h>
const int MOD = 1e9 + 7;
const int MX = 200005;
using namespace std;
void setIO(string name) {
#pragma warning(disable : 4996)
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  freopen((name + ".in").c_str(), "r", stdin);
}
struct mi {
  int v;
  explicit operator int() const { return v; }
  mi(long long _v) : v(_v % MOD) { v += (v < 0) * MOD; }
  mi() : mi(0) {}
};
mi operator+(mi a, mi b) { return mi(a.v + b.v); }
mi operator-(mi a, mi b) { return mi(a.v - b.v); }
mi operator*(mi a, mi b) { return mi((long long)a.v * b.v); }
using ii = pair<long long, long long>;
using iii = tuple<long long, long long, long long>;
using vi = vector<long long>;
using vii = vector<ii>;
using vvii = vector<vii>;
using qii = priority_queue<ii, vii, greater<ii>>;
using vvi = vector<vi>;
long long t;
vector<long long> a;
int main() {
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    a = vector<long long>(n);
    for (long long i = 0; i < n; i++) {
      cin >> a[i];
    }
    set<long long> s;
    for (long long i = 0; i < n; i++) {
      long long x = i + a[i];
      x = (x % n + n) % n;
      s.insert(x);
    }
    if ((int)s.size() == n)
      cout << "YES" << endl;
    else
      cout << "NO" << endl;
  }
}
