v = [[] for i in range(0, 100005)]
w = [[] for i in range(0, 100005)]


def dfs(a, b):
    if len(v[a]) == 0 and len(w[b]) == 0:
        return True
    elif len(v[a]) != len(w[b]):
        return False
    elif len(v[a]) == 1:
        return dfs(v[a][0], w[b][0])
    else:
        return (dfs(v[a][0], w[b][0]) and dfs(v[a][1], w[b][1])) or (dfs(v[a][0], w[b][1]) and dfs(v[a][1], w[b][0]))


t = int(input())
for z in range(0, t):
    n = int(input())
    for i in range(0, 100005):
        v[i].clear()
        w[i].clear()
    A = list(map(int, input().split()))
    for i in range(0, n):
        v[A[i]].append(i + 1)
    B = list(map(int, input().split()))
    for j in range(0, n):
        w[B[j]].append(j + 1)
    print(int(dfs(0, 0)))
