package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
idx := 0
nextInt := func() int64 {
for idx < len(data) && (data[idx] == ' ' || data[idx] == '\n' || data[idx] == '\r' || data[idx] == '\t') {
idx++
}
sign := int64(1)
if data[idx] == '-' {
sign = -1
idx++
}
var v int64
for idx < len(data) && data[idx] >= '0' && data[idx] <= '9' {
v = v*10 + int64(data[idx]-'0')
idx++
}
return v * sign
}
t := int(nextInt())
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
for ; t > 0; t-- {
n := int(nextInt())
seen := make([]bool, n)
ok := true
mod := int64(n)
for i := 0; i < n; i++ {
a := nextInt()
if ok {
x := (a + int64(i)) % mod
if x < 0 {
x += mod
}
if seen[x] {
ok = false
} else {
seen[x] = true
}
}
}
if ok {
fmt.Fprintln(out, "YES")
} else {
fmt.Fprintln(out, "NO")
}
}
}