#include <bits/stdc++.h>
using namespace std;
namespace IO {
template <typename T>
inline void read(T &x) {
  x = 0;
  long long f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -f;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = x * 10 + ch - 48;
    ch = getchar();
  }
  x = x * f;
}
}  // namespace IO
using namespace IO;
const long long maxn = 200000;
long long dp[maxn + 10][4];
long long a[maxn + 10];
void DP(long long &x, long long y) { x = max(x, y); }
signed main() {
  long long _;
  read(_);
  while (_--) {
    long long n;
    read(n);
    for (long long i = 0; i <= n; i++) {
      dp[i][0] = dp[i][1] = dp[i][2] = 0;
      a[i] = 0;
    }
    for (long long i = 0; i < n; i++) {
      read(a[i]);
    }
    for (long long i = 0; i < n; i++) {
      if (i % 2 == 1) {
        DP(dp[i + 1][0], dp[i][0]);
        if (i + 2 <= n) DP(dp[i + 2][1], max(dp[i][1] + a[i], dp[i][0] + a[i]));
        DP(dp[i + 1][2], max(dp[i][1], max(dp[i][0], dp[i][2])));
      } else {
        DP(dp[i + 1][0], dp[i][0] + a[i]);
        if (i + 2 <= n) DP(dp[i + 2][1], max(dp[i][1], dp[i][0]) + a[i + 1]);
        DP(dp[i + 1][2], max(dp[i][1], max(dp[i][0], dp[i][2])) + a[i]);
      }
    }
    cout << max(dp[n][1], max(dp[n][2], dp[n][0])) << endl;
  }
}
