#include <bits/stdc++.h>   using namespace std;   vector<long long int> sieve;   vector<long long int> *Sieve(int N) {     const long long int maxn = N;     sieve.resize(maxn);     for (long long int(i) = 0; (i) < (maxn); ++(i)) sieve[i] = 1;     sieve[1] = 0;     sieve[0] = 0;     for (long long int(i) = 2; (i) <= (maxn); (i) += (1))       if (1 == sieve[i])         for (long long int j = i * i; j < maxn; j += i) sieve[j] = 0;     vector<long long int> *primes = new vector<long long int>();     primes->push_back(2);     for (int i = 3; i < maxn; i += 2)       if (sieve[i]) {         primes->push_back(i);       }     return primes;   }   long long int extended_GCD(long long int a, long long int b, long long int &x,                              long long int &y) {     if (a == 0) {       x = 0;       y = 1;       return b;     }     long long int x1, y1;     long long int gcd = extended_GCD(b % a, a, x1, y1);     x = y1 - (b / a) * x1;     y = x1;     return gcd;   }   long long int ncr(long long int n, long long int k) {     long long int r = 1;     if (k > n - k) k = n - k;     for (long long int i = 0; i < k; i++) {       r *= (n - i);       r /= (i + 1);     }     return r;   }   long long int power(long long int a, long long int b,                       long long int m = 1000000007) {     long long int res = 1;     while (b > 0) {       if (b & 1) res = (res * a) % m;       a = (a * a) % m;       b >>= 1;     }     return res;   }   long long int modinv(long long int a, long long int mod = 1000000007) {     long long int x, y;     extended_GCD(a, mod, x, y);     if (x < 0) x += mod;     return x;   }   bool prime(int n) {     int c = 0;     for (int i = 2; (i * i) <= n; i++) {       if (n % i == 0) {         c++;         return false;       }     }     if (c == 0) return true;   }   vector<int> v[200006];   int vis[200006];   int c;   void dfs(int n) {     vis[n] = 1;     c++;     for (int i : v[n]) {       if (!vis[i]) dfs(i);     }   }   int a[100001];   void solve() {     int n, k;     cin >> n >> k;     int a[n];     for (long long int(i) = 0; (i) < (n); ++(i)) cin >> a[i];     int sa = 1, sb = 1;     double ca = 0, cb = k;     int i = 0, j = n - 1;     double ans = 0;     while (i <= j) {       double t1, t2, d1, d2;       d1 = a[i] - ca;       d2 = cb - a[j];       t1 = (double)d1 / sa;       t2 = (double)d2 / sb;       if (t1 <= t2) {         ans += t1;         ca += d1;         i++;         sa++;         cb -= (double)t1 * sb;       } else {         ans += t2;         cb -= d2;         j--;         sb++;         ca += (double)t2 * sa;       }     }     ans += double(cb - ca) / (sa + sb);     cout << fixed << setprecision(10) << ans;     cout <<   n ;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     long long int t;     cin >> t;     while (t--) solve();     return 0;   }   