```go
package main
import (
"bufio"
"fmt"
"os"
)
type BIT struct {
n int
t []int
}
func NewBIT(n int) *BIT {
return &BIT{n: n, t: make([]int, n+2)}
}
func (b *BIT) Add(i, delta int) {
for i <= b.n {
b.t[i] += delta
i += i & -i
}
}
func (b *BIT) Sum(i int) int {
res := 0
for i > 0 {
res += b.t[i]
i -= i & -i
}
return res
}
var rdr = bufio.NewReaderSize(os.Stdin, 1<<20)
func nextInt() int {
sign := 1
val := 0
c, err := rdr.ReadByte()
for err == nil && (c < '0' || c > '9') && c != '-' {
c, err = rdr.ReadByte()
}
if err != nil {
return 0
}
if c == '-' {
sign = -1
c, err = rdr.ReadByte()
}
for err == nil && c >= '0' && c <= '9' {
val = val*10 + int(c-'0')
c, err = rdr.ReadByte()
}
if err == nil {
_ = rdr.UnreadByte()
}
return sign * val
}
func main() {
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
t := nextInt()
for ; t > 0; t-- {
n := nextInt()
bit := NewBIT(n)
var ans int64 = 0
for i := 0; i < n; i++ {
x := nextInt()
ans += int64(bit.Sum(n) - bit.Sum(x-1))
bit.Add(x, 1)
}
fmt.Fprintln(out, ans)
}
}
```