#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10; 
long long n,l,r,mod=1e9+7;
long long f[N],inv[N];
long long ksm(long long a,long long b){
	long long ans=1;
	while(b){
		if(b&1)ans=ans*a%mod;
	    a=a*a%mod;
	    b=b>>1;
	}
	return ans;
}
void init(){
	f[0]=1;
	inv[0]=1;
	for(int i=1;i<=200000;i++){
		f[i]=f[i-1]*i%mod;
		inv[i]=ksm(f[i],mod-2);
	}
} 
long long C(long long a,long long b){
	if(a<b||b<0)return 0;
	return f[a]*inv[a-b]%mod*inv[b]%mod;
}
void solve() {
	long long x=min(r-n,1-l)+1;

	if(n%2==0) {
		long long h=n/2,ans=0;
		ans=min(r-n,1-l)*C(n,h)%mod; 
		while(1) {
            long long a=min(n,r-x),b=n-max(1ll,l+x)+1,ab=a+b-n;
            if(ab<0)break;//没有交集，不会产生贡献。 
            a-=ab,b-=ab;
            if(a+ab>=h&&b+ab>=h)ans=(ans+C(ab,h-a))%mod;
            x++;
		}
		cout<<ans<<endl;
	}
	else{
		long long h=n/2,ans=0;
		ans=min(r-n,1-l)*((C(n,h)+C(n,h+1))%mod)%mod;
		while(1){
			long long a=min(n,r-x),b=n-max(1ll,l+x)+1,ab=a+b-n;
			if(ab<0)break;
			a-=ab,b-=ab;
			if(a+ab>=h&&b+ab>=h)ans=(ans+(C(ab,h-a)+C(ab,h+1-a))%mod)%mod;
			x++;
		}
		cout<<ans<<endl;
	}

}
int main() {
	init();
	int T;
	cin>>T;
	while(T--) {
		cin>>n>>l>>r;
		solve();
	}
	return 0;
}