← Home
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)
	}
}