#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sl(n) scanf("%lld", &n)
#define for1(i, stop) for(ll i = 1; i <= stop; ++i)
#define ms(n, i) memset(n, i, sizeof(n))
#define pf printf
const ll sz = 110;
ll a[sz], n;
double dp[sz][3*sz];
bool chk[sz][3*sz];
double solve(ll pos, ll c)
{
double &ret = dp[pos][c];
if(chk[pos][c])
return ret;
chk[pos][c] = 1, ret = (pos != 0);
int cnt = 0, nxt = c-a[pos], l = n+1, r = pos;
for(int i = pos+1; i <= n; ++i) {
if(a[i] > nxt) break;
if(a[i] > a[pos]) {
if(l==n+1) l = i;
r = i;
cnt++;
}
}
for(int i = l; i <= r; i++)
ret += (double)1/cnt * solve(i, nxt);
return ret;
}
int main()
{
ll t;
cin >> t;
while(t--) {
ll c;
sl(n), sl(c);
for1(i, n) sl(a[i]);
sort(a+1, a+n+1);
ms(chk, 0);
pf("%0.9f\n", solve(0, c));
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHNsKG4pIHNjYW5mKCIlbGxkIiwgJm4pCiNkZWZpbmUgZm9yMShpLCBzdG9wKSBmb3IobGwgaSA9IDE7IGkgPD0gc3RvcDsgKytpKQojZGVmaW5lIG1zKG4sIGkpIG1lbXNldChuLCBpLCBzaXplb2YobikpCiNkZWZpbmUgcGYgcHJpbnRmCgpjb25zdCBsbCBzeiA9IDExMDsKbGwgYVtzel0sIG47CmRvdWJsZSBkcFtzel1bMypzel07CmJvb2wgY2hrW3N6XVszKnN6XTsKCmRvdWJsZSBzb2x2ZShsbCBwb3MsIGxsIGMpCnsKICAgIGRvdWJsZSAmcmV0ID0gZHBbcG9zXVtjXTsKICAgIGlmKGNoa1twb3NdW2NdKQogICAgICAgIHJldHVybiByZXQ7CgogICAgY2hrW3Bvc11bY10gPSAxLCByZXQgPSAocG9zICE9IDApOwogICAgaW50IGNudCA9IDAsIG54dCA9IGMtYVtwb3NdLCBsID0gbisxLCByID0gcG9zOwoKICAgIGZvcihpbnQgaSA9IHBvcysxOyBpIDw9IG47ICsraSkgewogICAgICAgIGlmKGFbaV0gPiBueHQpIGJyZWFrOwoKICAgICAgICBpZihhW2ldID4gYVtwb3NdKSB7CiAgICAgICAgICAgIGlmKGw9PW4rMSkgbCA9IGk7CiAgICAgICAgICAgIHIgPSBpOwogICAgICAgICAgICBjbnQrKzsKICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCBpID0gbDsgaSA8PSByOyBpKyspCiAgICAgICAgcmV0ICs9IChkb3VibGUpMS9jbnQgKiBzb2x2ZShpLCBueHQpOwoKICAgIHJldHVybiByZXQ7Cn0KCmludCBtYWluKCkKewogICAgbGwgdDsKICAgIGNpbiA+PiB0OwoKICAgIHdoaWxlKHQtLSkgewogICAgICAgIGxsIGM7CiAgICAgICAgc2wobiksIHNsKGMpOwoKICAgICAgICBmb3IxKGksIG4pIHNsKGFbaV0pOwogICAgICAgIHNvcnQoYSsxLCBhK24rMSk7CgogICAgICAgIG1zKGNoaywgMCk7CiAgICAgICAgcGYoIiUwLjlmXG4iLCBzb2x2ZSgwLCBjKSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCg==