def __init__(self, features, tolerant=False, sparse=True): # Upgrade `features` to `Feature` instances. features = list(map(make_feature, features)) if tolerant: self.evaluator = TolerantFeatureEvaluator(features) else: self.evaluator = FeatureEvaluator(features) self.flattener = FeatureMappingFlattener(sparse=sparse)
def test_returns_tuples_of_features_length(self): features = [DumbFeatureA, DumbFeatureA] ev = FeatureEvaluator(features) ev.fit(SAMPLES) Xt = ev.transform(SAMPLES) x = next(Xt) self.assertIsInstance(x, tuple) self.assertEqual(len(x), len(features))
def test_fit_transform_does_both_things(self): ev = FeatureEvaluator([DumbFeatureA]) Xt_1 = ev.fit_transform(SAMPLES) Xt_2 = ev.transform(SAMPLES) self.assertListEqual(list(Xt_1), list(Xt_2))
def test_returns_as_many_tuples_as_samples(self): ev = FeatureEvaluator([DumbFeatureA]) ev.fit(SAMPLES) Xt = ev.transform(SAMPLES) self.assertEqual(len(list(Xt)), len(SAMPLES))
def test_returns_generator(self): ev = FeatureEvaluator([DumbFeatureA]) ev.fit([]) Xt = ev.transform([]) self.assertIsInstance(Xt, types.GeneratorType)
def test_fit_creates_alive_features_tuple(self): ev = FeatureEvaluator([DumbFeatureA]) self.assertFalse(hasattr(ev, 'alive_features')) ev.fit([]) self.assertTrue(hasattr(ev, 'alive_features'))