#include <bits/stdc++.h>
const int M = 1000000007;
using namespace std;
char s[1000007];
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int x;
    scanf("%d", &x);
    scanf("%s", s);
    bool in = true;
    long long ans = strlen(s);
    for (int i = 0; i < x; i++) {
      long long nxt = (i + 1) + (ans - i - 1 + M) % M * (s[i] - '0');
      long long len = ans - i - 1;
      if (in && len > 0) {
        for (int j = 0; j < len * (s[i] - '1') && ans + j < x; j++) {
          s[ans + j] = s[i + 1 + j % len];
        }
      }
      if (nxt > x) in = false;
      nxt %= M;
      ans = nxt;
    }
    printf("%lld\n", ans);
  }
  return 0;
}
