def test_fit_initialization_count(self, _, n_init): data, labels = make_blobs() clusterer = Possibilistic(2, n_init=n_init) clusterer.initialization = MagicMock( return_value=initialize_random(data, 2)) clusterer.fit(data) self.assertEqual(clusterer.initialization.call_count, n_init)
def test_membership_calculation_range(self, _, clusters, features): data, labels = make_blobs(centers=clusters, n_features=features) clusterer = Possibilistic(clusters) clusterer.converge(data) self.assertTrue( np.all(clusterer.memberships > 0) and np.all(clusterer.memberships < 1))
def test_fit_correct_assignment(self, _, n_init): data, labels = make_blobs() clusterer = Possibilistic(2, n_init=n_init) j_list = clusterer.fit(data) self.assertEqual(min(j_list), clusterer.objective(data))
def test_fit_converge_count(self, _, n_init): data, labels = make_blobs() clusterer = Possibilistic(2, n_init=n_init) clusterer.converge = MagicMock() clusterer.fit(data) self.assertEqual(clusterer.converge.call_count, n_init)
def test_center_calculation_shape(self, _, clusters, features, expected): data, labels = make_blobs(centers=clusters, n_features=features) clusterer = Possibilistic(clusters) clusterer.update(data) self.assertEqual(clusterer.calculate_centers(data).shape, expected)
def test_first_update_assigns_membership_shape(self, _, clusters, features, expected_shape): data, labels = make_blobs(centers=clusters, n_features=features) clusterer = Possibilistic(clusters) clusterer.update(data) self.assertEqual(clusterer.memberships.shape, expected_shape)
def test_converge_update_count(self, _, n_iter): data, labels = make_blobs() clusterer = Possibilistic(2, max_iter=n_iter) clusterer.update = MagicMock() clusterer.converge(data) self.assertLessEqual(clusterer.update.call_count, n_iter)