mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-11-13 10:40:52 +03:00
54 lines
1.4 KiB
Python
Executable File
54 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import random
|
|
import unittest
|
|
|
|
from nbest import *
|
|
from sampler import *
|
|
|
|
|
|
class TestNBestSampler(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.h1 = Hypothesis("a",[])
|
|
self.h2 = Hypothesis("b",[])
|
|
self.h3 = Hypothesis("c",[])
|
|
self.nbest = NBestList(1)
|
|
self.nbest.hyps.append(self.h1)
|
|
self.nbest.hyps.append(self.h2)
|
|
self.nbest.hyps.append(self.h3)
|
|
self.sampler = HopkinsMaySampler()
|
|
|
|
def test_nsamples(self):
|
|
self.h1.score = 0.1
|
|
self.h2.score = 0.2
|
|
self.h3.score = 0.3
|
|
samples = self.sampler.sample(self.nbest)
|
|
self.assertEqual(len(samples), self.sampler.nsamples)
|
|
|
|
def test_biggest(self):
|
|
random.seed(0)
|
|
self.h1.score = 0.1
|
|
self.h2.score = 0.2
|
|
self.h3.score = 0.3
|
|
samples = self.sampler.sample(self.nbest)
|
|
for sample in samples:
|
|
self.assertAlmostEqual(sample.diff,0.2)
|
|
|
|
def test_score_diff(self):
|
|
self.h1.score = 0.1
|
|
self.h2.score = 0.1 + (0.9*self.sampler.min_diff)
|
|
self.h3.score = 0.1 + (1.8*self.sampler.min_diff)
|
|
|
|
# Should only see pairs with h1,h3
|
|
samples = self.sampler.sample(self.nbest)
|
|
for sample in samples:
|
|
self.assertTrue((sample.hyp1 == self.h1 and sample.hyp2 == self.h3) or \
|
|
(sample.hyp2 == self.h1 and sample.hyp1 == self.h3))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|
|
|
|
suite = unittest.TestLoader().loadTestsFromTestCase(TestNBestSampler)
|