#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
void solve() {
  long long n, l;
  cin >> n >> l;
  vector<double> a(n);
  for (long long i = 0; i < n; i++) {
    cin >> a[i];
  }
  vector<double> b(n);
  for (long long i = 0; i < n; i++) {
    b[i] = l - a[i];
  }
  reverse(b.begin(), b.end());
  auto check = [&](double mid, vector<double> &x) {
    double distance = 0.0;
    double speed = 1.0;
    x.push_back(l);
    for (long long i = 0; i < x.size(); i++) {
      double diff = x[i] - distance;
      double time = diff / speed;
      if (mid <= time) {
        distance += mid * speed;
        break;
      } else {
        mid -= diff / speed;
        distance = x[i];
        speed += 1.0;
      }
    }
    x.pop_back();
    return distance;
  };
  double left = 0;
  double right = 1.0 * 1e9 + 10;
  while (abs(left - right) > eps) {
    double mid = left + (right - left) / 2.0;
    double loc1 = check(mid, a);
    double loc2 = l - check(mid, b);
    if (abs(left - right) <= eps) break;
    if (loc2 <= loc1) {
      right = mid;
    } else {
      left = mid;
    }
  }
  cout << fixed << setprecision(6) << (left + right) / 2.0 << "\n";
}
signed main() {
  ios_base::sync_with_stdio(false);
  long long tt;
  cin >> tt;
  while (tt--) {
    solve();
  }
  return 0;
}
