#include <bits/stdc++.h>
#define ll long long int
using namespace std;
int main() {
//freopen("inp5.in", "r", stdin);
//freopen("out5.out", "w", stdout);
int t;
cin >> t;
while(t--) {
int n;
cin >> n;
ll a[n];
for(int i = 0; i < n; i++) cin >> a[i];
ll score[2][2][2];
memset(score, 0, sizeof(score));
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
priority_queue<ll> pq[2];
for(int k = 0; k < n; k++) pq[a[k]&1].push(a[k]);
int s1 = i, s2 = j;
for(int k = 0; k < 2*n + 1; k++) {
if(k&1) {
if(!pq[s2].empty()) {
score[i][j][k&1] += pq[s2].top();
pq[s2].pop();
s2 = !s2;
}
} else {
if(!pq[s1].empty()) {
score[i][j][k&1] += pq[s1].top();
pq[s1].pop();
s1 = !s1;
}
}
}
}
}
ll sc[2];
if(score[0][0][1] > score[0][1][1]) sc[0] = score[0][0][0];
else if(score[0][0][1] < score[0][1][1]) sc[0] = score[0][1][0];
else sc[0] = max(score[0][0][0], score[0][1][0]);
if(score[1][0][1] > score[1][1][1]) sc[1] = score[1][0][0];
else if(score[1][0][1] < score[1][1][1]) sc[1] = score[1][1][0];
else sc[1] = max(score[1][0][0], score[1][1][0]);
cout << max(sc[0], sc[1]) << "\n";
}
}