```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
fmt.Fscan(reader, &t)
for tc := 0; tc < t; tc++ {
var n int
fmt.Fscan(reader, &n)
a := make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscan(reader, &a[i])
}
p := make([]int, n)
cur := 0
for i := 0; i < n; i++ {
if a[i] > 0 {
p[i] = cur
cur += a[i]
} else {
p[i] = cur - a[i]
}
}
for i := 0; i < n; i++ {
if i > 0 {
fmt.Fprint(writer, " ")
}
fmt.Fprint(writer, p[i])
}
fmt.Fprintln(writer)
}
}
```