1# test_inttypes.py -- Test Metakit Python bindings for integral types 2# $Id: test_inttypes.py 1230 2007-03-09 15:58:53Z jcw $ 3# This is part of Metakit, see http://www.equi4.com/metakit/ 4 5from mktestsupport import * 6 7v = ViewTester('test[intf:I,longf:L]') 8 9# defaults 10v.insert(intf=0, longf=0) 11 12# int field 13v.insert(intf=1, longf=0) 14v.insert(intf=-5, longf=0) 15v.insert(intf=MAXINT, longf=0) 16v.insert(intf=MININT, longf=0) 17v.reject(int_long_error, intf=MAXINT + 1, longf=0) 18v.reject(int_long_error, intf=MININT - 1, longf=0) 19if int_long_integrated: 20 v.reject(OverflowError, intf=MAXLONGLONG, longf=0) 21 v.reject(OverflowError, intf=MINLONGLONG, longf=0) 22 23# long field 24v.insert(intf=0, longf=-1L) 25v.insert(intf=0, longf=5L) 26v.insert(intf=0, longf=MAXLONGLONG) 27v.insert(intf=0, longf=MINLONGLONG) 28v.reject(ValueError, intf=0, longf=MAXULONGLONG) 29v.reject(ValueError, intf=0, longf=MAXLONGLONG + 1) 30v.reject(ValueError, intf=0, longf=MAXULONGLONG) 31v.reject(ValueError, intf=0, longf=MINLONGLONG - 1) 32 33# mixed valid int/long 34v.insert(intf=1, longf=2) 35v.insert(intf=-5, longf=-2**30) 36 37# implicit conversion to int 38v.insert(intf=14L, longf=0) 39v.insert(intf=-30L, longf=0) 40v.insert(intf=45.0, longf=0) 41v.insert(intf=21.4, longf=0) 42v.reject(int_long_error, intf=float(MAXINT + 1), longf=0) 43v.reject(int_long_error, intf=float(MININT - 1), longf=0) 44v.reject(TypeError, intf='215', longf=0) 45v.reject(TypeError, intf='-318.19', longf=0) 46v.reject(TypeError, intf=str(MAXINT + 1), longf=0) 47 48# implicit conversion to long 49v.insert(intf=0, longf=278) 50v.insert(intf=0, longf=-213) 51v.insert(intf=0, longf=95.0) 52v.insert(intf=0, longf=27.3) 53v.reject(ValueError, intf=0, longf=float(2 * MAXLONGLONG)) 54v.reject(ValueError, intf=0, longf=float(2 * MINLONGLONG)) 55v.reject(TypeError, intf=0, longf=str(MAXLONGLONG)) 56v.reject(TypeError, intf=0, longf=str(MINLONGLONG)) 57v.reject(TypeError, intf=0, longf='-21.39') 58v.reject(TypeError, intf=0, longf=str(MAXULONGLONG)) 59 60# XXX should repeat with assignment instead of appending 61# XXX test v.select() 62 63v.finished() 64