package main
import (
"bufio"
"fmt"
"os"
"sort"
)
type uint32Slice []uint32
func (x uint32Slice) Len() int { return len(x) }
func (x uint32Slice) Less(i, j int) bool { return x[i] < x[j] }
func (x uint32Slice) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
func main() {
reader := bufio.NewReader(os.Stdin)
var t int
if _, err := fmt.Fscan(reader, &t); err != nil {
return
}
sums := make(uint32Slice, 0, 2005*2005/2)
p := make([]int, 2005)
for tc := 0; tc < t; tc++ {
var n int
fmt.Fscan(reader, &n)
p[0] = 0
for i := 1; i <= n; i++ {
var a int
fmt.Fscan(reader, &a)
p[i] = p[i-1] + a
}
sums = sums[:0]
for i := 0; i <= n; i++ {
for j := i; j <= n; j++ {
s := uint32(p[i] + p[j])
val := s << 1
if i == j {
val |= 1
}
sums = append(sums, val)
}
}
sort.Sort(sums)
var m int64 = 0
length := len(sums)
for i := 0; i < length; {
j := i
target := sums[i] >> 1
var k int64 = 0
var c int64 = 0
for j < length && (sums[j]>>1) == target {
if (sums[j] & 1) == 0 {
k++
} else {
c++
}
j++
}
m += k*(k-1) + k*c
i = j
}
ans := int64(n-1) * int64(n) * int64(n+1) / 6
ans -= m
fmt.Println(ans)
}
}