def test_sample_values(self): A, B = sentences([u'A', u'B']), sentences([u'Y', u'Z']) samples = list(_misaligned_samples(A, B, [(0, 0), (1, 1)])) s0 = SentencePair(Sentence([u'A']), Sentence([u'Z'])) s1 = SentencePair(Sentence([u'B']), Sentence([u'Y'])) self.assertEquals(2, len(samples)) for sample in samples: self.assertTrue(sample in [s0, s1])
def test_randomly(self): for i in xrange(1000): n = random.randint(2, 100) A, B = sentences(xrange(n)), sentences(xrange(n)) alignments = zip(range(n), range(n)) samples = list(_misaligned_samples(A, B, alignments)) self.assertEquals(n, len(samples)) pairs = set([(a[0], b[0]) for a, b in samples]) #No duplicates self.assertEquals(len(pairs), len(samples))
def test_one_alignment(self): # no misalignments when we have only one alignment A, B = sentences(['A']), sentences(['Z']) samples = list(_misaligned_samples(A, B, [(0, 0)])) self.assertEquals(0, len(samples))
def test_empty_alignments(self): A, B = [], [] samples = list(_misaligned_samples(A, B, [])) self.assertEquals(0, len(samples))