#include <bits/stdc++.h>
long long a[200000];
long long GTLN(long x, long y) {
  long long max = 0;
  if (x > y)
    max = x;
  else
    max = y;
  return max;
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int m;
    scanf("%d", &m);
    for (int j = 0; j < m; j++) {
      scanf("%lli", &a[j]);
    }
    long long tong = 0;
    long long tg = a[0];
    for (int j = 0; j < m - 1; j++) {
      if ((a[j] > 0 && a[j + 1] < 0) || (a[j] < 0 && a[j + 1] > 0)) {
        tong += tg;
        tg = a[j + 1];
      } else
        tg = GTLN(a[j], a[j + 1]);
    }
    printf("%lli\n", tong + tg);
  }
  return 0;
}
