#include <bits/stdc++.h>
using namespace std;
double alto, ancho, altomesa, anchomesa, ancho1, alto1, x_1, x_2, y_1, y_2;
double abajo() {
  if (altomesa <= y_1) return 0;
  return altomesa - y_1;
}
double arriba() {
  if (altomesa <= alto - y_2) return 0;
  return altomesa - (alto - y_2);
}
double izquierda() {
  if (anchomesa <= x_1) return 0;
  return anchomesa - x_1;
}
double derecha() {
  if (anchomesa <= ancho - x_2) return 0;
  return anchomesa - (ancho - x_2);
}
void solve() {
  cin >> ancho >> alto;
  cin >> x_1 >> y_1 >> x_2 >> y_2;
  cin >> anchomesa >> altomesa;
  ancho1 = x_2 - x_1, alto1 = y_2 - y_1;
  if (ancho1 + anchomesa > ancho && alto1 + altomesa > alto) {
    cout << -1;
    return;
  }
  double ans = 100000000;
  if (ancho1 + anchomesa <= ancho) {
    ans = min(ans, izquierda());
    ans = min(ans, derecha());
  }
  if (alto1 + altomesa <= alto) {
    ans = min(ans, arriba());
    ans = min(ans, abajo());
  }
  printf("%.6f", ans);
}
int main() {
  int T = 1;
  cin >> T;
  cout << "\n";
  while (T--) solve(), cout << "\n";
  return 0;
}
