package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
fmt.Fscan(in, &t)
for i := 0; i < t; i++ {
var a, b, x, y int
fmt.Fscan(in, &a, &b, &x, &y)
if a == b {
fmt.Fprintln(out, 0)
continue
}
if a > b {
if a%2 != 0 && b == a-1 {
fmt.Fprintln(out, y)
} else {
fmt.Fprintln(out, -1)
}
} else {
ans := 0
for k := a; k < b; k++ {
if k%2 == 0 {
if x < y {
ans += x
} else {
ans += y
}
} else {
ans += x
}
}
fmt.Fprintln(out, ans)
}
}
}