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

890 lines
28 KiB
Python

import numpy as np
import unittest
from numba import jit, from_dtype
from numba.core import types
from numba.typed import Dict
from numba.tests.support import (TestCase, skip_ppc64le_issue4563)
def getitem(x, i):
return x[i]
def getitem2(x, i, j):
return x[i][j]
def setitem(x, i, v):
x[i] = v
return x
def setitem2(x, i, y, j):
x[i] = y[j]
return x
def setitem_literal(x, i):
x[i] = '123'
return x
def getitem_key(x, y, j):
x[y[j]] = 123
def return_len(x, i):
return len(x[i])
def return_bool(x, i):
return bool(x[i])
def equal_getitem(x, i, j):
return x[i] == x[j]
def notequal_getitem(x, i, j):
return x[i] != x[j]
def lessthan_getitem(x, i, j):
return x[i] < x[j]
def greaterthan_getitem(x, i, j):
return x[i] > x[j]
def lessequal_getitem(x, i, j):
return x[i] <= x[j]
def greaterequal_getitem(x, i, j):
return x[i] >= x[j]
def contains_getitem2(x, i, y, j):
return x[i] in y[j]
def equal_getitem_value(x, i, v):
r1 = x[i] == v
r2 = v == x[i]
if r1 == r2:
return r1
raise ValueError('x[i] == v and v == x[i] are unequal')
def notequal_getitem_value(x, i, v):
r1 = x[i] != v
r2 = v != x[i]
if r1 == r2:
return r1
raise ValueError('x[i] != v and v != x[i] are unequal')
def return_isascii(x, i):
return x[i].isascii()
def return_isupper(x, i):
return x[i].isupper()
def return_upper(x, i):
return x[i].upper()
def return_str(x, i):
return str(x[i])
def return_bytes(x, i):
return bytes(x[i])
def return_hash(x, i):
return hash(x[i])
def return_find(x, i, y, j):
return x[i].find(y[j])
def return_rfind(x, i, y, j):
return x[i].rfind(y[j])
def return_startswith(x, i, y, j):
return x[i].startswith(y[j])
def return_endswith(x, i, y, j):
return x[i].endswith(y[j])
def return_split1(x, i):
return x[i].split()
def return_split2(x, i, y, j):
return x[i].split(y[j])
def return_split3(x, i, y, j, maxsplit):
return x[i].split(sep=y[j], maxsplit=maxsplit)
# NOT IMPLEMENTED: tests for rsplit
def return_center1(x, i, w):
return x[i].center(w)
def return_center2(x, i, w, y, j):
return x[i].center(w, y[j])
def return_ljust1(x, i, w):
return x[i].ljust(w)
def return_ljust2(x, i, w, y, j):
return x[i].ljust(w, y[j])
def return_rjust1(x, i, w):
return x[i].rjust(w)
def return_rjust2(x, i, w, y, j):
return x[i].rjust(w, y[j])
def return_join(x, i, y, j, z, k):
return x[i].join([y[j], z[k]])
def return_zfill(x, i, w):
return x[i].zfill(w)
def return_lstrip1(x, i):
return x[i].lstrip()
def return_lstrip2(x, i, y, j):
return x[i].lstrip(y[j])
def return_rstrip1(x, i):
return x[i].rstrip()
def return_rstrip2(x, i, y, j):
return x[i].rstrip(y[j])
def return_strip1(x, i):
return x[i].strip()
def return_strip2(x, i, y, j):
return x[i].strip(y[j])
def return_add(x, i, y, j):
return x[i] + y[j]
def return_iadd(x, i, y, j):
x[i] += y[j]
return x[i]
def return_mul(x, i, y, j):
return x[i] * y[j] # one of the operants must be integer
def return_not(x, i):
return not x[i]
def join_string_array(str_arr):
return ",".join(str_arr)
@skip_ppc64le_issue4563
class TestUnicodeArray(TestCase):
def _test(self, pyfunc, cfunc, *args, **kwargs):
expected = pyfunc(*args, **kwargs)
self.assertPreciseEqual(cfunc(*args, **kwargs), expected)
def test_getitem2(self):
cgetitem2 = jit(nopython=True)(getitem2)
arr = np.array(b'12')
self.assertPreciseEqual(cgetitem2(arr, (), 0), getitem2(arr, (), 0))
with self.assertRaisesRegex(IndexError, 'index out of range'):
cgetitem2(arr, (), 2)
arr = np.array('12')
self.assertPreciseEqual(cgetitem2(arr, (), 0), getitem2(arr, (), 0))
with self.assertRaisesRegex(IndexError, 'index out of range'):
cgetitem2(arr, (), 2)
arr = np.array([b'12', b'3'])
self.assertPreciseEqual(cgetitem2(arr, 0, 0), getitem2(arr, 0, 0))
self.assertPreciseEqual(cgetitem2(arr, 0, 1), getitem2(arr, 0, 1))
self.assertPreciseEqual(cgetitem2(arr, 1, 0), getitem2(arr, 1, 0))
with self.assertRaisesRegex(IndexError, 'index out of range'):
cgetitem2(arr, 1, 1)
arr = np.array(['12', '3'])
self.assertPreciseEqual(cgetitem2(arr, 0, 0), getitem2(arr, 0, 0))
self.assertPreciseEqual(cgetitem2(arr, 0, 1), getitem2(arr, 0, 1))
self.assertPreciseEqual(cgetitem2(arr, 1, 0), getitem2(arr, 1, 0))
with self.assertRaisesRegex(IndexError, 'index out of range'):
cgetitem2(arr, 1, 1)
def test_getitem(self):
pyfunc = getitem
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, b'12', 1)
self._test(pyfunc, cfunc, np.array(b'12'), ())
self._test(pyfunc, cfunc, np.array([b'12', b'3']), 0)
self._test(pyfunc, cfunc, np.array([b'12', b'3']), 1)
self._test(pyfunc, cfunc, '12', 1)
self._test(pyfunc, cfunc, np.array('12'), ())
self._test(pyfunc, cfunc, np.array(['12', '3']), 0)
self._test(pyfunc, cfunc, np.array(['12', '3']), 1)
def test_getitem_key(self):
pyfunc = getitem_key
cfunc = jit(nopython=True)(pyfunc)
for x, i in [
(np.array('123'), ()),
(np.array(['123']), 0),
(np.array(b'123'), ()),
(np.array([b'123']), 0)
]:
d1 = {}
d2 = Dict.empty(from_dtype(x.dtype), types.int64)
pyfunc(d1, x, i)
cfunc(d2, x, i)
self.assertEqual(d1, d2)
# check for charseq to str conversion:
str(d2)
def test_setitem(self):
pyfunc = setitem
cfunc = jit(nopython=True)(pyfunc)
x = np.array(12)
self._test(pyfunc, cfunc, x, (), 34)
x1 = np.array(b'123')
x2 = np.array(b'123')
y1 = pyfunc(x1, (), b'34')
y2 = cfunc(x2, (), b'34')
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
x1 = np.array(['123'])
x2 = np.array(['123'])
y1 = pyfunc(x1, 0, '34')
y2 = cfunc(x2, 0, '34')
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
def test_setitem2(self):
pyfunc = setitem2
cfunc = jit(nopython=True)(pyfunc)
x1 = np.array(['123', 'ABC'])
x2 = np.array(['123', 'ABC'])
y1 = pyfunc(x1, 0, x1, 1)
y2 = cfunc(x2, 0, x2, 1)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
x1 = np.array([b'123', b'ABC'])
x2 = np.array([b'123', b'ABC'])
y1 = pyfunc(x1, 0, x1, 1)
y2 = cfunc(x2, 0, x2, 1)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
x1 = np.array('123')
x2 = np.array('123')
z1 = np.array('ABC')
z2 = np.array('ABC')
y1 = pyfunc(x1, (), z1, ())
y2 = cfunc(x2, (), z2, ())
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
x1 = np.array(123)
x2 = np.array(123)
z1 = 456,
z2 = 456,
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
# bytes
x1 = np.array(b'123')
x2 = np.array(b'123')
z1 = b'ABC',
z2 = b'ABC',
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
# UTF-8
x1 = np.array('123')
x2 = np.array('123')
z1 = 'ABC',
z2 = 'ABC',
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
# UTF-16
x1 = np.array('123')
x2 = np.array('123')
z1 = 'AB\u01e9',
z2 = 'AB\u01e9',
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
# UTF-32
x1 = np.array('123')
x2 = np.array('123')
z1 = 'AB\U00108a0e',
z2 = 'AB\U00108a0e',
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
# UTF-8, assign longer value (truncates as in numpy)
x1 = np.array('123')
x2 = np.array('123')
z1 = 'ABCD',
z2 = 'ABCD',
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
# UTF-8, assign shorter value
x1 = np.array('123')
x2 = np.array('123')
z1 = 'AB',
z2 = 'AB',
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
# bytes, assign longer value (truncates as in numpy)
x1 = np.array(b'123')
x2 = np.array(b'123')
z1 = b'ABCD',
z2 = b'ABCD',
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
# bytes, assign shorter value
x1 = np.array(b'123')
x2 = np.array(b'123')
z1 = b'AB',
z2 = b'AB',
y1 = pyfunc(x1, (), z1, 0)
y2 = cfunc(x2, (), z2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
def test_setitem_literal(self):
pyfunc = setitem_literal
cfunc = jit(nopython=True)(pyfunc)
x1 = np.array('ABC')
x2 = np.array('ABC')
y1 = pyfunc(x1, ())
y2 = cfunc(x2, ())
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
x1 = np.array(['ABC', '5678'])
x2 = np.array(['ABC', '5678'])
y1 = pyfunc(x1, 0)
y2 = cfunc(x2, 0)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
x1 = np.array(['ABC', '5678'])
x2 = np.array(['ABC', '5678'])
y1 = pyfunc(x1, 1)
y2 = cfunc(x2, 1)
self.assertPreciseEqual(x1, x2)
self.assertPreciseEqual(y1, y2)
def test_return_len(self):
pyfunc = return_len
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(''), ())
self._test(pyfunc, cfunc, np.array(b''), ())
self._test(pyfunc, cfunc, np.array(b'12'), ())
self._test(pyfunc, cfunc, np.array('12'), ())
self._test(pyfunc, cfunc, np.array([b'12', b'3']), 0)
self._test(pyfunc, cfunc, np.array(['12', '3']), 0)
self._test(pyfunc, cfunc, np.array([b'12', b'3']), 1)
self._test(pyfunc, cfunc, np.array(['12', '3']), 1)
def test_return_bool(self):
pyfunc = return_bool
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(''), ())
self._test(pyfunc, cfunc, np.array(b''), ())
self._test(pyfunc, cfunc, np.array(b'12'), ())
self._test(pyfunc, cfunc, np.array('12'), ())
self._test(pyfunc, cfunc, np.array([b'12', b'']), 0)
self._test(pyfunc, cfunc, np.array(['12', '']), 0)
self._test(pyfunc, cfunc, np.array([b'12', b'']), 1)
self._test(pyfunc, cfunc, np.array(['12', '']), 1)
def _test_op_getitem(self, pyfunc):
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array([1, 2]), 0, 1)
self._test(pyfunc, cfunc, '12', 0, 1)
self._test(pyfunc, cfunc, b'12', 0, 1)
self._test(pyfunc, cfunc, np.array(b'12'), (), ())
self._test(pyfunc, cfunc, np.array('1234'), (), ())
self._test(pyfunc, cfunc, np.array([b'1', b'2']), 0, 0)
self._test(pyfunc, cfunc, np.array([b'1', b'2']), 0, 1)
self._test(pyfunc, cfunc, np.array([b'12', b'3']), 0, 0)
self._test(pyfunc, cfunc, np.array([b'12', b'3']), 1, 1)
self._test(pyfunc, cfunc, np.array([b'12', b'3']), 0, 1)
self._test(pyfunc, cfunc, np.array([b'12', b'3']), 1, 0)
self._test(pyfunc, cfunc, np.array(['1', '2']), 0, 0)
self._test(pyfunc, cfunc, np.array(['1', '2']), 0, 1)
self._test(pyfunc, cfunc, np.array(['12', '3']), 0, 0)
self._test(pyfunc, cfunc, np.array(['12', '3']), 1, 1)
self._test(pyfunc, cfunc, np.array(['12', '3']), 0, 1)
self._test(pyfunc, cfunc, np.array(['12', '3']), 1, 0)
def test_equal_getitem(self):
self._test_op_getitem(equal_getitem)
def test_notequal_getitem(self):
self._test_op_getitem(notequal_getitem)
def test_lessthan_getitem(self):
self._test_op_getitem(lessthan_getitem)
def test_greaterthan_getitem(self):
self._test_op_getitem(greaterthan_getitem)
def test_lessequal_getitem(self):
self._test_op_getitem(lessequal_getitem)
def test_greaterequal_getitem(self):
self._test_op_getitem(greaterequal_getitem)
def _test_op_getitem_value(self, pyfunc):
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array([1, 2]), 0, 1)
self._test(pyfunc, cfunc, '12', 0, '1')
self._test(pyfunc, cfunc, '12', 1, '3')
self._test(pyfunc, cfunc, np.array('1234'), (), '1234')
self._test(pyfunc, cfunc, np.array(['1234']), 0, '1234')
self._test(pyfunc, cfunc, np.array(['1234']), 0, 'abc')
# fails: No conversion from array(bool, 1d, C) to bool
#self._test(pyfunc, cfunc, b'12', 0, b'1')
self._test(pyfunc, cfunc, np.array(b'12'), (), b'12')
self._test(pyfunc, cfunc, np.array([b'12']), 0, b'12')
self._test(pyfunc, cfunc, np.array([b'12']), 0, b'a')
def test_equal_getitem_value(self):
self._test_op_getitem_value(equal_getitem_value)
def test_notequal_getitem_value(self):
self._test_op_getitem_value(notequal_getitem_value)
def test_contains_getitem2(self):
pyfunc = contains_getitem2
cfunc = jit(nopython=True)(pyfunc)
x = np.array('123')
y = np.array('12345')
self._test(pyfunc, cfunc, x, (), y, ())
self._test(pyfunc, cfunc, y, (), x, ())
x = np.array(b'123')
y = np.array(b'12345')
self._test(pyfunc, cfunc, x, (), y, ())
self._test(pyfunc, cfunc, y, (), x, ())
x = ('123',)
y = np.array('12345')
self._test(pyfunc, cfunc, x, 0, y, ())
self._test(pyfunc, cfunc, y, (), x, 0)
x = (b'123',)
y = np.array(b'12345')
self._test(pyfunc, cfunc, x, 0, y, ())
self._test(pyfunc, cfunc, y, (), x, 0)
def test_return_isascii(self):
pyfunc = return_isascii
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1234'), ())
self._test(pyfunc, cfunc, np.array(['1234']), 0)
self._test(pyfunc, cfunc, np.array('1234\u00e9'), ())
self._test(pyfunc, cfunc, np.array(['1234\u00e9']), 0)
def test_return_isupper(self):
pyfunc = return_isupper
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('abc'), ())
self._test(pyfunc, cfunc, np.array(['abc']), 0)
self._test(pyfunc, cfunc, np.array(b'abc'), ())
self._test(pyfunc, cfunc, np.array([b'abc']), 0)
def test_return_str(self):
pyfunc = return_str
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1234'), ())
self._test(pyfunc, cfunc, np.array(['1234']), 0)
def test_return_bytes(self):
pyfunc = return_bytes
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(b'1234'), ())
self._test(pyfunc, cfunc, np.array([b'1234']), 0)
def test_return_upper(self):
pyfunc = return_upper
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('abc'), ())
self._test(pyfunc, cfunc, np.array(['abc']), 0)
self._test(pyfunc, cfunc, np.array(b'abc'), ())
self._test(pyfunc, cfunc, np.array([b'abc']), 0)
def test_hash(self):
pyfunc = return_hash
cfunc = jit(nopython=True)(pyfunc)
hash1 = pyfunc(np.array('123'), ())
hash2 = hash('123')
hash3 = hash(np.array('123')[()])
self.assertTrue(hash1 == hash2 == hash3)
self._test(pyfunc, cfunc, np.array('1234'), ())
self._test(pyfunc, cfunc, np.array(['1234']), 0)
self._test(pyfunc, cfunc, np.array('1234\u00e9'), ())
self._test(pyfunc, cfunc, np.array(['1234u00e9']), 0)
self._test(pyfunc, cfunc, np.array('1234\U00108a0e'), ())
self._test(pyfunc, cfunc, np.array(['1234\U00108a0e']), 0)
self._test(pyfunc, cfunc, np.array(b'1234'), ())
self._test(pyfunc, cfunc, np.array([b'1234']), 0)
def test_return_find(self):
pyfunc = return_find
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1234'), (), np.array('23'), ())
self._test(pyfunc, cfunc, np.array('1234'), (), ('23',), 0)
self._test(pyfunc, cfunc, ('1234',), 0, np.array('23'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), (), np.array(b'23'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), (), (b'23',), 0)
self._test(pyfunc, cfunc, (b'1234',), 0, np.array(b'23'), ())
def test_return_rfind(self):
pyfunc = return_rfind
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1234'), (), np.array('23'), ())
self._test(pyfunc, cfunc, np.array('1234'), (), ('23',), 0)
self._test(pyfunc, cfunc, ('1234',), 0, np.array('23'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), (), np.array(b'23'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), (), (b'23',), 0)
self._test(pyfunc, cfunc, (b'1234',), 0, np.array(b'23'), ())
def test_return_startswith(self):
pyfunc = return_startswith
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1234'), (), np.array('23'), ())
self._test(pyfunc, cfunc, np.array('1234'), (), ('23',), 0)
self._test(pyfunc, cfunc, ('1234',), 0, np.array('23'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), (), np.array(b'23'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), (), (b'23',), 0)
self._test(pyfunc, cfunc, (b'1234',), 0, np.array(b'23'), ())
def test_return_endswith(self):
pyfunc = return_endswith
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1234'), (), np.array('23'), ())
self._test(pyfunc, cfunc, np.array('1234'), (), ('23',), 0)
self._test(pyfunc, cfunc, ('1234',), 0, np.array('23'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), (), np.array(b'23'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), (), (b'23',), 0)
self._test(pyfunc, cfunc, (b'1234',), 0, np.array(b'23'), ())
def test_return_split1(self):
pyfunc = return_split1
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('12 34'), ())
self._test(pyfunc, cfunc, np.array(b'1234'), ())
def test_return_split2(self):
pyfunc = return_split2
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('12 34'), (), np.array(' '), ())
self._test(pyfunc, cfunc, np.array('12 34'), (), (' ',), 0)
self._test(pyfunc, cfunc, ('12 34',), 0, np.array(' '), ())
self._test(pyfunc, cfunc, np.array(b'12 34'), (), np.array(b' '), ())
self._test(pyfunc, cfunc, np.array(b'12 34'), (), (b' ',), 0)
self._test(pyfunc, cfunc, (b'12 34',), 0, np.array(b' '), ())
def test_return_split3(self):
pyfunc = return_split3
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (),
np.array(' '), (), 2)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), (' ',), 0, 2)
self._test(pyfunc, cfunc, ('1 2 3 4',), 0, np.array(' '), (), 2)
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (),
np.array(b' '), (), 2)
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), (b' ',), 0, 2)
self._test(pyfunc, cfunc, (b'1 2 3 4',), 0, np.array(b' '), (), 2)
def test_return_ljust1(self):
pyfunc = return_ljust1
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40)
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40)
def test_return_ljust2(self):
pyfunc = return_ljust2
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40,
np.array('='), ())
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40, ('=',), 0)
self._test(pyfunc, cfunc, ('1 2 3 4',), 0, 40, np.array('='), ())
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40,
np.array(b'='), ())
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40, (b'=',), 0)
self._test(pyfunc, cfunc, (b'1 2 3 4',), 0, 40, np.array(b'='), ())
def test_return_rjust1(self):
pyfunc = return_rjust1
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40)
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40)
def test_return_rjust2(self):
pyfunc = return_rjust2
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40,
np.array('='), ())
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40, ('=',), 0)
self._test(pyfunc, cfunc, ('1 2 3 4',), 0, 40, np.array('='), ())
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40,
np.array(b'='), ())
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40, (b'=',), 0)
self._test(pyfunc, cfunc, (b'1 2 3 4',), 0, 40, np.array(b'='), ())
def test_return_center1(self):
pyfunc = return_center1
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40)
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40)
def test_return_center2(self):
pyfunc = return_center2
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40,
np.array('='), ())
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40, ('=',), 0)
self._test(pyfunc, cfunc, ('1 2 3 4',), 0, 40, np.array('='), ())
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40,
np.array(b'='), ())
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40, (b'=',), 0)
self._test(pyfunc, cfunc, (b'1 2 3 4',), 0, 40, np.array(b'='), ())
def test_return_join(self):
pyfunc = return_join
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(','), (), np.array('abc'), (),
np.array('123'), ())
self._test(pyfunc, cfunc, np.array(','), (), np.array('abc'), (),
('123',), 0)
self._test(pyfunc, cfunc, (',',), 0, np.array('abc'), (),
np.array('123'), ())
self._test(pyfunc, cfunc, (',',), 0, np.array('abc'), (),
('123',), 0)
self._test(pyfunc, cfunc, np.array(b','), (), np.array(b'abc'), (),
np.array(b'123'), ())
self._test(pyfunc, cfunc, np.array(b','), (), np.array(b'abc'), (),
(b'123',), 0)
self._test(pyfunc, cfunc, (b',',), 0, np.array(b'abc'), (),
np.array(b'123'), ())
self._test(pyfunc, cfunc, (b',',), 0, np.array(b'abc'), (),
(b'123',), 0)
def test_return_zfill(self):
pyfunc = return_zfill
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('1 2 3 4'), (), 40)
self._test(pyfunc, cfunc, np.array(b'1 2 3 4'), (), 40)
def test_return_lstrip1(self):
pyfunc = return_lstrip1
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(' 123 '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), ())
def test_return_lstrip2(self):
pyfunc = return_lstrip2
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(' 123 '), (), np.array(' '), ())
self._test(pyfunc, cfunc, np.array(' 123 '), (), (' ',), 0)
self._test(pyfunc, cfunc, (' 123 ',), 0, np.array(' '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), (), np.array(b' '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), (), (b' ',), 0)
self._test(pyfunc, cfunc, (b' 123 ',), 0, np.array(b' '), ())
def test_return_rstrip1(self):
pyfunc = return_rstrip1
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(' 123 '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), ())
def test_return_rstrip2(self):
pyfunc = return_rstrip2
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(' 123 '), (), np.array(' '), ())
self._test(pyfunc, cfunc, np.array(' 123 '), (), (' ',), 0)
self._test(pyfunc, cfunc, (' 123 ',), 0, np.array(' '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), (), np.array(b' '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), (), (b' ',), 0)
self._test(pyfunc, cfunc, (b' 123 ',), 0, np.array(b' '), ())
def test_return_strip1(self):
pyfunc = return_strip1
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(' 123 '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), ())
def test_return_strip2(self):
pyfunc = return_strip2
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(' 123 '), (), np.array(' '), ())
self._test(pyfunc, cfunc, np.array(' 123 '), (), (' ',), 0)
self._test(pyfunc, cfunc, (' 123 ',), 0, np.array(' '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), (), np.array(b' '), ())
self._test(pyfunc, cfunc, np.array(b' 123 '), (), (b' ',), 0)
self._test(pyfunc, cfunc, (b' 123 ',), 0, np.array(b' '), ())
def test_return_add(self):
pyfunc = return_add
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('ab'), (), np.array('cd'), ())
self._test(pyfunc, cfunc, np.array('ab'), (), ('cd',), 0)
self._test(pyfunc, cfunc, ('ab',), 0, np.array('cd'), ())
self._test(pyfunc, cfunc, np.array(b'ab'), (), np.array(b'cd'), ())
self._test(pyfunc, cfunc, np.array(b'ab'), (), (b'cd',), 0)
self._test(pyfunc, cfunc, (b'ab',), 0, np.array(b'cd'), ())
def test_return_iadd(self):
pyfunc = return_iadd
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('ab'), (), np.array('cd'), ())
self._test(pyfunc, cfunc, np.array('ab'), (), ('cd',), 0)
expected = pyfunc(['ab'], 0, np.array('cd'), ())
result = pyfunc(['ab'], 0, np.array('cd'), ())
self.assertPreciseEqual(result, expected)
self._test(pyfunc, cfunc, np.array(b'ab'), (), np.array(b'cd'), ())
self._test(pyfunc, cfunc, np.array(b'ab'), (), (b'cd',), 0)
expected = pyfunc([b'ab'], 0, np.array(b'cd'), ())
result = pyfunc([b'ab'], 0, np.array(b'cd'), ())
self.assertPreciseEqual(result, expected)
def test_return_mul(self):
pyfunc = return_mul
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('ab'), (), (5,), 0)
self._test(pyfunc, cfunc, (5,), 0, np.array('ab'), ())
self._test(pyfunc, cfunc, np.array(b'ab'), (), (5,), 0)
self._test(pyfunc, cfunc, (5,), 0, np.array(b'ab'), ())
def test_return_not(self):
pyfunc = return_not
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array('ab'), ())
self._test(pyfunc, cfunc, np.array(b'ab'), ())
self._test(pyfunc, cfunc, (b'ab',), 0)
self._test(pyfunc, cfunc, np.array(''), ())
self._test(pyfunc, cfunc, np.array(b''), ())
self._test(pyfunc, cfunc, (b'',), 0)
def test_join(self):
pyfunc = join_string_array
cfunc = jit(nopython=True)(pyfunc)
self._test(pyfunc, cfunc, np.array(["hi", "there"]))
if __name__ == '__main__':
unittest.main()