Example #1
0
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)