#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
const int mod = 998244353;
int main() {
  int t;
  cin >> t;
  while (t--) {
    long long n, a, b;
    cin >> n >> a >> b;
    string second;
    cin >> second;
    vector<vector<long long>> dp(2, vector<long long>(n + 1, -1));
    dp[1][0] = INF;
    dp[0][0] = b;
    for (int i = 1; i <= n; i++) {
      if (second[i] == '1') {
        dp[0][i] = INF;
        dp[0][i + 1] = INF;
      }
      dp[1][i] = max(dp[1][i],
                     min(dp[1][i - 1] + a + 2 * b, dp[0][i - 1] + 2 * a + b));
      dp[0][i] = max(dp[0][i],
                     min(dp[0][i - 1] + a + b, dp[1][i - 1] + 2 * a + 2 * b));
    }
    cout << dp[0][n] << endl;
  }
  return 0;
}
