#include <bits/stdc++.h>
using namespace std;
bool sortbysec(const pair<int, int> &a, const pair<int, int> &b) {
  return (a.second < b.second);
}
bool sortbysec_2(const pair<string, int> &a, const pair<string, int> &b) {
  return (a.second < b.second);
}
bool sortinrev(const pair<int, int> &a, const pair<int, int> &b) {
  return (a.first > b.first);
}
bool sortbysecdesc(const pair<int, int> &a, const pair<int, int> &b) {
  return a.second > b.second;
}
double distance(int x1, int y1, int x2, int y2) {
  return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) * 1.0);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  while (t--) {
    int x;
    cin >> x;
    string second;
    cin >> second;
    long long int m = second.size(), l = 0;
    vector<char> c;
    for (int i = 0; i < second.size(); i++) {
      c.push_back(second[i]);
    }
    for (int i = 0; i < x; i++) {
      m = ((i + 1) + ((m - (i + 1)) % 1000000007 * (c[i] - '0') % 1000000007)) %
          1000000007;
      if (c.size() < x) {
        c.push_back(c[i + 1]);
      }
    }
    cout << m << endl;
  }
}
