| #!/usr/bin/env python | |
| import math | |
| import unittest | |
| from bleu import * | |
| class TestBleuScorer(unittest.TestCase): | |
| def setUp(self): | |
| self.scorer = BleuScorer() | |
| def test_wrong_length(self): | |
| self.assertRaises(BleuScoreException, self.scorer.score, [1]*8) | |
| self.assertRaises(BleuScoreException, self.scorer.score, [1]*10) | |
| def test_score(self): | |
| stats = [2,5,0,1,1,1,1,1,5] | |
| self.assertAlmostEqual(self.scorer.score(stats), 1/math.sqrt(2)) | |
| def test_brevity(self): | |
| stats = [2,2,2,2,2,2,2,2,3] | |
| self.assertAlmostEqual(self.scorer.score(stats), math.exp(1 - 3.0/2.0)) | |
| if __name__ == "__main__": | |
| unittest.main() | |
| suite = unittest.TestLoader().loadTestsFromTestCase(TestBleuScorer) | |