// I. A sky full of stars
#include<bits/stdc++.h>
using namespace std;
#define io ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
void solve() {
long long n;
long double l, r;
cin >> n >> l >> r;
vector<pair<long long, long long>> v(n);
for (int i = 0; i < n; ++i) {
cin >> v[i].first >> v[i].second;
}
long long count = 0;
for (int i = 0; i + 2 < n; ++i) {
for (int j = i + 1; j + 1 < n; ++j) {
for (int k = j + 1; k < n; ++k) {
long long a = (v[i].first - v[j].first)*(v[i].first - v[j].first) + (v[i].second - v[j].second)*(v[i].second - v[j].second);
long long b = (v[j].first - v[k].first)*(v[j].first - v[k].first) + (v[j].second - v[k].second)*(v[j].second - v[k].second);
long long c = (v[k].first - v[i].first)*(v[k].first - v[i].first) + (v[k].second - v[i].second)*(v[k].second - v[i].second);
long long watr = max({a, b, c});
long long dl3 = min({a, b, c});
long long elbaky = a + b + c - watr - dl3;
if (dl3 + elbaky == watr) {
long double area = 0.5 * 0.5 * dl3 * elbaky;
if (l * l <= area && area <= r * r) {
count++;
}
}
}
}
}
cout << count << "\n";
}
int main() {
freopen("points.in", "r", stdin);
// freopen("test.out", "wt", stdout);
io;
long long tests = 1;
cin >> tests;
while (tests--) {
solve();
}
return 0;
}
Ly8gIEkuIEEgc2t5IGZ1bGwgb2Ygc3RhcnMKCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGlvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKTsKCnZvaWQgc29sdmUoKSB7CiAgbG9uZyBsb25nIG47CiAgbG9uZyBkb3VibGUgbCwgcjsKICBjaW4gPj4gbiA+PiBsID4+IHI7CiAgdmVjdG9yPHBhaXI8bG9uZyBsb25nLCBsb25nIGxvbmc+PiB2KG4pOwogIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICBjaW4gPj4gdltpXS5maXJzdCA+PiB2W2ldLnNlY29uZDsKICB9CiAgbG9uZyBsb25nIGNvdW50ID0gMDsKICBmb3IgKGludCBpID0gMDsgaSArIDIgPCBuOyArK2kpIHsKICAgIGZvciAoaW50IGogPSBpICsgMTsgaiArIDEgPCBuOyArK2opIHsKICAgICAgZm9yIChpbnQgayA9IGogKyAxOyBrIDwgbjsgKytrKSB7CiAgICAgICAgbG9uZyBsb25nIGEgPSAodltpXS5maXJzdCAtIHZbal0uZmlyc3QpKih2W2ldLmZpcnN0IC0gdltqXS5maXJzdCkgKyAodltpXS5zZWNvbmQgLSB2W2pdLnNlY29uZCkqKHZbaV0uc2Vjb25kIC0gdltqXS5zZWNvbmQpOwogICAgICAgIGxvbmcgbG9uZyBiID0gKHZbal0uZmlyc3QgLSB2W2tdLmZpcnN0KSoodltqXS5maXJzdCAtIHZba10uZmlyc3QpICsgKHZbal0uc2Vjb25kIC0gdltrXS5zZWNvbmQpKih2W2pdLnNlY29uZCAtIHZba10uc2Vjb25kKTsKICAgICAgICBsb25nIGxvbmcgYyA9ICh2W2tdLmZpcnN0IC0gdltpXS5maXJzdCkqKHZba10uZmlyc3QgLSB2W2ldLmZpcnN0KSArICh2W2tdLnNlY29uZCAtIHZbaV0uc2Vjb25kKSoodltrXS5zZWNvbmQgLSB2W2ldLnNlY29uZCk7CiAgICAgICAgbG9uZyBsb25nIHdhdHIgPSBtYXgoe2EsIGIsIGN9KTsKICAgICAgICBsb25nIGxvbmcgZGwzID0gbWluKHthLCBiLCBjfSk7CiAgICAgICAgbG9uZyBsb25nIGVsYmFreSA9IGEgKyBiICsgYyAtIHdhdHIgLSBkbDM7CiAgICAgICAgaWYgKGRsMyArIGVsYmFreSA9PSB3YXRyKSB7CiAgICAgICAgICBsb25nIGRvdWJsZSBhcmVhID0gMC41ICogMC41ICogZGwzICogZWxiYWt5OwogICAgICAgICAgaWYgKGwgKiBsIDw9IGFyZWEgJiYgYXJlYSA8PSByICogcikgewogICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KICBjb3V0IDw8IGNvdW50IDw8ICJcbiI7Cn0KCmludCBtYWluKCkgewogIGZyZW9wZW4oInBvaW50cy5pbiIsICJyIiwgc3RkaW4pOwogIC8vIGZyZW9wZW4oInRlc3Qub3V0IiwgInd0Iiwgc3Rkb3V0KTsKICBpbzsKICBsb25nIGxvbmcgdGVzdHMgPSAxOwogIGNpbiA+PiB0ZXN0czsKICB3aGlsZSAodGVzdHMtLSkgewogICAgc29sdmUoKTsKICB9CiAgcmV0dXJuIDA7Cn0=