#include <bits/stdc++.h>
using namespace std;
int qx[8] = {-1, 0, 1, 1, 1, 0, -1, -1};
int qy[8] = {1, 1, 1, 0, -1, -1, -1, 0};
string a[253];
int n, m;
int que(int x, int y) {
  int ans = 1;
  queue<pair<int, int> > q;
  pair<int, int> T;
  T.first = x;
  T.second = y;
  a[x][y] = '0';
  q.push(T);
  while (!q.empty()) {
    T = q.front();
    q.pop();
    for (int i = 0; i < 8; i++) {
      pair<int, int> P;
      P.first = T.first + qx[i];
      P.second = T.second + qy[i];
      if (P.first >= 0 && P.second >= 0 && P.first < n && P.second < m &&
          a[P.first][P.second] == '1') {
        ans++;
        a[P.first][P.second] = '0';
        q.push(P);
      }
    }
  }
  return ans;
}
int main() {
  int T;
  scanf("%d", &T);
  for (int O_o = 0; O_o < T; O_o++) {
    scanf("%d%d", &n, &m);
    for (int i = 0; i < n; i++) {
      cin >> a[i];
    }
    int ans = 0;
    for (int i = 0; i < n; i++)
      for (int j = 0; j < m; j++) {
        if (a[i][j] == '1') {
          int o = 1;
          while (o + j < m && a[i][o + j] == '1') o++;
          if (o > 1) {
            int O = 0;
            for (int p = i + 1; p < i + o; p++) {
              if (p >= n) {
                O = 1;
                break;
              }
              if (a[p][j] == '0') {
                O = 1;
                break;
              }
              if (a[p][j + o - 1] == '0') {
                O = 1;
                break;
              }
            }
            if (O == 1) continue;
            for (int p = j + 1; p < j + o; p++)
              if (a[i + o - 1][p] == '0') {
                O = 1;
                break;
              }
            if (O == 1) continue;
            O = que(i, j);
            if (O == 4 * (o - 1)) ans++;
          } else {
            o = 1;
            while (o + j < m && o + i < n && a[o + i][o + j] == '1') o++;
            if (o > 1) {
              int O = 0;
              for (int p = 0; p < o; p++) {
                if (i + o + p - 1 >= n) {
                  O = 1;
                  break;
                }
                if (j - o + p + 1 < 0) {
                  O = 1;
                  break;
                }
                if (j - p < 0) {
                  O = 1;
                  break;
                }
                if (a[i + p][j - p] == '0' ||
                    a[i + o + p - 1][j + p - o + 1] == '0' ||
                    a[i + o + p - 1][j + o - p - 1] == '0') {
                  O = 1;
                  break;
                }
              }
              if (O == 1) continue;
              O = que(i, j);
              if (O == 4 * (o - 1)) ans++;
            }
          }
        }
      }
    printf("%d\n", ans);
  }
  return 0;
}
