#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e15;
signed main() {
  long long t;
  cin >> t;
  while (t--) {
    long long n, a, b;
    cin >> n >> a >> b;
    string s;
    cin >> s;
    vector<vector<long long>> dp(n, vector<long long>(2, INF));
    dp[0][0] = a + 2 * b;
    dp[0][1] = 2 * a + 3 * b;
    for (long long i = 1; i < n; i++) {
      if (s[i] == '0') {
        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);
      } else {
        dp[i][0] = INF;
        dp[i][1] = dp[i - 1][1] + a + 2 * b;
      }
    }
    cout << dp.back()[0] << endl;
  }
}
