//拒绝抄袭
//f[i]表示洗劫前i家店铺的最大收益
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 100010;
int w[N], f[N];
int main(){
int T;
//f[0] = 0, f[1] = w[1]
cin >> T;
/*因为不能洗劫相邻两家店铺,所以洗劫前i家店铺的最大收益可以分为两种情况:
不抢第i家店铺,最大收益为洗劫前i -1家店铺的最大收益
抢劫第i家店铺,最大收益为洗劫前i - 2家店铺的最大收益,即不抢劫第i - 1家店铺。
因此状态转移方程可以表示为:f[i] = max(f[i - 1], f[i - 2] + w[i])*/
while(T --)
{
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i ++) scanf("%d", &w[i]);
f[0] = 0, f[1] = w[1];
for(int i = 2; i <= n; i ++)
{
f[i] = max(f[i - 1], f[i - 2] + w[i]);
}
printf("%d\n", f[n]);
}
return 0;
}