#include <bits/stdc++.h>
using namespace std;
long long mul(long long a, long long b) {
  return ((a % 1000000007) * (b % 1000000007)) % 1000000007;
}
long long power(long long a, long long b) {
  long long res = 1LL;
  while (b > 0) {
    if (b & 1) res = mul(res, a);
    b /= 2;
    a = mul(a, a);
  }
  return res % 1000000007;
}
long long n, a, b;
string s;
long long dp[200045][2];
long long rec(long long idx, long long fl) {
  if (idx >= (n - 1)) {
    if (fl == 0) return 0;
    return a;
  }
  long long ans = LLONG_MAX;
  if (dp[idx][fl] != -1) return dp[idx][fl];
  if (s[idx] == '1') {
    if (fl == 0) {
      return LLONG_MAX;
    } else {
      long long a1 = rec(idx + 1, 1);
      if (a1 != LLONG_MAX) ans = min(ans, b + a1);
    }
  } else {
    if (fl == 0) {
      long long a1 = rec(idx + 1, 1);
      long long b1 = rec(idx + 1, 0);
      if (a1 != LLONG_MAX) ans = min(ans, a + b + a1);
      if (b1 != LLONG_MAX) ans = min(ans, b1);
    } else {
      long long a1 = rec(idx + 1, 0);
      long long b1 = rec(idx + 1, 1);
      if (a1 != LLONG_MAX) ans = min(ans, a + a1);
      if (b1 != LLONG_MAX) ans = min(ans, b + b1);
    }
  }
  return dp[idx][fl] = ans;
}
int main() {
  long long t;
  cin >> t;
  while (t--) {
    memset(dp, -1, sizeof(dp));
    cin >> n >> a >> b;
    cin >> s;
    long long an = (n + 1) * (b) + ((n)*a);
    long long ans = rec(0, 0) + an;
    cout << ans << endl;
  }
  return 0;
}
