Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions arabic_reshaper/letters.py
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,8 @@
'\u06B1': ('\u06B1', '\uFB9C', '\uFB9D', '\uFB9B'),
# ARABIC LETTER GUEH
'\u06B3': ('\u06B3', '\uFB98', '\uFB99', '\uFB97'),
# KURDISH LETTER LAM WITH SMALL V
'\u06B5': ('\u06B5', '\uE008', '\uE009', '\uE007'),
# ARABIC LETTER NOON GHUNNA
'\u06BA': ('\u06BA', '', '', '\uFB9F'),
# ARABIC LETTER RNOON
Expand Down
46 changes: 46 additions & 0 deletions arabic_reshaper/tests/test_005_kurdish.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import unittest

import arabic_reshaper


class TestKurdishLamWithSmallV(unittest.TestCase):
"""U+06B5 has no Unicode presentation forms. Kurdish fonts draw its
initial, medial and final forms from private-use code points
U+E008, U+E009 and U+E007."""

def setUp(self):
self.reshaper = arabic_reshaper.ArabicReshaper(
configuration={'language': 'Kurdish'}
)

def test_forms(self):
cases = (
# isolated
('ڵ', 'ڵ'),
# initial, before meem
('ڵم', 'ﻢ'),
# medial, between two meems
('مڵم', 'ﻣﻢ'),
# final, after meem
('مڵ', 'ﻣ'),
)
for text, expected in cases:
with self.subTest(text=text):
self.assertEqual(self.reshaper.reshape(text), expected)

def test_words(self):
cases = (
# سڵاو (hello): medial
('سڵاو', 'ﺳﺎو'),
# وڵات (country): initial, because waw does not join forward
('وڵات', 'وﺎت'),
# گوڵ (flower): isolated, after waw
('گوڵ', 'ﮔﻮڵ'),
)
for text, expected in cases:
with self.subTest(text=text):
self.assertEqual(self.reshaper.reshape(text), expected)


if __name__ == '__main__':
unittest.main()
Loading