#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 5;
const long long inf = 0x3f3f3f3f;
const long long mod = 1e9 + 7;
int main() {
  int T;
  cin >> T;
  while (T--) {
    long long n, len;
    cin >> n >> len;
    vector<long long> a(n);
    for (auto &it : a) cin >> it;
    a.insert(a.begin(), 0);
    a.emplace_back(len);
    n += 2;
    vector<double> pre(n), suff(n);
    for (long long i = 1, last = 0; i < n; last = a[i++]) {
      pre[i] = 1.0 * (a[i] - last) / i;
      pre[i] += pre[i - 1];
    }
    for (long long i = n - 2, last = len; i >= 0; last = a[i--]) {
      suff[i] = 1.0 * (last - a[i]) / (n - 1 - i);
      suff[i] += suff[i + 1];
    }
    double l = 0, r = 2e9, mid;
    auto check = [&](double x) {
      auto pos = lower_bound(pre.begin(), pre.end(), x) - pre.begin();
      double L = a[pos - 1] + pos * (x - pre[pos - 1]);
      pos = lower_bound(suff.rbegin(), suff.rend(), x) - suff.rbegin();
      double R = len - a[n - pos] + pos * (x - suff[n - pos]);
      return L + R >= len;
    };
    while (fabs(r - l) > 1e-7) {
      mid = (l + r) / 2;
      if (check(mid)) {
        r = mid;
      } else {
        l = mid;
      }
    }
    printf("%.10f\n", r);
  }
  return 0;
}
