new_contents: '''Test the ability to add a label to a (potentially trained) parsing model.'''
  from __future__ import unicode_literals
  import pytest
  import numpy.random
  from thinc.neural.optimizers import Adam
  from thinc.neural.ops import NumpyOps
  
  from ...attrs import NORM
  from ...gold import GoldParse
  from ...vocab import Vocab
  from ...tokens import Doc
  from ...pipeline import NeuralDependencyParser
  
  numpy.random.seed(0)
  
  
  @pytest.fixture
  def vocab():
      return Vocab(lex_attr_getters={NORM: lambda s: s})
  
  
  @pytest.fixture
  def parser(vocab):
      parser = NeuralDependencyParser(vocab)
      parser.cfg['token_vector_width'] = 4
      parser.cfg['hidden_width'] = 6
      parser.cfg['hist_size'] = 0
      parser.add_label('left')
      parser.begin_training([], **parser.cfg)
      sgd = Adam(NumpyOps(), 0.001)
  
      for i in range(30):
          losses = {}
          doc = Doc(vocab, words=['a', 'b', 'c', 'd'])
          gold = GoldParse(doc, heads=[1, 1, 3, 3],
                  deps=['left', 'ROOT', 'left', 'ROOT'])
          parser.update([doc], [gold], sgd=sgd, losses=losses)
      return parser
  
  
  def test_add_label(parser):
      doc = Doc(parser.vocab, words=['a', 'b', 'c', 'd'])
      doc = parser(doc)
      assert doc[0].head.i == 1
      assert doc[0].dep_ == 'left'
      assert doc[1].head.i == 1
      assert doc[2].head.i == 3
      assert doc[2].head.i == 3
      parser.add_label('right')
      doc = Doc(parser.vocab, words=['a', 'b', 'c', 'd'])
      doc = parser(doc)
      assert doc[0].head.i == 1
      assert doc[0].dep_ == 'left'
      assert doc[1].head.i == 1
      assert doc[2].head.i == 3
      assert doc[2].head.i == 3
      sgd = Adam(NumpyOps(), 0.001)
      for i in range(10):
          losses = {}
          doc = Doc(parser.vocab, words=['a', 'b', 'c', 'd'])
          gold = GoldParse(doc, heads=[1, 1, 3, 3],
                  deps=['right', 'ROOT', 'left', 'ROOT'])
          parser.update([doc], [gold], sgd=sgd, losses=losses)
      doc = Doc(parser.vocab, words=['a', 'b', 'c', 'd'])
      doc = parser(doc)
      assert doc[0].dep_ == 'right'
      assert doc[2].dep_ == 'left'
   
  
subject: Add tests for adding parser actions