#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int ntest;
int n;
ll cl, cp;
int a[200001];
ll ans;
int cnt;
template <typename T>
inline T read() {
  T x = 0;
  T multiplier = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') {
      multiplier = -1;
    }
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = (x << 3) + (x << 1) + (ch & 15);
    ch = getchar();
  }
  return x * multiplier;
}
int main() {
  ntest = read<int>();
  while (ntest--) {
    n = read<int>(), cl = read<ll>(), cp = read<ll>();
    for (int i = 1; i <= n; i++) {
      char ch;
      while (isspace(ch = getchar())) {
      }
      a[i] = ch - '0';
    }
    ans = cp;
    cnt = 0;
    bool flag = false;
    for (int i = 1; i <= n; i++) {
      if (a[i] == 0 && !flag) {
        ans += cp + cl;
      } else if (a[i] == 1) {
        ans += (cp << 1) + cl;
        if (i > 1 && a[i - 1] == 0) {
          if (!flag) {
            ans += cl + cp;
          } else if (cnt > 1) {
            ans += min(cnt * cl + cnt * cp * 2, (cnt + 2) * cl + cnt * cp + cp);
          } else {
            ans += cl + cp * 2;
          }
          cnt = 0;
        }
        flag = true;
      } else {
        cnt++;
      }
    }
    if (flag) {
      ans += (cnt + 1) * cl + cnt * cp;
    }
    printf("%lld\n", ans);
  }
  return 0;
}
