#include <bits/stdc++.h>
using namespace std;
const int maxN = 100005;
long double a[maxN], f[maxN], g[maxN];
int main() {
  int t, n, l;
  cin >> t;
  while (t--) {
    cin >> n >> l;
    for (int i = 1; i <= n; i++) cin >> a[i];
    a[0] = 0;
    f[0] = 0;
    a[n + 1] = l;
    for (int i = 1; i <= n + 1; i++) {
      f[i] = f[i - 1] + (a[i] - a[i - 1]) / i;
    }
    g[n + 1] = 0;
    for (int i = n; i >= 0; i--) {
      g[i] = g[i + 1] + (a[i + 1] - a[i]) / (n - i + 1);
    }
    int ans = -1;
    for (int i = 0; i <= n + 1; i++) {
      if (g[i] <= f[i]) {
        ans = i;
        break;
      }
    }
    long double time;
    if (f[ans - 1] <= g[ans]) {
      time = g[ans] +
             (a[ans] - a[ans - 1] - ans * (g[ans] - f[ans - 1])) / (n + 2);
    } else {
      int m = time = f[ans - 1] + (a[ans] - a[ans - 1] -
                                   (f[ans - 1] - g[ans]) * (n - ans + 2)) /
                                      (n + 2);
    }
    cout << setprecision(10) << time << endl;
  }
  return 0;
}
