<commit_before># coding: utf-8
from __future__ import unicode_literals

import pytest

from natasha import NamesExtractor
from natasha.grammars.name import Name


@pytest.fixture(scope='module')
def extractor():
    return NamesExtractor()


tests = [
    ['<NAME>', Name(first='мустафа', last='джемилев')],
    ['<NAME>', Name(first='егор', last='свиридов')],
    ['<NAME>', Name(first='ахмат-хаджи', last='кадыров')],
    ['<NAME>', Name(first='алеся', last='стрыжак')],
    ['<NAME>', Name(first='владимир', last='путин')],
    ['плаксюк саша', Name(first='саша', last='плаксюк')],

    ['<NAME>', Name(first='М', last='горбачёв', middle='С')],
    ['<NAME>', Name(first='О', last='дерипаск')],
    ['<NAME>.', Name(first='Е', last='ищенко', middle='П')],

    ['<NAME>',
     Name(first='фёдор', last='шаляпин', middle='иванович')],
    ['<NAME>', Name(first='ипполит', middle='матвеевич')],

    ['Януковичем', Name(last='янукович')],
    ['Авраама', Name(first='авраам')],

    # TODO
    # ['Лев', Name(first='левый')]
    # ['ВОВ', None]
]


@pytest.mark.parametrize('test', tests)
def test_extractor(extractor, test):
    text = test[0]<commit_msg>Skip Gorbachev<commit_after># coding: utf-8
from __future__ import unicode_literals

import pytest

from natasha import NamesExtractor
from natasha.grammars.name import Name


@pytest.fixture(scope='module')
def extractor():
    return NamesExtractor()


tests = [
    ['<NAME>', Name(first='мустафа', last='джемилев')],
    ['<NAME>', Name(first='егор', last='свиридов')],
    ['<NAME>', Name(first='ахмат-хаджи', last='кадыров')],
    ['<NAME>', Name(first='алеся', last='стрыжак')],
    ['в<NAME>', Name(first='владимир', last='путин')],
    ['плаксюк саша', Name(first='саша', last='плаксюк')],

    ['<NAME>', Name(first='О', last='дерипаск')],
    ['<NAME>.', Name(first='Е', last='ищенко', middle='П')],

    ['<NAME>',
     Name(first='фёдор', last='шаляпин', middle='иванович')],
    ['<NAME>', Name(first='ипполит', middle='матвеевич')],

    ['Януковичем', Name(last='янукович')],
    ['Авраама', Name(first='авраам')],

    # TODO
    # С одной версией словарей получается горбачёв, с другой горбачев
    # ['<NAME>', Name(first='М', last='горбачёв', middle='С')],
    # ['Лев', Name(first='левый')]
    # ['ВОВ', None]
]


@pytest.mark.parametrize('test', tests)
def test_extractor(extractor, test):
    text = test[0]
{'fraction_non_alphanumeric': 0.233249581239531, 'fraction_numerical': 0.0016750418760469012, 'mean_word_length': 5.370666666666667, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7367971', 'n_tokens_mistral': 940, 'n_tokens_neox': 1011, 'n_words': 161}