def test_digits_greedi_ln_sparse():
    model1 = FeatureBasedSelection(100, 'sqrt')
    model2 = FeatureBasedSelection(100, 'log')
    model = MixtureSelection(100, [model1, model2], [1.0, 0.3],
                             optimizer='greedi',
                             optimizer_kwds={
                                 'optimizer1': 'lazy',
                                 'optimizer2': 'naive'
                             },
                             random_state=0)
    model.fit(X_digits_sparse)
    assert_array_equal(model.ranking[:85], digits_greedi_ranking[:85])
    assert_array_almost_equal(model.gains[:85], digits_greedi_gains[:85], 4)
    assert_array_almost_equal(model.subset,
                              X_digits_sparse[model.ranking].toarray())
def test_digits_sqrt_sieve_minibatch():
    model1 = FeatureBasedSelection(100, 'sqrt')
    model2 = FeatureBasedSelection(100, 'log')
    model = MixtureSelection(100, [model1, model2], [1.0, 0.3], random_state=0)
    model.partial_fit(X_digits[:300])
    model.partial_fit(X_digits[300:500])
    model.partial_fit(X_digits[500:])
    assert_array_equal(model.ranking, digits_sieve_ranking)
    assert_array_almost_equal(model.gains, digits_sieve_gains, 4)
    assert_array_almost_equal(model.subset, X_digits[model.ranking])