#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
typedef long long ll;
#define prDouble(x) cout<<fixed<<setprecision(10)<<x
#define test ll t;cin>>t;while(t--)
#define f first
#define s second
#define pb push_back
#define pop pop_back
#define int long long int
#define all(x) x.begin(), x.end()
#define allr(x) x.rbegin(), x.rend()
#define mod 1000000007
#define inf 1LL<<60
void init_code(){
   
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif 
}
int32_t main()
{
   fast;
   init_code();
   int n,a,b;
   string str;
   test
   {
     cin>>n>>a>>b;
     cin>>str;
     int ans1=a+b;
      ans1=ans1*n;
      int ans2=0;
      int one=0;
      for(int i=0;i<n;i++)
      {
      	if(str[i]=='0')
      	{
      		int prev=i;
      		while(str[i]=='0')
      			i++;
               i--;
      		ans2+=(i-prev+1)*a+b;
      	}
      	else if(str[i]=='1')
           one++;
      }
      if(one!=0)
      ans2+=one*a+b;

      int ans3=0;
      int zero=0;
      for(int i=0;i<n;i++)
      {
      	if(str[i]=='1')
      	{
      		int prev=i;
      		while(str[i]=='1')
      			i++;
               i--;
      		ans3+=(i-prev+1)*a+b;
      	}
      	else if(str[i]=='0')
           zero++;
      }
       if(zero!=0)
      ans3+=zero*a+b;
    // cout<<ans1<<" "<<ans2<<" "<<ans3<<":";
     cout<<max(ans1,max(ans2,ans3))<<"\n";


   }
	return 0;
}