def test_set_model_params(mock_kmeans):
    model = Mock()
    mock_kmeans.return_value = model

    n_clusters = 5
    n_features = 5
    init = 'k-means++'
    n_init = 1  # Explicit initial center position passed: performing only one init
    kmm = KMeansModel(n_clusters, n_features, init, n_init)

    params = np.random.rand(10).reshape((5, 2))

    kmm.set_model_params(params)

    assert model == kmm._model
    assert np.array_equal(params, kmm._init)
    assert n_init == kmm._n_init
    assert n_features == kmm._n_features
    assert np.array_equal(params, kmm._model.cluster_centers_)
def test_set_model_params_zeros_array(mock_kmeans):
    model = Mock()
    mock_kmeans.return_value = model

    n_clusters = 5
    n_features = 5
    init = 'k-means++'
    n_init = 10
    kmm = KMeansModel(n_clusters, n_features, init, n_init)

    params = np.zeros(10).reshape((5, 2))

    kmm.set_model_params(params)

    assert model == kmm._model
    assert init == kmm._init
    assert n_init == kmm._n_init
    assert n_features == kmm._n_features
    assert np.array_equal(np.zeros((params.shape[0], n_features)),
                          kmm._model.cluster_centers_)