code: def test_vq(self):
      initc = np.concatenate([[X[0]], [X[1]], [X[2]]])
      for tp in [np.asarray, matrix]:
          label1, dist = _vq.vq(tp(X), tp(initc))
          assert_array_equal(label1, LABEL1)
          tlabel1, tdist = vq(tp(X), tp(initc))
  
imports: import warnings
  import sys
  import numpy
  from numpy.testing import assert_array_equal, assert_allclose, assert_equal, assert_, suppress_warnings
  import pytest
  from pytest import raises
  from scipy.cluster.vq import kmeans, kmeans2, py_vq, vq, whiten, ClusterError, _krandinit
  from scipy.cluster import _vq
  from scipy.conftest import array_api_compatible, skip_if_array_api, skip_if_array_api_gpu
  from scipy.sparse._sputils import matrix
  from scipy._lib._array_api import SCIPY_ARRAY_API, copy, cov, xp_assert_close, xp_assert_equal
label_desc: Use image node_id 2 for calling the TestVq obj's underlying member method code with example usage: obj.test_vq() without return types