class TestKnnClassifier(unittest.TestCase): def setUp(self): algorithm = CoverTreeAlgorithm(euclidian_distance) self.classifier = KNNClassifier(algorithm, NEIGHBOURS_COUNT) self.classifier.register_feature(TestFeature) def build_object_description(self, number): features = (TestFeature(number),) return ObjectDescription(features) def check_fixture(self, fixture): train_set = fixture['train_set'] for number, label in train_set: self.classifier.train(number, label) label = self.classifier.classify(fixture['query']) self.assertEqual(fixture['expected_result'], label) def test_classifier(self): for fixture in FIXTURES: self.check_fixture(fixture)