#include <bits/stdc++.h>
using namespace std;
const int mxn = 1e3 + 8, N = 8e1 + 5, mod = 1e9 + 7, inf = 0x3f,
          mod2 = 999119999, mod3 = 1000992299, pow1 = 31, pow2 = 53, Sqrt = 317,
          eps = 1e-5;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int t;
  cin >> t;
  while (t--) {
    int n, l;
    cin >> n >> l;
    vector<int> vi(n + 2);
    for (int i = 1; i <= n; i++) cin >> vi[i];
    vi[0] = 0;
    vi[n + 1] = l;
    double st = 0, en = 1e9, mid;
    double first_distance = 0, second_distance = 0;
    int cnt = 1e4;
    while (cnt--) {
      first_distance = second_distance = 0.0;
      mid = (st + en) / 2;
      double first_time = 0, second_time = 0;
      int speed = 1;
      for (int i = 1; i <= n + 1; i++) {
        double curr_time = 1.0 * (vi[i] - vi[i - 1]) / speed;
        if (curr_time + first_time <= mid) {
          first_time += curr_time;
          first_distance = vi[i];
        } else {
          double diff = mid - first_time;
          first_time = mid;
          first_distance += diff * speed;
          break;
        }
        speed++;
      }
      speed = 1;
      for (int i = n; i >= 0; i--) {
        double curr_time = 1.0 * (vi[i + 1] - vi[i]) / speed;
        if (curr_time + second_time <= mid) {
          second_time += curr_time;
          second_distance += (vi[i + 1] - vi[i]);
        } else {
          double diff = mid - second_time;
          second_time = mid;
          second_distance += diff * speed;
          break;
        }
        speed++;
      }
      second_distance = l - fabs(second_distance);
      if (first_distance >= second_distance) {
        en = mid;
      } else {
        st = mid;
      }
    }
    cout << fixed << setprecision(9) << mid << endl;
  }
  return 0;
}
