#include <bits/stdc++.h>
using namespace std;
char s[200000 + 100];
long long dp[200000 + 100][2];
int main() {
  long long n, a, b, t;
  scanf("%lld", &t);
  while (t--) {
    scanf("%lld %lld %lld %s", &n, &a, &b, s);
    memset(dp, 0x3f, sizeof(dp));
    dp[0][0] = b;
    for (long long i = 1; i <= n; i++) {
      if ((s[i] == '0' && s[i - 1] == '0') || i == n)
        dp[i][0] = min(dp[i - 1][1] + 2 * a + b, dp[i - 1][0] + a + b);
      dp[i][1] = min(dp[i - 1][1] + a + 2 * b, dp[i - 1][0] + 2 * a + 2 * b);
    }
    printf("%lld\n", dp[n][0]);
  }
}
