'''
Под вашим контролем находятся n студентов и вам нужно составить ровно две команды, состоящие из некоторого подмножества ваших студентов. У каждого студента есть свой собственный навык, навык i-го студента обозначен числом ai (у различных студентов могут быть одинаковые навыки).

Итак, о командах. Во-первых, эти две команды должны быть одинакового размера. Есть еще два требования:

Первая команда должна состоять из студентов с различными навыками (то есть нет одинаковых навыков среди студентов первой команды).
Вторая команда должна состоять из студентов с одинаковыми навыками (то есть все навыки среди студентов второй команды равны между собой).
'''
n = int(input())
for j in range(n):
    m = int(input())
    a = [int(num) for num in input().split(' ')]
    check_c = [0] * (max(a) + 1)
    s = 0
    for i in range(m):
        check_c[a[i]] += 1
        if check_c[a[i]] == 1:
            s += 1
    check_c.sort()
    s -= 1
    if (check_c[-1] - s) > 1:
        check_c[0] = 1
    print(s + check_c[0] if s < check_c[-1] else check_c[-1])
    check_c.clear()