#include <bits/stdc++.h>

using namespace std;

// a + (a+1) + ... + b
long sum(const long &a, const long &b) { return (a + b) * (b - a + 1) / 2; }

int main() {
  int T;
  cin >> T;
  while (T--) {
    long L, R;
    cin >> L >> R;
    const long minC = L;
    const long maxC = R - L;
    if (minC > maxC) {
      cout << 0 << endl;
    } else {
      cout << sum(R - maxC - L + 1, R - minC - L + 1) << endl;
    }
  }
  return 0;
}

//コンパイラ最適化
#pragma GCC optimize("Ofast")

//インクルードなど
#include<bits/stdc++.h>

using namespace std;

//エイリアス
using ll = long long;
using ld = long double;
using Graph = vector<vector<ll>>;

//イテレーション
#define REP(i,n) for(ll i=0;i<ll(n);i++)
#define REPD(i,n) for(ll i=n-1;i>=0;i--)
#define FOR(i,a,b) for(ll i=a;i<=ll(b);i++)
#define FORD(i,a,b) for(ll i=a;i>=ll(b);i--)
#define FORA(i,I) for(const auto& i:I)
//x:コンテナ
#define ALL(x) x.begin(),x.end()
#define SIZE(x) ll(x.size())
//定数
#define INF32 2147483647 //2.147483647×10^{9}:32bit整数のinf
#define INF64 9223372036854775807 //9.223372036854775807×10^{18}:64bit整数のinf
#define MOD 1000000007 //10^9+7:合同式の法 問題による
#define MAXR 100000 //10^5:配列の最大のrange
#define DDD fixed << setprecision(20)
//略記
//#define F first
//#define S second

//グリッドの各方向に対する差分配列
const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};
const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};

//myceil : a/b 以上の最小整数(負の数対応)
//myfloor: a/b 以下の最大整数(負の数対応)
ll myceil(ll a,ll b){if(a%b==0)return a/b;ll cnt=0;if(a<0){a=-a;cnt++;}if(b<0){b=-b;cnt++;}if(cnt%2==0)return(a+(b-1))/b;return-(a/b);}
ll myfloor(ll a,ll b){if(a%b==0)return a/b;ll cnt=0;if(a<0){a=-a;cnt++;}if(b<0){b=-b;cnt++;}if(cnt%2==0)return a/b;return-(a+(b-1))/b;}
// myupper: nで割り切れる a以上の最小整数(n: 負の数未対応)
// mylower: nで割り切れる a以下の最大整数(n: 負の数未対応)
ll myupper(ll a, ll n){if(a%n == 0) return a;if(a > 0) return a+n-a%n;if(a < 0) return a-a%n;return a;}
ll mylower(ll a, ll n){if(a%n == 0) return a;if(a < 0) return a-n-a%n;if(a > 0) return a-a%n;return a;}

/*
#include<boost/multiprecision/cpp_dec_float.hpp>
// 精度を落とすキャストは明示 : static_cast<型>(変数)
using namespace boost::multiprecision;
using f50 = cpp_dec_float_50;
using f100 = cpp_dec_float_100;
*/

signed main(){
  ll t; cin >> t;
  REP(i, t){
    ll l, r; cin >> l >> r;
    if(l <= r-l && r-l <= r) cout << (r-2*l+1)*(r-2*l+2)/2 << endl;
    else cout << 0 << endl;
  }

  return 0;
}
