#include <bits/stdc++.h>
using namespace std;
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t, inp;
  cin >> t;
  cout << fixed << setprecision(16);
  while (t--) {
    int n, l;
    cin >> n >> l;
    vector<long double> t1, a1, s1;
    long double t1curr = 0;
    long double s1curr = 1;
    a1.push_back(0);
    t1.push_back(0);
    s1.push_back(1);
    for (int i = 0; i < n; i++) {
      cin >> inp;
      a1.push_back(inp);
      t1curr += (inp - a1[i]) / s1curr;
      t1.push_back(t1curr);
      s1.push_back(s1curr + 1);
      s1curr++;
    }
    a1.push_back(l);
    t1.push_back(t1curr + (l - a1[n]) / s1curr);
    vector<long double> t2, a2, s2;
    long double t2curr = 0;
    long double s2curr = 1;
    a2.push_back(l);
    t2.push_back(0);
    s2.push_back(1);
    for (int i = 0; i < n; i++) {
      a2.push_back(a1[n - i]);
      t2curr += (a2[i] - a2[i + 1]) / s2curr;
      t2.push_back(t2curr);
      s2.push_back(s2curr + 1);
      s2curr++;
    }
    a2.push_back(0);
    t2.push_back(t2curr + (l - a1[n]) / s2curr);
    for (int i = 0; i < n + 2; i++) {
      if (t2[n + 2 - i - 1] == t1[i]) {
        cout << t2[n + 2 - i - 1] << "\n";
        break;
      } else if (t2[n + 2 - i - 1] < t1[i]) {
        long double v1 = i;
        long double v2 = n + 2 - i;
        long double tleft = t1[i - 1];
        long double tright = t2[n + 2 - i - 1];
        long double startleft = a1[i - 1];
        long double startright = a2[n + 2 - i - 1];
        if (tleft < tright) {
          startleft += (tright - tleft) * v1;
          tright += (startright - startleft) / (v1 + v2);
          cout << tright << "\n";
        } else {
          startright -= (tleft - tright) * v2;
          tleft += (startright - startleft) / (v1 + v2);
          cout << tleft << "\n";
        }
        break;
      }
    }
  }
  return 0;
}
