blob: 832f192b0a5ac48ad1258545ad35cf72723274ed [file] [log] [blame]
Roger E. Masse8db1b071996-12-09 20:09:16 +00001#! /usr/bin/env python
2"""Test the arraymodule.
Roger E. Massefab8ab81996-12-20 22:36:52 +00003 Roger E. Masse
Roger E. Masse8db1b071996-12-09 20:09:16 +00004"""
5import array
Guido van Rossumc9f8f141997-04-09 20:51:54 +00006from test_support import verbose, TESTFN, unlink
Roger E. Massefab8ab81996-12-20 22:36:52 +00007
8def main():
9
10 testtype('c', 'c')
11
12 for type in (['b', 'h', 'i', 'l', 'f', 'd']):
13 testtype(type, 1)
14
Guido van Rossumc9f8f141997-04-09 20:51:54 +000015 unlink(TESTFN)
16
Roger E. Masse8db1b071996-12-09 20:09:16 +000017
18def testtype(type, example):
19
Roger E. Masse8db1b071996-12-09 20:09:16 +000020 a = array.array(type)
21 a.append(example)
Roger E. Massefab8ab81996-12-20 22:36:52 +000022 if verbose:
23 print 40*'*'
24 print 'array after append: ', a
Roger E. Masse8db1b071996-12-09 20:09:16 +000025 a.typecode
26 a.itemsize
27 if a.typecode in ('i', 'b', 'h', 'l'):
28 a.byteswap()
29
30 if a.typecode == 'c':
Guido van Rossumc9f8f141997-04-09 20:51:54 +000031 f = open(TESTFN, "w")
32 f.write("The quick brown fox jumps over the lazy dog.\n")
33 f.close()
34 f = open(TESTFN, 'r')
Roger E. Masse8db1b071996-12-09 20:09:16 +000035 a.fromfile(f, 10)
Guido van Rossumc9f8f141997-04-09 20:51:54 +000036 f.close()
Roger E. Massefab8ab81996-12-20 22:36:52 +000037 if verbose:
Guido van Rossumc9f8f141997-04-09 20:51:54 +000038 print 'char array with 10 bytes of TESTFN appended: ', a
Roger E. Masse8db1b071996-12-09 20:09:16 +000039 a.fromlist(['a', 'b', 'c'])
Roger E. Massefab8ab81996-12-20 22:36:52 +000040 if verbose:
41 print 'char array with list appended: ', a
Roger E. Masse8db1b071996-12-09 20:09:16 +000042
43 a.insert(0, example)
Roger E. Massefab8ab81996-12-20 22:36:52 +000044 if verbose:
45 print 'array of %s after inserting another:' % a.typecode, a
Guido van Rossumc9f8f141997-04-09 20:51:54 +000046 f = open(TESTFN, 'w')
Roger E. Masse8db1b071996-12-09 20:09:16 +000047 a.tofile(f)
Guido van Rossumc9f8f141997-04-09 20:51:54 +000048 f.close()
Roger E. Masse8db1b071996-12-09 20:09:16 +000049 a.tolist()
50 a.tostring()
Roger E. Massefab8ab81996-12-20 22:36:52 +000051 if verbose:
52 print 'array of %s converted to a list: ' % a.typecode, a.tolist()
53 if verbose:
54 print 'array of %s converted to a string: ' \
55 % a.typecode, a.tostring()
Roger E. Masse8db1b071996-12-09 20:09:16 +000056
Guido van Rossumc9f8f141997-04-09 20:51:54 +000057
Roger E. Massefab8ab81996-12-20 22:36:52 +000058main()
Roger E. Masse8db1b071996-12-09 20:09:16 +000059