#include<bits/stdc++.h>
using namespace std;
const int N = 4e5 + 7;
typedef long long LL;
const int MOD = 1e9 + 7;
LL iv[N], sum[N], a[N];
inline LL read() {
LL val = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
val = val * 10 + ch - '0';
ch = getchar();
}
return val * f;
}
inline void prints(LL val) {
if (val < 0) {
putchar('-');
val = -val;
}
if (val > 9) prints(val / 10);
putchar(val % 10 + '0');
}
inline void print(LL val, bool t=true) {
prints(val);
if (t) putchar('\n');
else putchar(' ');
}
void init () {
iv[1] = 1;
for (int i = 2; i < N; i++) {
iv[i] = (MOD - MOD / i) * iv[MOD % i] % MOD;
}
}
void solve() {
int n = read();
LL ret = 0, sub = 0;
for (int i = 1; i <= n; i++) a[i] = read();
for (int i = 1; i <= n; i++) sum[i] = (sum[i - 1] + a[i]) % MOD;
for (int i = 1; i <= n; i++) {
ret = (ret + (sum[n] * i - sub) % MOD * iv[i] % MOD + MOD) % MOD;
sub = (sub + sum[i] + sum[n] - sum[n - i] + MOD) % MOD;
}
ret = (ret * iv[n] % MOD * iv[n + 1] % MOD * 2) % MOD;
print(ret);
}
int main() {
init();
int T = read();
while (T--)
solve();
return 0;
}