#include <bits/stdc++.h>
using namespace std;
const int maxN = 2e5 + 10;
const long long oo = 1e18;
char s[maxN];
long long cost[maxN][2];
int main() {
  int test;
  scanf("%d", &test);
  while (test--) {
    int n, a, b;
    scanf("%d%d%d%*c", &n, &a, &b);
    gets(s);
    cost[0][0] = b;
    cost[0][1] = oo;
    for (int i = 0; i < n; i++) {
      if (s[i] == '0') {
        cost[i + 1][0] = min(cost[i][0] + a + b, cost[i][1] + a * 2 + b);
        cost[i + 1][1] = min(cost[i][0] + 2 * (a + b), cost[i][1] + a + b * 2);
      } else {
        cost[i + 1][1] = cost[i][1] + a + b * 2;
        cost[i + 1][0] = oo;
      }
    }
    printf("%lld\n", cost[n][0]);
  }
  return 0;
}
