#include <bits/stdc++.h>
const long long N = 1e6 + 10;
const long long mod = 1e9 + 7;
const long long inf = 1e17;
using namespace std;
long long dx[] = {1, 0, 1};
long long dy[] = {1, 1, 0};
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t;
  cin >> t;
  while (t--) {
    long long n, a, b;
    cin >> n >> a >> b;
    string s;
    cin >> s;
    s += '0';
    vector<vector<long long> > dp(n + 1, vector<long long>(2, inf));
    dp[0][0] = b;
    for (long long i = 0; i < n; i++) {
      for (long long j = 0; j < 2; j++) {
        dp[i + 1][1] = min(dp[i + 1][1], dp[i][j] + 2 * b + (1 - j) * a);
        if (s[i] == '0' && s[i + 1] == '0') {
          dp[i + 1][0] = min(dp[i + 1][0], dp[i][j] + b + j * a);
        }
      }
    }
    cout << dp[n][0] + n * a << endl;
  }
}
