#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
  ll t;
  cin >> t;
  while (t--) {
    ll n, a, b;
    cin >> n >> a >> b;
    string road;
    cin >> road;
    vector<vector<ll> > dp(200001);
    for (auto &v : dp) {
      v.resize(2);
    }
    for (ll i = 0; i < 200001; i++) {
      dp[i][0] = 1e17;
      dp[i][1] = 1e17;
    }
    dp[0][0] = a + 2 * b;
    dp[0][1] = 2 * a + 3 * b;
    if (road[1] == '1') {
      dp[0][0] = 1e17;
    }
    for (ll i = 1; i < n; i++) {
      if (road[i] == '1') {
        dp[i][0] = 1e17;
        dp[i][1] = min(dp[i - 1][0] + 2 * a + 2 * b, dp[i - 1][1] + a + 2 * b);
      } else {
        dp[i][0] = min(dp[i - 1][0] + a + b, dp[i - 1][1] + 2 * a + b);
        dp[i][1] = min(dp[i - 1][0] + 2 * a + 2 * b, dp[i - 1][1] + a + 2 * b);
      }
      if (i < n - 1 && road[i + 1] == '1') {
        dp[i][0] = 1e17;
      }
    }
    cout << dp[n - 1][0] << '\n';
  }
  return 0;
}
