#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int Min(int a, int b) {
  if (a < b) return a;
  return b;
}
int Max(int a, int b) { return a + b - Min(a, b); }
int pre[1000005];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t, n, x, i;
  string s;
  cin >> t;
  while (t > 0) {
    cin >> x;
    cin >> s;
    int l = 0;
    while (l < x) {
      if (l == s.size()) break;
      if (s[l] == '1') {
        l += 1;
        continue;
      } else if (s[l] == '2')
        s += s.substr(l + 1, s.size());
      else
        s += (s.substr(l + 1, s.size()) + s.substr(l + 1, s.size()));
      l += 1;
      if (s.size() >= x) break;
    }
    long long rj = s.size();
    for (i = l; i < x; i++) {
      if (i == s.size()) break;
      long long pom = rj - i - 1;
      pom = (pom * (s[i] - '1')) % 1000000007;
      rj = (rj + pom) % 1000000007;
    }
    cout << (rj + 1000000007) % 1000000007 << endl;
    t -= 1;
  }
  return 0;
}
