#include <bits/stdc++.h>
using namespace std;
int test, n, mx, i;
double l, r, m, eps = 0.000001, a[100005];
double pref(double tm) {
  double pos = 0, speed = 1;
  for (int i = 0; i < n; i++) {
    if ((a[i] - pos) <= tm * speed)
      tm -= (a[i] - pos) / speed, pos = a[i], speed += 1;
    else {
      pos += speed * tm;
      tm = 0;
      break;
    }
  }
  pos += speed * tm;
  return pos;
}
double suff(double tm) {
  double pos = mx, speed = 1;
  for (int i = n - 1; i >= 0; i--) {
    if ((pos - a[i]) <= tm * speed)
      tm -= (pos - a[i]) / speed, pos = a[i], speed += 1;
    else {
      pos -= speed * tm;
      tm = 0;
      break;
    }
  }
  pos -= speed * tm;
  return pos;
}
int main() {
  scanf("%d", &test);
  while (test--) {
    cin >> n >> mx;
    for (i = 0; i < n; i++) cin >> a[i];
    l = 0., r = 2000000000.;
    while (r - l > eps) {
      m = (l + r) / 2.;
      if (pref(m) <= suff(m))
        l = m;
      else
        r = m - eps;
    }
    cout << fixed << setprecision(9) << l << "\n";
  }
}
