code: def test_data_projection(self):
      data = [[1, 1], [2, 2], [3, 3]]
      projection = testable_gmeans.get_data_projection(data, [2, 2])
      self.assertEqual([0.5, 1.0, 1.5], projection.tolist())
  
      projection = testable_gmeans.get_data_projection(data, [1, 1])
      self.assertEqual([1.0, 2.0, 3.0], projection.tolist())
  
imports: import unittest
  import matplotlib
  from pyclustering.cluster.tests.gmeans_templates import gmeans_test_template
  from pyclustering.cluster.gmeans import gmeans
  from pyclustering.utils import read_sample, distance_metric, type_metric
  from pyclustering.samples.definitions import SIMPLE_SAMPLES, FCPS_SAMPLES, SIMPLE_ANSWERS
label_desc: Use image node_id 1 for calling the gmeans_unit_test obj's underlying member method code with example usage: obj.test_data_projection() without return types