#include <bits/stdc++.h>
using namespace std;
const int N = 1000 * 1000 + 10;
int f[N];
double t1[N], t2[N];
int main() {
  int o;
  cin >> o;
  while (o--) {
    int n, l;
    cin >> n >> l;
    f[0] = 0;
    for (int i = 1; i < n + 1; i++) cin >> f[i];
    f[n + 1] = l;
    t1[0] = 0;
    t2[n + 1] = 0;
    for (int i = 1; i < n + 2; i++)
      t1[i] = t1[i - 1] + 1.0 * (f[i] - f[i - 1]) / (i);
    for (int i = n; i >= 0; i--)
      t2[i] = t2[i + 1] + 1.0 * (f[i + 1] - f[i]) / (n - i + 1);
    int pos = 0;
    for (int i = 0; i < n + 2; i++)
      if (i <= n && t1[i] < t2[i] && t1[i + 1] > t2[i + 1]) {
        pos = i;
        break;
      } else if (t1[i] == t2[i]) {
        cout << fixed << setprecision(6) << t1[i] << endl;
        return 0;
      }
    double diff = max(t1[pos], t2[pos + 1]) - min(t1[pos], t2[pos + 1]);
    double dist = f[pos + 1] - f[pos];
    if (t1[pos] < t2[pos + 1])
      dist -= diff * (pos + 1);
    else if (t1[pos] > t2[pos + 1])
      dist -= diff * (n - pos + 1);
    double ans =
        max(t1[pos], t2[pos + 1]) + 1.0 * dist / (pos + (n - pos + 1 + 1));
    cout << fixed << setprecision(6) << ans << endl;
  }
  return 0;
}
