#include <bits/stdc++.h>
using namespace std;
void PrintJam(int tc, int val) {
  cout << "Case #" << tc + 1 << ": " << val << '\n';
}
void PrintJam(int tc, const string& val) {
  cout << "Case #" << tc + 1 << ": " << val << '\n';
}
template <typename T>
void PrintJam(int tc, const vector<T>& val) {
  cout << "Case #" << tc + 1 << ": ";
  for (int i = 0; i < val.size(); ++i) {
    cout << val[i] << ' ';
  }
  cout << '\n';
}
template <typename T = int>
vector<T> ReadVector(int sz) {
  vector<T> v(sz);
  for (int i = 0; i < sz; ++i) cin >> v[i];
  return v;
}
template <typename Cont>
bool IsUnique(int sz, const Cont& a) {
  vector<bool> used(sz, false);
  for (auto el : a) {
    if (used[el]) return false;
    used[el] = true;
  }
  return true;
}
int64_t BinPow(int64_t a, int64_t p) {
  if (p == 0) return 1;
  if (p == 1) return a;
  if (p % 2 == 0) {
    auto r = BinPow(a, p / 2);
    return r * r;
  } else {
    auto r = BinPow(a, p - 1);
    return r * a;
  }
}
template <typename Predicate>
int bin(int from, int to, Predicate predicate) {
  while (from + 1 < to) {
    int m = from + (to - from) / 2;
    if (predicate(m))
      from = m + 1;
    else
      to = m;
  }
  return from;
}
vector<vector<int>> ReadGraph(int n, int m, bool orient = false,
                              bool minus_one = true) {
  vector<vector<int>> g(n);
  for (int i = 0; i < m; ++i) {
    int a, b;
    cin >> a >> b;
    g[a - minus_one].push_back(b - minus_one);
    if (!orient) g[b - minus_one].push_back(a - minus_one);
  }
  return g;
}
struct DSU {
  explicit DSU(int n) : parent(n), pts(n, 0) {
    iota(parent.begin(), parent.end(), 0);
  }
  void Union(int a, int b) {
    a = Get(a);
    b = Get(b);
    if (a == b) return;
    if (pts[a] < pts[b]) swap(a, b);
    parent[b] = a;
    pts[b] -= pts[a];
  }
  int Get(int x) {
    while (x != parent[x]) x = parent[x];
    return x;
  }
  void Add(int x, int v) { pts[Get(x)] += v; }
  int GetPts(int x) const {
    int ans = pts[x];
    while (x != parent[x]) {
      x = parent[x];
      ans += pts[x];
    }
    return ans;
  }
  vector<int> parent, pts;
};
using ll = int64_t;
int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(nullptr);
  int t;
  cin >> t;
  for (int _ = 0; _ < t; ++_) {
    int n;
    cin >> n;
    auto a = ReadVector(n);
    vector<int> cnt(101, 0);
    for (auto el : a) cnt[el]++;
    int ans = 0;
    int i = 0;
    while (i <= 100 && cnt[i] > 0) {
      --cnt[i];
      ++i;
    }
    ans += i;
    i = 0;
    while (i <= 100 && cnt[i] > 0) {
      --cnt[i];
      ++i;
    }
    ans += i;
    cout << ans << '\n';
  }
  return 0;
}
