```go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
var scanner = bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
var writer = bufio.NewWriter(os.Stdout)
defer writer.Flush()
scanInt := func() int {
scanner.Scan()
num, _ := strconv.Atoi(scanner.Text())
return num
}
t := scanInt()
for i := 0; i < t; i++ {
n := scanInt()
a := make([]int, n)
for j := 0; j < n; j++ {
a[j] = scanInt()
}
b := make([]int, n)
for j := 0; j < n; j++ {
b[j] = scanInt()
}
diff := -1
possible := true
for j := 0; j < n; j++ {
if a[j] < b[j] {
possible = false
break
}
if b[j] > 0 {
d := a[j] - b[j]
if diff == -1 {
diff = d
} else if diff != d {
possible = false
break
}
}
}
if possible && diff != -1 {
for j := 0; j < n; j++ {
if b[j] == 0 {
if a[j] > diff {
possible = false
break
}
}
}
}
if possible {
fmt.Fprintln(writer, "YES")
} else {
fmt.Fprintln(writer, "NO")
}
}
}
```