← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	if _, err := fmt.Fscan(in, &t); err != nil {
		return
	}
	for ; t > 0; t-- {
		var a, b, x, y int64
		fmt.Fscan(in, &a, &b, &x, &y)

		var ans int64 = -1
		if a == b {
			ans = 0
		} else if b > a {
			d := b - a
			m := x
			if y < m {
				m = y
			}
			pairs := d / 2
			ans = pairs * (x + m)
			if d%2 == 1 {
				if a%2 == 0 {
					ans += m
				} else {
					ans += x
				}
			}
		} else {
			if a%2 == 1 && b == a-1 {
				ans = y
			} else {
				ans = -1
			}
		}
		fmt.Fprintln(out, ans)
	}
}