def test_process_token_tokenize_mode(self):
        doc = fox_doc()
        token = doc[3]

        expected = {
            'tok': 'fox'
        }
        actual = _process_token(token, mode='tokenize')
        self.assertDictEqual(expected, actual)
    def test_process_token_parse_mode(self):
        doc = fox_doc()
        token = doc[3]

        expected = {
            'tok': 'fox',
            'tag': 'NN',
            'dn': [],
            'up': 2,
            'dep': 'NN'
        }
        actual = _process_token(token, mode='parse', offset=2)
        self.assertDictEqual(expected, actual)
    def test_process_sentence_nonparse_mode(self):
        doc = fox_doc()

        expected = {
            'toks': [
                {'tok': 'A'},
                {'tok': 'quick'},
                {'tok': 'brown'},
                {'tok': 'fox'},
                {'tok': 'jumps'},
                {'tok': 'over'},
                {'tok': 'the'},
                {'tok': 'lazy'},
                {'tok': 'dog'}
            ]
        }
        actual = _process_sentence(next(doc.sents), mode='tokenize', offset=3)

        self.assertDictEqual(expected, actual)
    def test_process_sentence_parse_mode(self):
        doc = fox_doc()

        expected = {
            'rt': 1,
            'toks': [
                {'tok': 'A', 'tag': 'DT', 'dep': 'det', 'up': 1, 'dn': []},
                {'tok': 'quick', 'tag': 'JJ', 'dep': 'amod', 'up': 1, 'dn': []},
                {'tok': 'brown', 'tag': 'JJ', 'dep': 'amod', 'up': 1, 'dn': []},
                {'tok': 'fox', 'tag': 'NN', 'dep': 'NN', 'up': 1, 'dn': []},
                {'tok': 'jumps', 'tag': 'NNS', 'dep': 'ROOT', 'dn': [-3, -2, -1, 0, 2]},
                {'tok': 'over', 'tag': 'IN', 'dep': 'prep', 'up': 1, 'dn': [5]},
                {'tok': 'the', 'tag': 'DT', 'dep': 'det', 'up': 5, 'dn': []},
                {'tok': 'lazy', 'tag': 'JJ', 'dep': 'amod', 'up': 5, 'dn': []},
                {'tok': 'dog', 'tag': 'NN', 'dep': 'pobj', 'up': 2, 'dn': [3, 4]}
            ]
        }
        actual = _process_sentence(next(doc.sents), mode='parse', offset=3)

        self.assertDictEqual(expected, actual)