package main
import (
"bufio"
"fmt"
"os"
)
func min(a, b int) int {
if a < b {
return a
}
return b
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
fmt.Fscan(in, &t)
for ; t > 0; t-- {
var l, r, L, R int
fmt.Fscan(in, &l, &r)
fmt.Fscan(in, &L, &R)
if r < L || R < l {
fmt.Fprintln(out, 1)
continue
}
overlapStart := max(l, L)
overlapEnd := min(r, R)
k := overlapEnd - overlapStart + 1
ans := (k - 1)
if l != L {
ans++
}
if r != R {
ans++
}
fmt.Fprintln(out, ans)
}
}