#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <deque>
#include <bitset>
using namespace std;
#define lowbit(x) x&-x
#define ll long long
#define dob double
#define For(i,s,n) for(ll i = s;i <= n;i++)
#define mem0(a) memset(a,0,sizeof a)
#define gcd(a,b) __gcd(a,b)
const int N = 1e5+50;
const double eps = 1e-6;
const ll mod = 2333;
const ll inf = 2e9+50;
void read(int &res){
    char c;bool flag = true;
    while((c=getchar())<'0'||c>'9')if(c=='-')flag=-1;res=c-'0';
    while((c=getchar())>='0'&&c<='9')res=res*10+c-'0';res*=flag;
}
int a[N];
int main(){
    ios::sync_with_stdio(false);
    cout.tie(NULL);
    int t;
    cin>>t;
    while(t--){
        ll n,u,v;
        cin>>n>>u>>v;
        ll ans = inf;
        memset(a,0,sizeof(a));
        For(i,1,n) cin>>a[i];
        For(i,2,n){
            //cout<<a[i]<<' '<<a[i-1]<<endl;
            if(a[i] == a[i-1]) ans = min(ans,v+min(u,v));
            else if(a[i] == a[i-1]+1 || a[i] == a[i-1]-1) ans = min(ans,min(u,v));
            else ans = 0;
        }
        cout<<ans<<endl;
    }
    return 0;
}