#include <bits/stdc++.h>
using namespace std;
int n, a, b;
long long f[200010][2];
char s[200010];
void clr() {
  for (int i = 1; i <= n; i++) f[i][0] = f[i][1] = (1ll << 60);
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    scanf("%d%d%d", &n, &a, &b);
    clr();
    scanf("%s", s);
    f[1][0] = b + a;
    f[1][1] = b + a * 2;
    for (int i = 2; i <= n; i++) {
      if (s[i - 1] == '1') {
        f[i][1] = f[i - 1][1] + b * 2 + a;
        continue;
      }
      f[i][1] = min(f[i - 1][1] + b * 2 + a, f[i - 1][0] + b + a * 2);
      f[i][0] = min(f[i - 1][0] + b + a, f[i - 1][1] + b * 2 + a * 2);
    }
    printf("%lld\n", f[n][0] + b);
  }
  return 0;
}
