UNPKG

@erkanarslan/turkish-inflection

Version:
219 lines (218 loc) 7.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var index_1 = require("./index"); test('i-type vowel harmony', function () { var list = [ ["domates", "domatesi"], ["incir", "inciri"], ["ananas", "ananası"], ["tarçın", "tarçını"], ["maydanoz", "maydanozu"], ["armut", "armutu"], ["söz", "sözü"], ["üzüm", "üzümü"] ]; for (var _i = 0, list_1 = list; _i < list_1.length; _i++) { var _a = list_1[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source, "i"); expect(result).toBe(target); } }); test('i-type vowel harmony for numbers', function () { var list = [ ["21", "21'i"], ["13", "13'ü"], ["2014", "2014'ü"], ["5", "5'i"], ["99", "99'u"], ["10", "10'u"], ["30", "30'u"], ["40", "40'ı"], ["60", "60'ı"], ["70", "70'i"], ["80", "80'i"], ["90", "90'ı"], ["100", "100'ü"], ["1000", "1000'i"] ]; for (var _i = 0, list_2 = list; _i < list_2.length; _i++) { var _a = list_2[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source + "'", "i"); expect(result).toBe(target); } }); test('e-type vowel harmony', function () { var list = [ ["domates", "domatese"], ["incir", "incire"], ["ananas", "ananasa"], ["tarçın", "tarçına"], ["maydanoz", "maydanoza"], ["armut", "armuta"], ["söz", "söze"], ["üzüm", "üzüme"] ]; for (var _i = 0, list_3 = list; _i < list_3.length; _i++) { var _a = list_3[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source, "e"); expect(result).toBe(target); } }); test('e-type vowel harmony for numbers', function () { var list = [ ["21", "21'e"], ["13", "13'e"], ["2014", "2014'e"], ["5", "5'e"], ["99", "99'a"], ["10", "10'a"], ["30", "30'a"], ["40", "40'a"], ["70", "70'e"], ["80", "80'e"], ["90", "90'a"], ["100", "100'e"], ["1000", "1000'e"] ]; for (var _i = 0, list_4 = list; _i < list_4.length; _i++) { var _a = list_4[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source + "'", "e"); expect(result).toBe(target); } }); test('should inflect words in a text if suffix markup is used', function () { var list = [ ["Merhaba dünya!", "Merhaba dünya!"], ["Ay--e ve güneş--e merhaba!", "Aya ve güneşe merhaba!"], ["Erkan'--e --de merhaba!", "Erkan'a da merhaba!"], ["Erkan'--den orman--ler--deki ağaç--ler--e --de merhaba!", "Erkan'dan ormanlardaki ağaçlara da merhaba!"], ]; for (var _i = 0, list_5 = list; _i < list_5.length; _i++) { var _a = list_5[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source); expect(result).toBe(target); } }); test('suffix markup with numbers', function () { var list = [ ["%10'--den %50'--e varan indirimler!", "%10'dan %50'ye varan indirimler!"], ["63'--i 7'--e bölünce 9 elde edilir", "63'ü 7'ye bölünce 9 elde edilir"] ]; for (var _i = 0, list_6 = list; _i < list_6.length; _i++) { var _a = list_6[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source); expect(result).toBe(target); } }); test('consonant lenition', function () { var list = [ ["yurt--i", "yurdu"], ["kanat--i", "kanadı"], ["bilek--i", "bileği"], ["ağaç--e", "ağaca"], ["biyoloji kitap--i", "biyoloji kitabı"], ["renk--i", "rengi"], ["devlet--in", "devletin"], ["hukuk--e", "hukuka"], ["ok--i", "oku"], ["Ali at--e bak", "Ali ata bak"], ["Ahmet'--in", "Ahmet'in"], ["Zonguldak'--e", "Zonguldak'a"] ]; for (var _i = 0, list_7 = list; _i < list_7.length; _i++) { var _a = list_7[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source); expect(result).toBe(target); } }); test('adding exceptions for lenition', function () { expect((0, index_1.inflect)('uçak', 'e')).toBe('uçağa'); expect((0, index_1.inflect)('tek', 'i')).toBe('teki'); (0, index_1.addLenitionExceptions)('uçak', 'tek'); expect((0, index_1.inflect)('uçak', 'e')).toBe('uçaka'); expect((0, index_1.inflect)('tek', 'i')).toBe('teği'); }); test('fortitive assimilation', function () { var list = [ ['market--de', 'markette'], ['kasap--den', 'kasaptan'], ["Zonguldak'--de", "Zonguldak'ta"], ["Ahmet --de geldi", "Ahmet de geldi"], ["1960'--den", "1960'tan"] ]; for (var _i = 0, list_8 = list; _i < list_8.length; _i++) { var _a = list_8[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source); expect(result).toBe(target); } }); test('fortitive assimilation for numbers', function () { var list = [ ["0'--den", "0'dan"], ["13'--den", "13'ten"], ["24'--de", "24'te"], ["24 --de", "24 de"], ["5'--de 1", "5'te 1"], ["140'--de", "140'ta"], ["32,560'--den", "32,560'tan"] ]; for (var _i = 0, list_9 = list; _i < list_9.length; _i++) { var _a = list_9[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source); expect(result).toBe(target); } }); test('adding buffer letters', function () { var list = [ ['kapı--e', 'kapıya'], ['araba--i', 'arabayı'], ["Antalya'--e", "Antalya'ya"], ["Niğde'--in", "Niğde'nin"], ["İzmir'--in", "İzmir'in"] ]; for (var _i = 0, list_10 = list; _i < list_10.length; _i++) { var _a = list_10[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source); expect(result).toBe(target); } }); test('adding buffer letters for numbers', function () { var list = [ ["12'--e", "12'ye"], ["26'--i", "26'yı"], ["250'--e", "250'ye"] ]; for (var _i = 0, list_11 = list; _i < list_11.length; _i++) { var _a = list_11[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source); expect(result).toBe(target); } }); test('suffix case match', function () { var list = [ ['DOMATES--İ', 'DOMATESİ'], ['AY--A', 'AYA'], ["AĞAÇ--İN", "AĞACIN"], ["MUSTAFA --Mİ?", "MUSTAFA MI?"], ["MARTI--E", "MARTIYA"], ["DURAK--E", "DURAĞA"], ["7'--DEN 70'--E", "7'DEN 70'E"] ]; for (var _i = 0, list_12 = list; _i < list_12.length; _i++) { var _a = list_12[_i], source = _a[0], target = _a[1]; var result = (0, index_1.inflect)(source); expect(result).toBe(target); } }); test('inflect and interpolate', function () { var template = "{{person}}'--ın {{year}}'--de {{start}}--den {{destination}}--a yolculuğu {{people}}--ler--in --de {{person}}'--a ve uzaya ilgisini artırdı."; var dictionary = { person: "Neil Armstrong", year: "1969", start: "dünya", destination: "ay", people: "Amerikalı" }; var text = (0, index_1.inflect)(template, dictionary); expect(text).toBe("Neil Armstrong'un 1969'da dünyadan aya yolculuğu Amerikalıların da Neil Armstrong'a ve uzaya ilgisini artırdı."); });