#*****DO NOT COPY*****
#F
#U       ___                     ___                         ___           ___           ___           ___          _____
#C      /  /\      ___          /  /\          ___          /__/\         /  /\         /  /\         /  /\        /  /::\
#K     /  /::\    /  /\        /  /:/_        /  /\         \  \:\       /  /::\       /  /::\       /  /:/_      /  /:/\:\
#     /  /:/\:\  /  /:/       /  /:/ /\      /  /::\         \  \:\     /  /:/\:\     /  /:/\:\     /  /:/ /\    /  /:/  \:\
#Y   /  /:/~/:/ /__/::\      /  /:/ /::\    /  /:/\:\    ___  \  \:\   /  /:/~/::\   /  /:/~/:/    /  /:/ /:/_  /__/:/ \__\:|
#O  /__/:/ /:/  \__\/\:\__  /__/:/ /:/\:\  /  /:/~/::\  /__/\  \__\:\ /__/:/ /:/\:\ /__/:/ /:/___ /__/:/ /:/ /\ \  \:\ /  /:/
#U  \  \:\/:/      \  \:\/\ \  \:\/:/~/:/ /__/:/ /:/\:\ \  \:\ /  /:/ \  \:\/:/__\/ \  \:\/:::::/ \  \:\/:/ /:/  \  \:\  /:/
#    \  \::/        \__\::/  \  \::/ /:/  \  \:\/:/__\/  \  \:\  /:/   \  \::/       \  \::/~~~~   \  \::/ /:/    \  \:\/:/
#A    \  \:\        /__/:/    \__\/ /:/    \  \::/        \  \:\/:/     \  \:\        \  \:\        \  \:\/:/      \  \::/
#L     \  \:\       \__\/       /__/:/      \__\/          \  \::/       \  \:\        \  \:\        \  \::/        \__\/
#L      \__\/                   \__\/                       \__\/         \__\/         \__\/         \__\/
#
#
#*****DO NOT COPY*****
def solve(n , arr):

    li = []
    i = 0
    while i < n:
        a = [arr[i]]
        j = i + 1
        while j < n:
            if (arr[i]*arr[j]) > 0:
                a.append(arr[j])
                j += 1

            else:
                li.append(a)
                break
        else:
            li.append(a)
        i = j

    summ = 0
    for i in range(len(li)):
        summ += max(li[i])

    return summ
for _ in range(int(input())):
    n = int(input())
    arr = list(map(int, input().split()))
    print(solve(n , arr))