#include <bits/stdc++.h>
using namespace std;
long double PI = acosl(-1);
bool compare_int(int a, int b) { return (a > b); }
bool compare_string(string a, string b) { return a.size() < b.size(); }
bool compare_pair(const pair<int, int> &a, const pair<int, int> &b) {
  if (a.second == b.second)
    return a.first < b.first;
  else
    return (a.second > b.second);
}
bool cmp(pair<string, int> x, pair<string, int> y) {
  return (x.second < y.second);
}
void NA() {
  printf("NO\n");
  exit(0);
}
void YA() {
  printf("YES\n");
  exit(0);
}
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t;
  cin >> t;
  while (t--) {
    int n, x;
    cin >> n;
    vector<int> a;
    deque<int> odd, even;
    for (int i = 0; i < n; i++) {
      cin >> x;
      a.push_back(x);
      x % 2 == 0 ? even.push_back(i) : odd.push_back(i);
    }
    int sz1 = even.size();
    int sz2 = odd.size();
    if (abs(sz1 - sz2) > 1)
      cout << -1 << "\n";
    else {
      long long int tot = 0;
      vector<int> ans;
      if (even.size() > odd.size()) {
        while (even.size() > 0 or odd.size() > 0) {
          if (!even.empty()) {
            int x = even.front();
            even.pop_front();
            ans.push_back(x);
          }
          if (!odd.empty()) {
            int x = odd.front();
            odd.pop_front();
            ans.push_back(x);
          }
        }
        for (int i = 0; i < ans.size(); i++) {
          tot += abs(ans[i] - i);
        }
        cout << tot / 2 << "\n";
      } else if (odd.size() > even.size()) {
        while (even.size() > 0 or odd.size() > 0) {
          if (!odd.empty()) {
            int x = odd.front();
            odd.pop_front();
            ans.push_back(x);
          }
          if (!even.empty()) {
            int x = even.front();
            even.pop_front();
            ans.push_back(x);
          }
        }
        for (int i = 0; i < ans.size(); i++) {
          tot += abs(ans[i] - i);
        }
        cout << tot / 2 << "\n";
      } else {
        deque<int> ev, od;
        long long int sum1 = 0, sum2 = 0;
        while (even.size() > 0 or odd.size() > 0) {
          int x = even.front();
          even.pop_front();
          int y = odd.front();
          odd.pop_front();
          ans.push_back(x);
          ans.push_back(y);
          ev.push_back(x);
          od.push_back(y);
        }
        for (int i = 0; i < ans.size(); i++) {
          sum1 += abs(ans[i] - i);
        }
        ans.clear();
        while (ev.size() > 0 or od.size() > 0) {
          int y = ev.front();
          ev.pop_front();
          int x = od.front();
          od.pop_front();
          ans.push_back(x);
          ans.push_back(y);
        }
        for (int i = 0; i < ans.size(); i++) {
          sum2 += abs(ans[i] - i);
        }
        tot = min(sum1, sum2);
        cout << tot / 2 << "\n";
      }
    }
  }
}
