t=int(input())
from collections import Counter
while t:
n=int(input())
li=list(map(int,input().strip().split()))
ans=0
for i in range(n):
if li[i]==0:
ans=1
li[i]=abs(li[i])
di=Counter(li)
for i in set(li):
if i==0:
continue
if di[i]>2:
ans+=2
else:
ans+=di[i]
print(ans)
t-=1
#include <cstdio>
#include <set>
int main(){
long t; scanf("%ld", &t);
while(t--){
long n; scanf("%ld", &n);
std::set<long> s;
for(long p = 0; p < n; p++){
long x; scanf("%ld", &x);
if(s.count(x))
{s.insert(-x);}
else{s.insert(x);}
}
printf("%ld\n", s.size());
}
}
1699A - The Third Three Number Problem | 1617B - GCD Problem |
841A - Generous Kefa | 1690B - Array Decrements |
1692C - Where's the Bishop | 104A - Blackjack |
1438A - Specific Tastes of Andre | 1711C - Color the Picture |
1194C - From S To T | 110B - Lucky String |
1114A - Got Any Grapes | 224B - Array |
125B - Simple XML | 567B - Berland National Library |
431B - Shower Line | 282C - XOR and OR |
1582B - Luntik and Subsequences | 609A - Флеш-карты |
1207A - There Are Two Types Of Burgers | 371C - Hamburgers |
343B - Alternating Current | 758B - Blown Garland |
1681B - Card Trick | 1592A - Gamer Hemose |
493D - Vasya and Chess | 1485A - Add and Divide |
337B - Routine Problem | 1392D - Omkar and Bed Wars |
76E - Points | 762C - Two strings |