diff options
author | Neil Schemenauer <nascheme@enme.ucalgary.ca> | 2002-03-24 01:24:54 (GMT) |
---|---|---|
committer | Neil Schemenauer <nascheme@enme.ucalgary.ca> | 2002-03-24 01:24:54 (GMT) |
commit | eff724490f002eb065da12a33a69e0e3dc22812f (patch) | |
tree | 5c86a0c1c40f5357411b5e5f8b4834bdd6f5a9f5 /Lib/test | |
parent | 0f75e0dcad9b193fc11855b5c59d4c9bd42e533f (diff) | |
download | cpython-eff724490f002eb065da12a33a69e0e3dc22812f.zip cpython-eff724490f002eb065da12a33a69e0e3dc22812f.tar.gz cpython-eff724490f002eb065da12a33a69e0e3dc22812f.tar.bz2 |
Add more tests for built-in types. Add tests for buffer objects.
Closes SF patch 494871.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/output/test_types | 1 | ||||
-rw-r--r-- | Lib/test/test_types.py | 118 |
2 files changed, 119 insertions, 0 deletions
diff --git a/Lib/test/output/test_types b/Lib/test/output/test_types index 065594d..7e90dc0 100644 --- a/Lib/test/output/test_types +++ b/Lib/test/output/test_types @@ -13,3 +13,4 @@ test_types 6.5.3 Lists 6.5.3a Additional list operations 6.6 Mappings == Dictionaries +Buffers diff --git a/Lib/test/test_types.py b/Lib/test/test_types.py index 5d94572..26535c4 100644 --- a/Lib/test/test_types.py +++ b/Lib/test/test_types.py @@ -49,6 +49,38 @@ else: raise TestFailed, 'membership test failed' if None is None and [] is not []: pass else: raise TestFailed, 'identity test failed' +try: float('') +except ValueError: pass +else: raise TestFailed, "float('') didn't raise ValueError" + +try: float('5\0') +except ValueError: pass +else: raise TestFailed, "float('5\0') didn't raise ValueError" + +try: 5.0 / 0.0 +except ZeroDivisionError: pass +else: raise TestFailed, "5.0 / 0.0 didn't raise ZeroDivisionError" + +try: 5.0 // 0.0 +except ZeroDivisionError: pass +else: raise TestFailed, "5.0 // 0.0 didn't raise ZeroDivisionError" + +try: 5.0 % 0.0 +except ZeroDivisionError: pass +else: raise TestFailed, "5.0 % 0.0 didn't raise ZeroDivisionError" + +try: 5 / 0L +except ZeroDivisionError: pass +else: raise TestFailed, "5 / 0L didn't raise ZeroDivisionError" + +try: 5 // 0L +except ZeroDivisionError: pass +else: raise TestFailed, "5 // 0L didn't raise ZeroDivisionError" + +try: 5 % 0L +except ZeroDivisionError: pass +else: raise TestFailed, "5 % 0L didn't raise ZeroDivisionError" + print '6.4 Numeric types (mostly conversions)' if 0 != 0L or 0 != 0.0 or 0L != 0.0: raise TestFailed, 'mixed comparisons' if 1 != 1L or 1 != 1.0 or 1L != 1.0: raise TestFailed, 'mixed comparisons' @@ -116,6 +148,23 @@ if int(long(x)) != x: raise TestFailed, 'long op' try: int(long(x)-1L) except OverflowError: pass else:raise TestFailed, 'long op' + +try: 5 << -5 +except ValueError: pass +else: raise TestFailed, 'int negative shift <<' + +try: 5L << -5L +except ValueError: pass +else: raise TestFailed, 'long negative shift <<' + +try: 5 >> -5 +except ValueError: pass +else: raise TestFailed, 'int negative shift >>' + +try: 5L >> -5L +except ValueError: pass +else: raise TestFailed, 'long negative shift >>' + print '6.4.3 Floating point numbers' if 12.0 + 24.0 != 36.0: raise TestFailed, 'float op' if 12.0 + (-24.0) != -12.0: raise TestFailed, 'float op' @@ -149,6 +198,14 @@ if 0*(1,2,3) != (): raise TestFailed, 'tuple repetition 0*' if min((1,2)) != 1 or max((1,2)) != 2: raise TestFailed, 'min/max tuple' if 0 in (0,1,2) and 1 in (0,1,2) and 2 in (0,1,2) and 3 not in (0,1,2): pass else: raise TestFailed, 'in/not in tuple' +try: ()[0] +except IndexError: pass +else: raise TestFailed, "tuple index error didn't raise IndexError" +x = () +x += () +if x != (): raise TestFailed, 'tuple inplace add from () to () failed' +x += (1,) +if x != (1,): raise TestFailed, 'tuple resize from () failed' print '6.5.3 Lists' if len([]) != 0: raise TestFailed, 'len([])' @@ -174,6 +231,28 @@ a = [1, 2, 3, 4, 5] a[1:-1] = a if a != [1, 1, 2, 3, 4, 5, 5]: raise TestFailed, "list self-slice-assign (center)" +try: [][0] +except IndexError: pass +else: raise TestFailed, "list index error didn't raise IndexError" +try: [][0] = 5 +except IndexError: pass +else: raise TestFailed, "list assignment index error didn't raise IndexError" +try: [].pop() +except IndexError: pass +else: raise TestFailed, "empty list.pop() didn't raise IndexError" +try: [1].pop(5) +except IndexError: pass +else: raise TestFailed, "[1].pop(5) didn't raise IndexError" +try: [][0:1] = 5 +except TypeError: pass +else: raise TestFailed, "bad list slice assignment didn't raise TypeError" +try: [].extend(None) +except TypeError: pass +else: raise TestFailed, "list.extend(None) didn't raise TypeError" +a = [1, 2, 3, 4] +a *= 0 +if a != []: + raise TestFailed, "list inplace repeat" print '6.5.3a Additional list operations' @@ -246,6 +325,8 @@ if a[ 3: pow(2,145L) ] != [3,4]: print '6.6 Mappings == Dictionaries' d = {} if d.keys() != []: raise TestFailed, '{}.keys()' +if d.values() != []: raise TestFailed, '{}.values()' +if d.items() != []: raise TestFailed, '{}.items()' if d.has_key('a') != 0: raise TestFailed, '{}.has_key(\'a\')' if ('a' in d) != 0: raise TestFailed, "'a' in {}" if ('a' not in d) != 1: raise TestFailed, "'a' not in {}" @@ -390,6 +471,20 @@ for copymode in -1, +1: if a: raise TestFailed, 'a not empty after popitems: %s' % str(a) if b: raise TestFailed, 'b not empty after popitems: %s' % str(b) +d.clear() +try: d.popitem() +except KeyError: pass +else: raise TestFailed, "{}.popitem doesn't raise KeyError" + +d[1] = 1 +try: + for i in d: + d[i+1] = 1 +except RuntimeError: + pass +else: + raise TestFailed, "changing dict size during iteration doesn't raise Error" + try: type(1, 2) except TypeError: pass else: raise TestFailed, 'type(), w/2 args expected TypeError' @@ -397,3 +492,26 @@ else: raise TestFailed, 'type(), w/2 args expected TypeError' try: type(1, 2, 3, 4) except TypeError: pass else: raise TestFailed, 'type(), w/4 args expected TypeError' + +print 'Buffers' +try: buffer('asdf', -1) +except ValueError: pass +else: raise TestFailed, "buffer('asdf', -1) should raise ValueError" + +try: buffer(None) +except TypeError: pass +else: raise TestFailed, "buffer(None) should raise TypeError" + +a = buffer('asdf') +hash(a) +b = a * 5 +if a == b: + raise TestFailed, 'buffers should not be equal' + +try: a[1] = 'g' +except TypeError: pass +else: raise TestFailed, "buffer assignment should raise TypeError" + +try: a[0:1] = 'g' +except TypeError: pass +else: raise TestFailed, "buffer slice assignment should raise TypeError" |