#include <bits/stdc++.h>
using namespace std;
int p[10], n, tx[10], ty[10], x[10], y[10], ans, a[10], b[10];
long long a1, a2, a3, a4, a5, a6;
void get(int x, int y, int pp, int &xx, int &yy) {
  if (pp == 0) {
    xx = x;
    yy = y;
  }
  if (pp == 1) {
    xx = -y;
    yy = x;
  }
  if (pp == 2) {
    xx = -x;
    yy = -y;
  }
  if (pp == 3) {
    xx = y;
    yy = -x;
  }
}
long long len(int i, int j) {
  return (tx[i] - tx[j]) * 1ll * (tx[i] - tx[j]) +
         (ty[i] - ty[j]) * 1ll * (ty[i] - ty[j]);
}
int check() {
  for (int i = 1; i <= 4; i++) {
    get(x[i] - a[i], y[i] - b[i], p[i], tx[i], ty[i]);
    tx[i] += a[i];
    ty[i] += b[i];
  }
  for (int i = 1; i <= 4; i++)
    for (int j = i + 1; j <= 4; j++)
      if (tx[i] == tx[j] && ty[i] == ty[j]) return 0;
  a1 = len(1, 2);
  a2 = len(1, 3);
  if (a1 == a2) {
    a3 = len(3, 4);
    a4 = len(2, 4);
    if (a3 == a4 && a3 == a4) {
      a5 = len(4, 1);
      a6 = len(3, 2);
      if (a5 == a6) return 1;
    }
  } else {
    a2 = len(1, 4);
    if (a2 == a1) {
      a3 = len(4, 3);
      a4 = len(2, 3);
      if (a3 == a4 && a2 == a3) {
        a5 = len(3, 1);
        a6 = len(4, 2);
        if (a5 == a6) return 1;
      }
    } else {
      a1 = len(1, 4);
      a2 = len(1, 3);
      if (a2 == a1) {
        a3 = len(4, 2);
        a4 = len(3, 2);
        if (a3 == a4 && a2 == a3) {
          a5 = len(2, 1);
          a6 = len(4, 3);
          if (a5 == a6) return 1;
        }
      }
    }
  }
  return 0;
}
void rec(int v, int k) {
  if (ans == -1 || ans > k)
    ;
  else
    return;
  if (v > 4) {
    if ((ans == -1 || ans > k) && check()) {
      ans = k;
    }
  } else {
    p[v] = 0;
    rec(v + 1, k);
    p[v] = 1;
    rec(v + 1, k + 1);
    p[v] = 2;
    rec(v + 1, k + 2);
    p[v] = 3;
    rec(v + 1, k + 3);
  }
}
int main() {
  scanf("%d", &n);
  for (int j = 1; j <= n; j++) {
    for (int i = 1; i <= 4; i++) {
      scanf("%d %d %d %d", &x[i], &y[i], &a[i], &b[i]);
    }
    ans = -1;
    rec(1, 0);
    printf("%d\n", ans);
  }
  return 0;
}
