#include <bits/stdc++.h>
using namespace std;
int n, a[500005], L[500005], R[500005], tree[2000005], cov[2000005],
    sum[500005];
void build(int l, int r, int x) {
  cov[x] = 0;
  if (l == r) {
    tree[x] = sum[r];
    return;
  }
  int mid = (l + r) >> 1;
  build(l, mid, x * 2), build(mid + 1, r, x * 2 + 1);
  tree[x] = min(tree[x * 2], tree[x * 2 + 1]);
}
void pushr(int x, int a) { tree[x] += a, cov[x] += a; }
void pushdown(int x) {
  if (!cov[x]) return;
  pushr(x * 2, cov[x]), pushr(x * 2 + 1, cov[x]);
  cov[x] = 0;
}
void modify(int l, int r, int x, int a, int b, int c) {
  if (l >= a && r <= b) {
    pushr(x, c);
    return;
  }
  pushdown(x);
  int mid = (l + r) >> 1;
  if (a <= mid) modify(l, mid, x * 2, a, b, c);
  if (b > mid) modify(mid + 1, r, x * 2 + 1, a, b, c);
  tree[x] = min(tree[x * 2], tree[x * 2 + 1]);
}
int main() {
  int _;
  scanf("%d", &_);
  while (_--) {
    int mid = 0, cnt = 0, cnt2 = 0, now = 0, ans = 1e9;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
      L[i] = R[i] = sum[i] = 0;
      if (!a[i]) cnt++;
    }
    for (int i = 1; i <= n; i++)
      if (!a[i]) {
        cnt2++;
        if (cnt2 == cnt / 2) {
          mid = i;
          break;
        }
      }
    if (!mid) {
      puts("0");
      continue;
    }
    for (int i = 1; i <= mid; i++)
      if (a[i]) L[a[i]] = i;
    for (int i = n; i > mid; i--)
      if (a[i]) R[a[i]] = i;
    sum[n + 1] = 0;
    for (int i = n; i > mid; i--) sum[i] = sum[i + 1] + (a[i] == 0);
    build(mid + 1, n + 1, 1);
    for (int i = 1; i <= n; i++)
      if (L[i] || R[i]) now++;
    for (int i = 1; i <= n; i++)
      if (R[i] && (!L[i]))
        modify(mid + 1, n + 1, 1, mid + 1, R[i], -1),
            ans = min(ans, tree[1] + now);
    ans = min(ans, tree[1] + now);
    int cnt3 = 0;
    for (int i = 1; i <= mid; i++) {
      if (L[a[i]] == i) {
        if (R[a[i]])
          modify(mid + 1, n + 1, 1, mid + 1, R[a[i]], -1);
        else
          modify(mid + 1, n + 1, 1, mid + 1, n + 1, -1);
      }
      if (!a[i]) cnt3++;
      ans = min(ans, tree[1] + cnt3 + now);
    }
    printf("%d\n", min(ans, cnt / 2));
  }
  return 0;
}
