#include using namespace std; const int mod = 1000000007; inline int qp(int a, int b) { int res = 1; while (b) { if (b & 1) res = 1ll * res * a % mod; a = 1ll * a * a % mod; b >>= 1; } return res; } const int N = 2000005; int inv[N], ps[N]; inline int calc(int l, int r) { if (l > r) return 0; return (ps[r] - ps[l - 1] + mod) % mod; } inline int Det(int a, int b, int c, int d) { return (1ll * a * d + 1ll * (mod - b) * c) % mod; } int main() { inv[1] = 1; for (int i = 2; i < N; i++) inv[i] = 1ll * (mod - mod / i) * inv[mod % i] % mod; for (int i = 1; i < N; i++) ps[i] = (ps[i - 1] + inv[i]) % mod; int T; scanf("%d", &T); while (T--) { int n, x, y; scanf("%d%d%d", &n, &x, &y); if (x == y) { puts("0"); continue; } int a11 = 1; int a12 = 1ll * (mod - inv[n - y + 1]) * (y - 1) % mod; int a13 = (1ll * calc(n - y + 2, n - 1) * n + (y >= 2 ? 1 : 0)) % mod; int a21 = 1ll * (mod - inv[y]) * (n - y) % mod; int a22 = 1; int a23 = (1ll * calc(y + 1, n - 1) * n + (y < n ? 1 : 0)) % mod; int A = 1ll * qp(Det(a11, a12, a21, a22), mod - 2) * Det(a13, a12, a23, a22) % mod; int B = 1ll * qp(Det(a11, a12, a21, a22), mod - 2) * Det(a11, a13, a21, a23) % mod; int ans = 0; if (x < y) { ans = (1ll * B * inv[n - y + 1] + 1 + calc(n - y + 2, n - x)) % mod; } else { ans = (1ll * A * inv[y] + 1 + calc(y + 1, x - 1)) % mod; } printf("%d\n", ans); } return 0; }