import pytest from spacy.lang.mk.lex_attrs import like_num def test_tokenizer_handles_long_text(mk_tokenizer): text = """ Во организациските работи или на нашите собранија со членството, никој од нас не зборуваше за организацијата и идеологијата. Работна беше нашата работа, а не идеолошка. Што се однесува до социјализмот на Делчев, неговата дејност зборува сама за себе - спротивно. Во суштина, водачите си имаа свои основни погледи и свои разбирања за положбата и работите, коишто стоеја пред нив и ги завршуваа со голема упорност, настојчивост и насоченост. Значи, идеологија имаше, само што нивната идеологија имаше своја оригиналност. Македонија денеска, чиста рожба на животот и положбата во Македонија, кои му служеа како база на неговите побуди, беше дејност која имаше потреба од ум за да си најде своја смисла. Таквата идеологија и заемното дејство на умот и срцето му помогнаа на Делчев да не се занесе по патот на својата идеологија... Во суштина, Организацијата и нејзините водачи имаа свои разбирања за работите и положбата во идеен поглед, но тоа беше врската, животот и положбата во Македонија и го внесуваа во својата идеологија гласот на своето срце, и на крај, прибегнуваа до умот, за да најдат смисла или да ѝ дадат. Тоа содејство и заемен сооднос на умот и срцето му помогнаа на Делчев да ја држи својата идеологија во сообразност со положбата на работите... Водачите навистина направија една жртва бидејќи на населението не му зборуваа за своите мисли и идеи. Тие се одрекоа од секаква субјективност во своите мисли. Целта беше да не се зголемуваат целите и задачите како и преданоста во работата. Населението не можеше да ги разбере овие идеи... """ tokens = mk_tokenizer(text) assert len(tokens) == 297 @pytest.mark.parametrize( "word,match", [ ("10", True), ("1", True), ("10.000", True), ("1000", True), ("бројка", False), ("999,0", True), ("еден", True), ("два", True), ("цифра", False), ("десет", True), ("сто", True), ("број", False), ("илјада", True), ("илјади", True), ("милион", True), (",", False), ("милијарда", True), ("билион", True), ], ) def test_mk_lex_attrs_like_number(mk_tokenizer, word, match): tokens = mk_tokenizer(word) assert len(tokens) == 1 assert tokens[0].like_num == match @pytest.mark.parametrize("word", ["двесте", "два-три", "пет-шест"]) def test_mk_lex_attrs_capitals(word): assert like_num(word) assert like_num(word.upper()) @pytest.mark.parametrize( "word", [ "првиот", "втора", "четврт", "четвртата", "петти", "петто", "стоти", "шеесетите", "седумдесетите", ], ) def test_mk_lex_attrs_like_number_for_ordinal(word): assert like_num(word)