4848LARGE = 0x7FFFFFFF
4949VERY_LARGE = 0xFF0000121212121212121242
5050
51- from _testcapi import UCHAR_MAX , USHRT_MAX , UINT_MAX , ULONG_MAX , INT_MAX , \
52- INT_MIN , LONG_MIN , LONG_MAX , PY_SSIZE_T_MIN , PY_SSIZE_T_MAX , \
51+ from _testcapi import UCHAR_MAX , USHRT_MAX , UINT_MAX , ULONG_MAX , ULLONG_MAX , INT_MAX , \
52+ INT_MIN , LONG_MIN , LONG_MAX , LLONG_MIN , LLONG_MAX , PY_SSIZE_T_MIN , PY_SSIZE_T_MAX , \
5353 SHRT_MIN , SHRT_MAX , FLT_MIN , FLT_MAX , DBL_MIN , DBL_MAX
5454
5555DBL_MAX_EXP = sys .float_info .max_exp
5656INF = float ('inf' )
5757NAN = float ('nan' )
5858
5959# fake, they are not defined in Python's header files
60- LLONG_MAX = 2 ** 63 - 1
61- LLONG_MIN = - 2 ** 63
62- ULLONG_MAX = 2 ** 64 - 1
60+ SCHAR_MAX = UCHAR_MAX // 2
61+ SCHAR_MIN = SCHAR_MAX - UCHAR_MAX
6362
6463NULL = None
6564
@@ -209,10 +208,23 @@ def test_B(self):
209208 self .assertEqual (UCHAR_MAX , getargs_B (- 1 ))
210209 self .assertEqual (0 , getargs_B (0 ))
211210 self .assertEqual (UCHAR_MAX , getargs_B (UCHAR_MAX ))
212- self .assertEqual (0 , getargs_B (UCHAR_MAX + 1 ))
211+ with self .assertWarns (DeprecationWarning ):
212+ self .assertEqual (0 , getargs_B (UCHAR_MAX + 1 ))
213+ with self .assertWarns (DeprecationWarning ):
214+ self .assertEqual (1 , getargs_B (- UCHAR_MAX ))
215+ self .assertEqual (SCHAR_MAX + 1 , getargs_B (SCHAR_MIN ))
216+ with self .assertWarns (DeprecationWarning ):
217+ self .assertEqual (SCHAR_MAX , getargs_B (SCHAR_MIN - 1 ))
218+
219+ self .assertEqual (128 , getargs_B (- 2 ** 7 ))
220+ with self .assertWarns (DeprecationWarning ):
221+ self .assertEqual (127 , getargs_B (- 2 ** 7 - 1 ))
213222
214223 self .assertEqual (42 , getargs_B (42 ))
215- self .assertEqual (UCHAR_MAX & VERY_LARGE , getargs_B (VERY_LARGE ))
224+ with self .assertWarns (DeprecationWarning ):
225+ self .assertEqual (UCHAR_MAX & VERY_LARGE , getargs_B (VERY_LARGE ))
226+ with self .assertWarns (DeprecationWarning ):
227+ self .assertEqual (UCHAR_MAX & - VERY_LARGE , getargs_B (- VERY_LARGE ))
216228
217229 def test_H (self ):
218230 from _testcapi import getargs_H
@@ -233,11 +245,18 @@ def test_H(self):
233245 self .assertEqual (USHRT_MAX , getargs_H (- 1 ))
234246 self .assertEqual (0 , getargs_H (0 ))
235247 self .assertEqual (USHRT_MAX , getargs_H (USHRT_MAX ))
236- self .assertEqual (0 , getargs_H (USHRT_MAX + 1 ))
248+ with self .assertWarns (DeprecationWarning ):
249+ self .assertEqual (0 , getargs_H (USHRT_MAX + 1 ))
250+ self .assertEqual (SHRT_MAX + 1 , getargs_H (SHRT_MIN ))
251+ with self .assertWarns (DeprecationWarning ):
252+ self .assertEqual (SHRT_MAX , getargs_H (SHRT_MIN - 1 ))
237253
238254 self .assertEqual (42 , getargs_H (42 ))
239255
240- self .assertEqual (VERY_LARGE & USHRT_MAX , getargs_H (VERY_LARGE ))
256+ with self .assertWarns (DeprecationWarning ):
257+ self .assertEqual (USHRT_MAX & VERY_LARGE , getargs_H (VERY_LARGE ))
258+ with self .assertWarns (DeprecationWarning ):
259+ self .assertEqual (USHRT_MAX & - VERY_LARGE , getargs_H (- VERY_LARGE ))
241260
242261 def test_I (self ):
243262 from _testcapi import getargs_I
@@ -258,11 +277,18 @@ def test_I(self):
258277 self .assertEqual (UINT_MAX , getargs_I (- 1 ))
259278 self .assertEqual (0 , getargs_I (0 ))
260279 self .assertEqual (UINT_MAX , getargs_I (UINT_MAX ))
261- self .assertEqual (0 , getargs_I (UINT_MAX + 1 ))
280+ with self .assertWarns (DeprecationWarning ):
281+ self .assertEqual (0 , getargs_I (UINT_MAX + 1 ))
282+ self .assertEqual (INT_MAX + 1 , getargs_I (INT_MIN ))
283+ with self .assertWarns (DeprecationWarning ):
284+ self .assertEqual (INT_MAX , getargs_I (INT_MIN - 1 ))
262285
263286 self .assertEqual (42 , getargs_I (42 ))
264287
265- self .assertEqual (VERY_LARGE & UINT_MAX , getargs_I (VERY_LARGE ))
288+ with self .assertWarns (DeprecationWarning ):
289+ self .assertEqual (UINT_MAX & VERY_LARGE , getargs_I (VERY_LARGE ))
290+ with self .assertWarns (DeprecationWarning ):
291+ self .assertEqual (UINT_MAX & - VERY_LARGE , getargs_I (- VERY_LARGE ))
266292
267293 def test_k (self ):
268294 from _testcapi import getargs_k
@@ -283,11 +309,18 @@ def test_k(self):
283309 self .assertEqual (ULONG_MAX , getargs_k (- 1 ))
284310 self .assertEqual (0 , getargs_k (0 ))
285311 self .assertEqual (ULONG_MAX , getargs_k (ULONG_MAX ))
286- self .assertEqual (0 , getargs_k (ULONG_MAX + 1 ))
312+ with self .assertWarns (DeprecationWarning ):
313+ self .assertEqual (0 , getargs_k (ULONG_MAX + 1 ))
314+ self .assertEqual (LONG_MAX + 1 , getargs_k (LONG_MIN ))
315+ with self .assertWarns (DeprecationWarning ):
316+ self .assertEqual (LONG_MAX , getargs_k (LONG_MIN - 1 ))
287317
288318 self .assertEqual (42 , getargs_k (42 ))
289319
290- self .assertEqual (VERY_LARGE & ULONG_MAX , getargs_k (VERY_LARGE ))
320+ with self .assertWarns (DeprecationWarning ):
321+ self .assertEqual (ULONG_MAX & VERY_LARGE , getargs_k (VERY_LARGE ))
322+ with self .assertWarns (DeprecationWarning ):
323+ self .assertEqual (ULONG_MAX & - VERY_LARGE , getargs_k (- VERY_LARGE ))
291324
292325class Signed_TestCase (unittest .TestCase ):
293326 def test_h (self ):
@@ -434,11 +467,18 @@ def test_K(self):
434467 self .assertEqual (ULLONG_MAX , getargs_K (ULLONG_MAX ))
435468 self .assertEqual (0 , getargs_K (0 ))
436469 self .assertEqual (ULLONG_MAX , getargs_K (ULLONG_MAX ))
437- self .assertEqual (0 , getargs_K (ULLONG_MAX + 1 ))
470+ with self .assertWarns (DeprecationWarning ):
471+ self .assertEqual (0 , getargs_K (ULLONG_MAX + 1 ))
472+ self .assertEqual (LLONG_MAX + 1 , getargs_K (LLONG_MIN ))
473+ with self .assertWarns (DeprecationWarning ):
474+ self .assertEqual (LLONG_MAX , getargs_K (LLONG_MIN - 1 ))
438475
439476 self .assertEqual (42 , getargs_K (42 ))
440477
441- self .assertEqual (VERY_LARGE & ULLONG_MAX , getargs_K (VERY_LARGE ))
478+ with self .assertWarns (DeprecationWarning ):
479+ self .assertEqual (ULLONG_MAX & VERY_LARGE , getargs_K (VERY_LARGE ))
480+ with self .assertWarns (DeprecationWarning ):
481+ self .assertEqual (ULLONG_MAX & - VERY_LARGE , getargs_K (- VERY_LARGE ))
442482
443483
444484class Float_TestCase (unittest .TestCase , FloatsAreIdenticalMixin ):
0 commit comments