def test_vocative_particles(): assert f(u'친구', u'야') == u'친구야' assert f(u'사랑', u'야') == u'사랑아' assert f(u'사랑', u'아') == u'사랑아' assert f(u'친구', u'여') == u'친구여' assert f(u'사랑', u'여') == u'사랑이여' assert f(u'하늘', u'이시여') == u'하늘이시여' assert f(u'바다', u'이시여') == u'바다시여'
def test_vocative_particles(): assert f(u'친구', u'야') == u'친구야' assert f(u'사랑', u'야') == u'사랑아' assert f(u'사랑', u'아') == u'사랑아' assert f(u'친구', u'여') == u'친구여' assert f(u'사랑', u'여') == u'사랑이여' assert f(u'하늘', u'이시여') == u'하늘이시여' assert f(u'바다', u'이시여') == u'바다시여'
def test_combinations(): assert f(u'이 방법', u'만으로는') == u'이 방법만으로는' assert f(u'나', u'조차도') == u'나조차도' assert f(u'그 친구', u'과는') == u'그 친구와는' assert f(u'그것', u'와는') == u'그것과는' assert f(u'사건', u'과(와)는') == u'사건과는' assert f(u'그 친구', u'관') == u'그 친구완'
def test_combinations(): assert f(u'이 방법', u'만으로는') == u'이 방법만으로는' assert f(u'나', u'조차도') == u'나조차도' assert f(u'그 친구', u'과는') == u'그 친구와는' assert f(u'그것', u'와는') == u'그것과는' assert f(u'사건', u'과(와)는') == u'사건과는' assert f(u'그 친구', u'관') == u'그 친구완'
def test_decimal(): assert f(u'레벨30', u'이') == u'레벨30이' assert f(u'레벨34', u'이') == u'레벨34가' assert f(u'레벨7', u'으로') == u'레벨7로' assert f(u'레벨42', u'으로') == u'레벨42로' assert f(u'레벨100', u'으로') == u'레벨100으로' assert pick_coda_from_decimal('1') == u'ㄹ' assert pick_coda_from_decimal('2') == u'' assert pick_coda_from_decimal('3') == u'ㅁ' assert pick_coda_from_decimal('10') == u'ㅂ' assert pick_coda_from_decimal('16') == u'ㄱ' assert pick_coda_from_decimal('19') == u'' assert pick_coda_from_decimal('200') == u'ㄱ' assert pick_coda_from_decimal('30000') == u'ㄴ' assert pick_coda_from_decimal('400000') == u'ㄴ' assert pick_coda_from_decimal('500000000') == u'ㄱ' assert pick_coda_from_decimal('1' + '0' * 50) == u'ㄱ' assert pick_coda_from_decimal('1' + '0' * 100) is None assert pick_coda_from_decimal('0') == u'ㅇ' assert pick_coda_from_decimal('1.0') == u'ㅇ' assert pick_coda_from_decimal('1.234567890') == u'ㅇ' assert pick_coda_from_decimal('3.14') == u''
def test_decimal(): assert f(u'레벨30', u'이') == u'레벨30이' assert f(u'레벨34', u'이') == u'레벨34가' assert f(u'레벨7', u'으로') == u'레벨7로' assert f(u'레벨42', u'으로') == u'레벨42로' assert f(u'레벨100', u'으로') == u'레벨100으로' assert pick_coda_from_decimal('1') == u'ㄹ' assert pick_coda_from_decimal('2') == u'' assert pick_coda_from_decimal('3') == u'ㅁ' assert pick_coda_from_decimal('10') == u'ㅂ' assert pick_coda_from_decimal('16') == u'ㄱ' assert pick_coda_from_decimal('19') == u'' assert pick_coda_from_decimal('200') == u'ㄱ' assert pick_coda_from_decimal('30000') == u'ㄴ' assert pick_coda_from_decimal('400000') == u'ㄴ' assert pick_coda_from_decimal('500000000') == u'ㄱ' assert pick_coda_from_decimal('1' + '0' * 50) == u'ㄱ' assert pick_coda_from_decimal('1' + '0' * 100) is None assert pick_coda_from_decimal('0') == u'ㅇ' assert pick_coda_from_decimal('1.0') == u'ㅇ' assert pick_coda_from_decimal('1.234567890') == u'ㅇ' assert pick_coda_from_decimal('3.14') == u''
def test_tolerances(): assert f(u'나오', u'은(는)') == u'나오는' assert f(u'나오', u'(은)는') == u'나오는' assert f(u'나오', u'는(은)') == u'나오는' assert f(u'나오', u'(는)은') == u'나오는'
def test_invariant_particles(): assert f(u'나오', u'도') == u'나오도' assert f(u'모리안', u'도') == u'모리안도' assert f(u'판교', u'에서') == u'판교에서' assert f(u'판교', u'에서는') == u'판교에서는' assert f(u'선생님', u'께서도') == u'선생님께서도' assert f(u'나오', u'의') == u'나오의' assert f(u'모리안', u'만') == u'모리안만' assert f(u'키홀', u'하고') == u'키홀하고' assert f(u'콩', u'만큼') == u'콩만큼' assert f(u'콩', u'마냥') == u'콩마냥' assert f(u'콩', u'처럼') == u'콩처럼'
def test_ida(): """Cases for '이다' which is a copulative and existential verb.""" # Do or don't inject '이'. assert f(u'나오', u'이다') == u'나오다' assert f(u'키홀', u'이다') == u'키홀이다' # Merge with the following vowel as /j/. assert f(u'나오', u'이에요') == u'나오예요' assert f(u'키홀', u'이에요') == u'키홀이에요' # No allomorphs. assert f(u'나오', u'입니다') == u'나오입니다' assert f(u'키홀', u'입니다') == u'키홀입니다' # Give up to select an allomorph. assert f(u'God', u'이다') == u'God(이)다' assert f(u'God', u'이에요') == u'God(이)에요' assert f(u'God', u'입니다') == u'God입니다' assert f(u'God', u'였습니다') == u'God(이)었습니다' # Many examples. assert f(u'키홀', u'였습니다') == u'키홀이었습니다' assert f(u'나오', u'였습니다') == u'나오였습니다' assert f(u'나오', u'이었다') == u'나오였다' assert f(u'나오', u'이었지만') == u'나오였지만' assert f(u'나오', u'이지만') == u'나오지만' assert f(u'키홀', u'이지만') == u'키홀이지만' assert f(u'나오', u'지만') == u'나오지만' assert f(u'키홀', u'지만') == u'키홀이지만' assert f(u'나오', u'다') == u'나오다' assert f(u'키홀', u'다') == u'키홀이다' assert f(u'나오', u'이에요') == u'나오예요' assert f(u'키홀', u'이에요') == u'키홀이에요' assert f(u'나오', u'고') == u'나오고' assert f(u'키홀', u'고') == u'키홀이고' assert f(u'모리안', u'고') == u'모리안이고' assert f(u'나오', u'여서') == u'나오여서' assert f(u'키홀', u'여서') == u'키홀이어서' assert f(u'나오', u'이어서') == u'나오여서' assert f(u'키홀', u'라고라') == u'키홀이라고라' assert f(u'키홀', u'든지') == u'키홀이든지' assert f(u'키홀', u'던가') == u'키홀이던가' assert f(u'키홀', u'여도') == u'키홀이어도' assert f(u'키홀', u'야말로') == u'키홀이야말로' assert f(u'키홀', u'인양') == u'키홀인양' assert f(u'나오', u'인양') == u'나오인양'
def test_insignificant(): assert f(u'나오(Lv.25)', u'으로') == u'나오(Lv.25)로' assert f(u'나오 (Lv.25)', u'을') == u'나오 (Lv.25)를' assert f(u'나(?)오', u'으로') == u'나(?)오로' assert f(u'헬로월드!', u'으로') == u'헬로월드!로' assert f(u'?_?', u'으로') == u'?_?(으)로' assert f(u'임창정,,,', u'가') == u'임창정,,,이' assert f(u'《듀랑고》', u'을') == u'《듀랑고》를' assert f(u'불완전괄호)', u'은') == u'불완전괄호)는' assert f(u'이상한괄호)))', u'는') == u'이상한괄호)))는' assert f(u'이상한괄호)()', u'은') == u'이상한괄호)()는' assert f(u'이상한괄호())', u'(는)은') == u'이상한괄호())는' assert f(u'^_^', u'이었다.') == u'^_^(이)었다.' assert f(u'웃는얼굴^_^', u'이었다.') == u'웃는얼굴^_^이었다.' assert f(u'폭탄(가짜)...', u'이었다.') == u'폭탄(가짜)...이었다.' assert f(u'16(7)?!', u'으로') == u'16(7)?!으로' assert f(u'7(16)?!', u'으로') == u'7(16)?!로' assert f(u'검색\ue000', u'를') == u'검색\ue000을'
def test_only_parentheses(): assert f(u'(1, 2)', u'를') == u'(1, 2)를' assert f(u'(2, 3)', u'를') == u'(2, 3)을'
def test_ida(): """Cases for '이다' which is a copulative and existential verb.""" # Do or don't inject '이'. assert f(u'나오', u'이다') == u'나오다' assert f(u'키홀', u'이다') == u'키홀이다' # Merge with the following vowel as /j/. assert f(u'나오', u'이에요') == u'나오예요' assert f(u'키홀', u'이에요') == u'키홀이에요' # No allomorphs. assert f(u'나오', u'입니다') == u'나오입니다' assert f(u'키홀', u'입니다') == u'키홀입니다' # Give up to select an allomorph. assert f(u'God', u'이다') == u'God(이)다' assert f(u'God', u'이에요') == u'God(이)에요' assert f(u'God', u'입니다') == u'God입니다' assert f(u'God', u'였습니다') == u'God(이)었습니다' # Many examples. assert f(u'키홀', u'였습니다') == u'키홀이었습니다' assert f(u'나오', u'였습니다') == u'나오였습니다' assert f(u'나오', u'이었다') == u'나오였다' assert f(u'나오', u'이었지만') == u'나오였지만' assert f(u'나오', u'이지만') == u'나오지만' assert f(u'키홀', u'이지만') == u'키홀이지만' assert f(u'나오', u'지만') == u'나오지만' assert f(u'키홀', u'지만') == u'키홀이지만' assert f(u'나오', u'다') == u'나오다' assert f(u'키홀', u'다') == u'키홀이다' assert f(u'나오', u'이에요') == u'나오예요' assert f(u'키홀', u'이에요') == u'키홀이에요' assert f(u'나오', u'고') == u'나오고' assert f(u'키홀', u'고') == u'키홀이고' assert f(u'모리안', u'고') == u'모리안이고' assert f(u'나오', u'여서') == u'나오여서' assert f(u'키홀', u'여서') == u'키홀이어서' assert f(u'나오', u'이어서') == u'나오여서' assert f(u'키홀', u'라고라') == u'키홀이라고라' assert f(u'키홀', u'든지') == u'키홀이든지' assert f(u'키홀', u'던가') == u'키홀이던가' assert f(u'키홀', u'여도') == u'키홀이어도' assert f(u'키홀', u'야말로') == u'키홀이야말로' assert f(u'키홀', u'인양') == u'키홀인양' assert f(u'나오', u'인양') == u'나오인양'
def test_exceptions(): # Empty. assert f(u'', u'를') == u'을(를)' # Onsets only. assert f(u'ㅋㅋㅋ', u'를') == u'ㅋㅋㅋ을(를)'
def test_exceptions(): # Empty. assert f(u'', u'를') == u'을(를)' # Onsets only. assert f(u'ㅋㅋㅋ', u'를') == u'ㅋㅋㅋ을(를)'
def test_static_tolerance_style(): assert f(u'나오', u'을', tolerance_style=u'을/를') == u'나오를' assert f(u'키홀', u'를', tolerance_style=u'을/를') == u'키홀을' assert f(u'Tossi', u'을', tolerance_style=u'을/를') == u'Tossi을/를'
def ff(particle_string): return f(u'남', particle_string), f(u'나', particle_string)
def test_tolerances(): assert f(u'나오', u'은(는)') == u'나오는' assert f(u'나오', u'(은)는') == u'나오는' assert f(u'나오', u'는(은)') == u'나오는' assert f(u'나오', u'(는)은') == u'나오는'
def test_invariant_particles(): assert f(u'나오', u'도') == u'나오도' assert f(u'모리안', u'도') == u'모리안도' assert f(u'판교', u'에서') == u'판교에서' assert f(u'판교', u'에서는') == u'판교에서는' assert f(u'선생님', u'께서도') == u'선생님께서도' assert f(u'나오', u'의') == u'나오의' assert f(u'모리안', u'만') == u'모리안만' assert f(u'키홀', u'하고') == u'키홀하고' assert f(u'콩', u'만큼') == u'콩만큼' assert f(u'콩', u'마냥') == u'콩마냥' assert f(u'콩', u'처럼') == u'콩처럼'
def ff(particle_string): return f(u'남', particle_string), f(u'나', particle_string)
def test_insignificant(): assert f(u'나오(Lv.25)', u'으로') == u'나오(Lv.25)로' assert f(u'나오 (Lv.25)', u'을') == u'나오 (Lv.25)를' assert f(u'나(?)오', u'으로') == u'나(?)오로' assert f(u'헬로월드!', u'으로') == u'헬로월드!로' assert f(u'?_?', u'으로') == u'?_?(으)로' assert f(u'임창정,,,', u'가') == u'임창정,,,이' assert f(u'《듀랑고》', u'을') == u'《듀랑고》를' assert f(u'불완전괄호)', u'은') == u'불완전괄호)는' assert f(u'이상한괄호)))', u'는') == u'이상한괄호)))는' assert f(u'이상한괄호)()', u'은') == u'이상한괄호)()는' assert f(u'이상한괄호())', u'(는)은') == u'이상한괄호())는' assert f(u'^_^', u'이었다.') == u'^_^(이)었다.' assert f(u'웃는얼굴^_^', u'이었다.') == u'웃는얼굴^_^이었다.' assert f(u'폭탄(가짜)...', u'이었다.') == u'폭탄(가짜)...이었다.' assert f(u'16(7)?!', u'으로') == u'16(7)?!으로' assert f(u'7(16)?!', u'으로') == u'7(16)?!로' assert f(u'검색\ue000', u'를') == u'검색\ue000을'
def test_static_tolerance_style(): assert f(u'나오', u'을', tolerance_style=u'을/를') == u'나오를' assert f(u'키홀', u'를', tolerance_style=u'을/를') == u'키홀을' assert f(u'Tossi', u'을', tolerance_style=u'을/를') == u'Tossi을/를'
def test_only_parentheses(): assert f(u'(1, 2)', u'를') == u'(1, 2)를' assert f(u'(2, 3)', u'를') == u'(2, 3)을'