#include <bits/stdc++.h>
using namespace std;
int main() {
int a,b,c;
cin >> a;
while (a--)
{
cin >> b;
long long sum = 0;
vector<int> nums(b);
for (int i = 0; i < b; i++)
{
cin >> nums[i];
}
int sign;
if (nums[0] > 0)
{
sign = 1;
}
else
{
sign = -1;
}
vector<int> numbers;
for (int i = 0; i < b; i++)
{
int cursign;
if (nums[i] > 0)
{
cursign = 1;
}
else
{
cursign = -1;
}
if (sign == cursign)
{
numbers.push_back(nums[i]);
}
else
{
int num = -INT_MAX;
for (int item : numbers)
{
num = max(num,item);
}
sum+= num;
numbers.clear();
sign = cursign;
numbers.push_back(nums[i]);
}
}
int num = -INT_MAX;
for (int item : numbers)
{
num = max(num,item);
}
sum+= num;
cout << sum << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBhLGIsYzsKCWNpbiA+PiBhOwoJd2hpbGUgKGEtLSkKCXsKCQljaW4gPj4gYjsKCQlsb25nIGxvbmcgc3VtID0gMDsKCQl2ZWN0b3I8aW50PiBudW1zKGIpOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgYjsgaSsrKQoJCXsKCQkJY2luID4+IG51bXNbaV07CgkJfQoJCWludCBzaWduOwoJCWlmIChudW1zWzBdID4gMCkKCQl7CgkJCXNpZ24gPSAxOwoJCX0KCQllbHNlCgkJewoJCQlzaWduID0gLTE7CgkJfQoJCXZlY3RvcjxpbnQ+IG51bWJlcnM7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBiOyBpKyspCgkJewoJCQlpbnQgY3Vyc2lnbjsKCQkJaWYgKG51bXNbaV0gPiAwKQoJCQl7CgkJCQljdXJzaWduID0gMTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWN1cnNpZ24gPSAtMTsKCQkJfQoJCQlpZiAoc2lnbiA9PSBjdXJzaWduKQoJCQl7CgkJCQludW1iZXJzLnB1c2hfYmFjayhudW1zW2ldKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWludCBudW0gPSAtSU5UX01BWDsKCQkJCWZvciAoaW50IGl0ZW0gOiBudW1iZXJzKQoJCQkJewoJCQkJCW51bSA9IG1heChudW0saXRlbSk7CgkJCQl9CgkJCQlzdW0rPSBudW07CgkJCQludW1iZXJzLmNsZWFyKCk7CgkJCQlzaWduID0gY3Vyc2lnbjsKCQkJCW51bWJlcnMucHVzaF9iYWNrKG51bXNbaV0pOwoJCQl9CgkJfQoJCWludCBudW0gPSAtSU5UX01BWDsKCQlmb3IgKGludCBpdGVtIDogbnVtYmVycykKCQl7CgkJCW51bSA9IG1heChudW0saXRlbSk7CgkJfQoJCXN1bSs9IG51bTsKCQljb3V0IDw8IHN1bSA8PCAnXG4nOwoJfQp9