import spacy.munge.read_conll

hongbin_example = """
1       2.      0.      LS      _       24      meta    _       _       _
2       .       .       .       _       1       punct   _       _       _
3       Wang    wang    NNP     _       4       compound        _       _       _
4       Hongbin hongbin NNP     _       16      nsubj   _       _       _
5       ,       ,       ,       _       4       punct   _       _       _
6       the     the     DT      _       11      det     _       _       _
7       "       "       ``      _       11      punct   _       _       _
8       communist       communist       JJ      _       11      amod    _       _       _
9       trail   trail   NN      _       11      compound        _       _       _
10      -       -       HYPH    _       11      punct   _       _       _
11      blazer  blazer  NN      _       4       appos   _       _       _
12      ,       ,       ,       _       16      punct   _       _       _
13      "       "       ''      _       16      punct   _       _       _
14      has     have    VBZ     _       16      aux     _       _       _
15      not     not     RB      _       16      neg     _       _       _
16      turned  turn    VBN     _       24      ccomp   _       _       _
17      into    into    IN      syn=CLR 16      prep    _       _       _
18      a       a       DT      _       19      det     _       _       _
19      capitalist      capitalist      NN      _       17      pobj    _       _       _
20      (       (       -LRB-   _       24      punct   _       _       _
21      he      he      PRP     _       24      nsubj   _       _       _
22      does    do      VBZ     _       24      aux     _       _       _
23      n't     not     RB      _       24      neg     _       _       _
24      have    have    VB      _       0       root    _       _       _
25      any     any     DT      _       26      det     _       _       _
26      shares  share   NNS     _       24      dobj    _       _       _
27      ,       ,       ,       _       24      punct   _       _       _
28      does    do      VBZ     _       30      aux     _       _       _
29      n't     not     RB      _       30      neg     _       _       _
30      have    have    VB      _       24      conj    _       _       _
31      any     any     DT      _       32      det     _       _       _
32      savings saving  NNS     _       30      dobj    _       _       _
33      ,       ,       ,       _       30      punct   _       _       _
34      does    do      VBZ     _       36      aux     _       _       _
35      n't     not     RB      _       36      neg     _       _       _
36      have    have    VB      _       30      conj    _       _       _
37      his     his     PRP$    _       39      poss    _       _       _
38      own     own     JJ      _       39      amod    _       _       _
39      car     car     NN      _       36      dobj    _       _       _
40      ,       ,       ,       _       36      punct   _       _       _
41      and     and     CC      _       36      cc      _       _       _
42      does    do      VBZ     _       44      aux     _       _       _
43      n't     not     RB      _       44      neg     _       _       _
44      have    have    VB      _       36      conj    _       _       _
45      a       a       DT      _       46      det     _       _       _
46      mansion mansion NN      _       44      dobj    _       _       _
47      ;       ;       .       _       24      punct   _       _       _
""".strip()


def test_hongbin():
    words, annot = spacy.munge.read_conll.parse(hongbin_example, strip_bad_periods=True)
    assert words[annot[0]['head']] == 'have'
    assert words[annot[1]['head']] == 'Hongbin'