From a64680c137b53baf11f7d9f3231330f6576b11ce Mon Sep 17 00:00:00 2001 From: Matthew Honnibal Date: Sun, 1 Apr 2018 14:53:49 +0200 Subject: [PATCH] Add test for one-to-many alignment --- spacy/tests/test_align.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/spacy/tests/test_align.py b/spacy/tests/test_align.py index 758808f6a..a917617b7 100644 --- a/spacy/tests/test_align.py +++ b/spacy/tests/test_align.py @@ -64,3 +64,16 @@ def test_align_many_to_one(): assert j2i_multi[0] == 1 assert j2i_multi[1] == 3 + +def test_align_one_to_many(): + words1 = ['a', 'bc', 'd'] + words2 = ['a', 'b', 'c', 'd'] + cost, i2j, j2i, matrix = align(words1, words2) + assert list(i2j) == [0, -1, 3] + lengths1 = [len(w) for w in words1] + lengths2 = [len(w) for w in words2] + multi_j2i, multi_i2j = multi_align(j2i, i2j, lengths2, lengths1) + unsegmented = {} + for j, i in multi_j2i.items(): + unsegmented.setdefault(i, []).append(j) + assert unsegmented[1] == [1, 2]