ai-content-maker/.venv/Lib/site-packages/numba/tests/test_unicode_names.py

62 lines
1.5 KiB
Python
Raw Normal View History

2024-05-03 04:18:51 +03:00
# -*- coding: utf-8 -*-
from numba import njit, cfunc
from numba.tests.support import TestCase, unittest
from numba.core import cgutils
unicode_name1 = u"""
def unicode_name1(ಠ_ರ, ಠਊಠ):
return (ಠ_ರ) + (ಠਊಠ)
"""
unicode_name2 = u"""
def Ծ_Ծ(ಠ_ರ, ಠਊಠ):
return (ಠ_ರ) + (ಠਊಠ)
"""
class TestUnicodeNames(TestCase):
def make_testcase(self, src, fname):
glb = {}
exec(src, glb)
fn = glb[fname]
return fn
def test_unicode_name1(self):
fn = self.make_testcase(unicode_name1, 'unicode_name1')
cfn = njit(fn)
self.assertEqual(cfn(1, 2), 3)
def test_unicode_name2(self):
fn = self.make_testcase(unicode_name2, 'Ծ_Ծ')
cfn = njit(fn)
self.assertEqual(cfn(1, 2), 3)
def test_cfunc(self):
fn = self.make_testcase(unicode_name2, 'Ծ_Ծ')
cfn = cfunc("int32(int32, int32)")(fn)
self.assertEqual(cfn.ctypes(1, 2), 3)
class TestUnicodeUtils(TestCase):
def test_normalize_ir_text(self):
# non-unicode input
out = cgutils.normalize_ir_text('abc')
# str returned
self.assertIsInstance(out, str)
# try encoding to latin
out.encode('latin1')
def test_normalize_ir_text_unicode(self):
# unicode input
out = cgutils.normalize_ir_text(unicode_name2)
# str returned
self.assertIsInstance(out, str)
# try encoding to latin
out.encode('latin1')
if __name__ == '__main__':
unittest.main()