#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

#define fastio() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define test() int t;cin>>t;for(int test=1;test<=t;test++)
#define pb push_back
#define nl cout<<"\n"
#define F first
#define S second
#define all(x) x.begin(),x.end()

template<class C> void min_self( C &a, C b ){ a = min(a,b); }
template<class C> void max_self( C &a, C b ){ a = max(a,b); }

const ll MOD = 1000000007;
ll mod( ll n, ll m=MOD ){ n%=m,n+=m,n%=m;return n; }

const int MAXN = 1e5+5;
const int LOGN = 21;
const ll INF = 1e14;
int dx[] = {1,0,-1,0};
int dy[] = {0,1,0,-1};

template<class T1, class T2> void add( T1 &x, T2 y, ll m = MOD )
{
    x += y;
    if( x >= m )
        x -= m;
}

template<class T1, class T2> void sub( T1 &x, T2 y, ll m = MOD )
{
    x -= y;
    if( x < 0 )
        x += m;
}

ll c2( ll n )
{
    ll ans = n*(n-1);
    ans /= 2;
    ans = mod( ans );
    return ans;
}

void solve()
{
    ll n,a,b;
    cin>>n>>a>>b;

    if( a > b )
        swap(a,b);

    ll p = n-a-b, q = n-b, r = n-a;

    if( p < 0 )
    {
        cout<<0,nl;
        return;
    }

    ll ans = 0;
    add( ans, mod( mod( (r+1)*(q+1) ) * mod( 2*(p+1)*(p+2) ) ));
    sub( ans, mod( mod( 4 * c2(p+2) ) * c2(p+2) ) );

    cout<<ans,nl;
}

int main() 
{
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
    fastio();

    test()
    {
        solve();
    }    

    cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
    return 0;
}

#include <bits/stdc++.h>
#define INT_MINs -2000000000
#define INT_MAXs 1000000001
#define MID int mid=(l+r)/2
#define REP1(i,x,y) for(int i=x;i<y;i++)
#define REP2(i,x,y) for(int i=x;i<=y;i++)
#define ls (2*k)
#define rs (2*k+1)
#define lson l,mid,2*k
#define rson mid+1,r,2*k+1
#define lc u << 1
#define rc u << 1 | 1
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
#define IOS ios::sync_with_stdio(0);cin.tie(NULL);
#define pb(a) push_back(a)
#define pi acos(-1)
#define pii pair<int,int>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const ll mod=1e9+7;
const int dx[8] = { 0,-1,0,1,-1,-1,1,1}, dy[8] = { 1,0,-1,0,-1,1,-1,1};
ll qk(ll x,ll y){
    ll ans=1;
    while(y){
        if(y&1) ans=ans*x%mod;
        y>>=1;
        x=x*x%mod;
    }
    return ans;
}
void solve(){
    ll n,m,k;
    cin>>n>>m>>k;
    if(n>k+m){
        cout<<0<<endl;
        return;
    }
    ll num=1,num2=1;
    for(ll i=n+m,j=1;i>=n+1;j++,i--){
        num=num*i%mod;
        num2=num2*qk(j,mod-2)%mod;
    }
    num=num*num2%mod;
    ll num3=0,num4=0;
    if(m+k+1<=m+n){
        num3=1,num4=1;
    for(ll i=n+m,j=1;i>=m+k+2;j++,i--){
        num3=num3*i%mod;
        num4=num4*qk(j,mod-2)%mod;
    }
    num3=num3*num4%mod;
    }

    cout<<((num-num3)%mod+mod)%mod<<endl;
}
int main(){
    IOS;
    solve();
    return 0;
}
