/*For today, you happen to be the defeated. But what will you become tomorrow?*/
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
#define int long long int
#define dbg if(debugg)
#define F first
#define S second
bool debugg = false;
template <typename T>
using order_set = tree<T, null_type,less<T>, rb_tree_tag,tree_order_statistics_node_update>;
template <typename T>
using minheap = priority_queue<T, vector<T>, greater<T>>;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int N = 200005;
int arr[N], dp[N], n;
void reset(int n)
{
for(int i = 0; i <= n; i ++) dp[i] = -1;
}
int magic(int pos)
{
if(pos > n) return 0;
int &ans = dp[pos];
if(~ans) return ans;
ans = max(magic(pos + 1), arr[pos] + magic(pos + 3));
return ans;
}
void build(int pos)
{
if(pos > n) return;
if(magic(pos + 1) >= arr[pos] + magic(pos + 3)){
build(pos + 1);
}
else{
arr[pos] = 0;
build(pos + 3);
}
}
void solve()
{
int sum = 0, ans = 0;
cin >> n;
for(int i = 1; i <= n; i ++){
cin >> arr[i];
sum += arr[i];
}
reset(n);
sum -= magic(1);
ans += sum;
build(1);
reset(n);
sum -= magic(1);
ans += sum;
cout << ans << '\n';
}
int32_t main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int t = 1;
cin >> t;
while(t--){
solve();
}
return 0;
}