#include <bits/stdc++.h>
using namespace std;
bool check(long double m, vector<long double> &inp, vector<long double> &inp2,
           long double l) {
  long double temp1, d1 = 0, s1 = 1, t1 = m;
  for (long double i = 0; i < inp.size(); i++) {
    temp1 = (inp[i] - d1) / s1;
    if (temp1 < t1) {
      d1 = inp[i];
      s1++;
      t1 -= temp1;
    } else
      break;
  }
  d1 += s1 * t1;
  long double temp2, d2 = 0, s2 = 1, t2 = m;
  for (long double i = 0; i < inp2.size(); i++) {
    temp2 = (inp2[i] - d2) / s2;
    if (temp2 < t2) {
      d2 = inp2[i];
      s2++;
      t2 -= temp2;
    } else
      break;
  }
  d2 += s2 * t2;
  if ((d1 + d2) >= l) return true;
  return false;
}
void solve() {
  long double n, l;
  cin >> n >> l;
  vector<long double> inp(n, 0), inp2;
  for (long double i = 0; i < n; i++) cin >> inp[i];
  for (long double i = (n - 1); i >= 0; i--) inp2.push_back(l - inp[i]);
  long double low = 0, mid, high = l, ans;
  long double ct = 100;
  while (ct--) {
    mid = (low + high) / 2;
    if (check(mid, inp, inp2, l)) {
      ans = mid;
      high = mid;
    } else
      low = mid;
  }
  cout << setprecision(20) << ans << "\n";
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  long double t;
  cin >> t;
  for (long double i = 1; i <= t; i++) solve();
  return 0;
}
