T = int(input()) ansl = [] for _ in range(T): N = int(input()) A = list(map(lambda x: int(x) - 1, input().split())) if N == 1: if A == [0, 0]: ansl.append('Yes') else: ansl.append('No') continue if N == 2: if A == [0, 1, 0, 1]: ansl.append('Yes') else: ansl.append('No') continue cnt = [0]*N for a in A: cnt[a] += 1 flag = True for i in range(N): if cnt[i] != 2: flag = False break if not flag: ansl.append('No') continue if A[0] != 0: ansl.append('No') continue # 前から見ていく flag = True for i in range(2*N): a = A[i] if i%N != a: left = i - 1 flag = False break # 初期版と同じ if flag: ansl.append('Yes') continue X = A[left] # 後ろから見る for i in range(2*N - 1, -1, -1): if A[i] == X: right = i break # left ~ right の間(両端は含まない)に注目 # right から遡る memo = 1 flag = True for i in range(right - 1, left, -1): if (X + memo)%N == A[i]: memo += 1 continue else: # 合わない flag = False break if flag: ansl.append('Yes') else: ansl.append('No') print(*ansl, sep='\n')