#include<bits/stdc++.h>
#define outt(x) cout<<#x<<" = "<<x
#define hh cout<<endl
using namespace std;
typedef long long ll;
const int maxn = 2e5+5;
int tag[maxn],num[maxn],numm[maxn];
int n,m,t,ans,maxtime,maxnum;

 
int main(){
    scanf("%d",&t);
    while(t--){
    	scanf("%d",&n);ans=0;
    	for(int i=1;i<=n;++i) tag[i]=num[i]=numm[i]=0;
    	for(int i=1;i<=n;++i) {
    		scanf("%d",&tag[i]);
    		if(i!=1&&tag[i]==tag[i-1])  {ans++;num[tag[i]]+=2;}
			numm[tag[i]]++;
    	}
    	num[tag[1]]++;num[tag[n]]++;
    //	outt(ans);hh;
    	maxtime=maxnum=0;
    	for(int i=1;i<=n;++i) {
    		maxtime=max(maxtime,numm[i]);maxnum=max(maxnum,num[i]);
    	}
    //	outt(maxtime);hh;outt(maxnum);hh;
    	ans=max(ans,maxnum-2);
    	if(maxtime*2>n+1) printf("-1\n");
    	else printf("%d\n",ans);
    }
    
    
    return 0;
}