#include <bits/stdc++.h>
using namespace std;
template <typename Arg1>
void pn(Arg1&& arg1) {
  cout << arg1 << "\n";
}
template <typename Arg1, typename... Args>
void pn(Arg1&& arg1, Args&&... args) {
  cout << arg1 << "\n";
  pn(args...);
}
template <typename Arg1>
void ps(Arg1&& arg1) {
  cout << arg1 << " ";
}
template <typename Arg1, typename... Args>
void ps(Arg1&& arg1, Args&&... args) {
  cout << arg1 << " ";
  ps(args...);
}
template <typename Arg1>
void rn(Arg1&& arg1) {
  cin >> arg1;
}
template <typename Arg1, typename... Args>
void rn(Arg1&& arg1, Args&&... args) {
  cin >> arg1;
  rn(args...);
}
template <typename T>
inline T GCD(T a, T b) {
  while (b != 0) swap(b, a %= b);
  return a;
}
template <typename T>
T binpow(T a, T b) {
  T res = (T)1;
  if (b == (T)0) {
    return (T)1;
  }
  while (b > (T)0) {
    if (b & (T)1) {
      res *= a;
    }
    a *= a;
    b /= (T)2;
  }
  return res;
}
void solve() {
  long long n, c0, c1, h;
  cin >> n >> c0 >> c1 >> h;
  string s;
  cin >> s;
  long long a = 0;
  for (long long i = 0; i < n; i++) {
    if (s[i] == '1') {
      a += 1;
    }
  }
  long long b = n - a, ans = 1e9 + 7;
  for (long long i = a; i < n + 1; i++) {
    ans = min(ans, (i - a) * h + (i)*c1 + (n - i) * c0);
  }
  for (long long i = a; i >= 0; i--) {
    ans = min(ans, (a - i) * h + i * c1 + (n - i) * c0);
  }
  pn(ans);
}
int main() {
  clock_t z = clock();
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long t;
  cin >> t;
  while (t--) {
    solve();
  }
  fprintf(stderr, "Total Time: %.7f\n", (double)(clock() - z) / CLOCKS_PER_SEC),
      fflush(stderr);
  return 0;
}
