home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_348 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  4.1 KB  |  125 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import unittest
  5. from ctypes import *
  6. formats = 'bBhHiIlLqQfd'
  7. formats = (c_byte, c_ubyte, c_short, c_ushort, c_int, c_uint, c_long, c_ulonglong, c_float, c_double, c_longdouble)
  8.  
  9. class ArrayTestCase(unittest.TestCase):
  10.     
  11.     def test_simple(self):
  12.         init = range(15, 25)
  13.         for fmt in formats:
  14.             alen = len(init)
  15.             int_array = ARRAY(fmt, alen)
  16.             ia = int_array(*init)
  17.             self.failUnlessEqual(len(ia), alen)
  18.             values = [ ia[i] for i in range(len(init)) ]
  19.             self.failUnlessEqual(values, init)
  20.             setitem = setitem
  21.             import operator
  22.             new_values = range(42, 42 + alen)
  23.             [ setitem(ia, n, new_values[n]) for n in range(alen) ]
  24.             values = [ ia[i] for i in range(len(init)) ]
  25.             self.failUnlessEqual(values, new_values)
  26.             ia = int_array()
  27.             values = [ ia[i] for i in range(len(init)) ]
  28.             self.failUnlessEqual(values, [
  29.                 0] * len(init))
  30.             self.assertRaises(IndexError, int_array, *range(alen * 2))
  31.         
  32.         CharArray = ARRAY(c_char, 3)
  33.         ca = CharArray('a', 'b', 'c')
  34.         self.assertRaises(TypeError, CharArray, 'abc')
  35.         self.failUnlessEqual(ca[0], 'a')
  36.         self.failUnlessEqual(ca[1], 'b')
  37.         self.failUnlessEqual(ca[2], 'c')
  38.         self.failUnlessEqual(ca[-3], 'a')
  39.         self.failUnlessEqual(ca[-2], 'b')
  40.         self.failUnlessEqual(ca[-1], 'c')
  41.         self.failUnlessEqual(len(ca), 3)
  42.         getslice = getslice
  43.         delitem = delitem
  44.         import operator
  45.         self.assertRaises(TypeError, getslice, ca, 0, 1, -1)
  46.         self.assertRaises(TypeError, delitem, ca, 0)
  47.  
  48.     
  49.     def test_numeric_arrays(self):
  50.         alen = 5
  51.         numarray = ARRAY(c_int, alen)
  52.         na = numarray()
  53.         values = [ na[i] for i in range(alen) ]
  54.         self.failUnlessEqual(values, [
  55.             0] * alen)
  56.         na = numarray(*[
  57.             c_int()] * alen)
  58.         values = [ na[i] for i in range(alen) ]
  59.         self.failUnlessEqual(values, [
  60.             0] * alen)
  61.         na = numarray(1, 2, 3, 4, 5)
  62.         values = [ i for i in na ]
  63.         self.failUnlessEqual(values, [
  64.             1,
  65.             2,
  66.             3,
  67.             4,
  68.             5])
  69.         na = numarray(*map(c_int, (1, 2, 3, 4, 5)))
  70.         values = [ i for i in na ]
  71.         self.failUnlessEqual(values, [
  72.             1,
  73.             2,
  74.             3,
  75.             4,
  76.             5])
  77.  
  78.     
  79.     def test_classcache(self):
  80.         self.failUnless(ARRAY(c_int, 3) is not ARRAY(c_int, 4))
  81.         self.failUnless(ARRAY(c_int, 3) is ARRAY(c_int, 3))
  82.  
  83.     
  84.     def test_from_address(self):
  85.         p = create_string_buffer('foo')
  86.         sz = (c_char * 3).from_address(addressof(p))
  87.         self.failUnlessEqual(sz[:], 'foo')
  88.         self.failUnlessEqual(sz[::], 'foo')
  89.         self.failUnlessEqual(sz[::-1], 'oof')
  90.         self.failUnlessEqual(sz[::3], 'f')
  91.         self.failUnlessEqual(sz[1:4:2], 'o')
  92.         self.failUnlessEqual(sz.value, 'foo')
  93.  
  94.     
  95.     try:
  96.         create_unicode_buffer
  97.     except NameError:
  98.         pass
  99.  
  100.     
  101.     def test_from_addressW(self):
  102.         p = create_unicode_buffer('foo')
  103.         sz = (c_wchar * 3).from_address(addressof(p))
  104.         self.failUnlessEqual(sz[:], 'foo')
  105.         self.failUnlessEqual(sz[::], 'foo')
  106.         self.failUnlessEqual(sz[::-1], 'oof')
  107.         self.failUnlessEqual(sz[::3], 'f')
  108.         self.failUnlessEqual(sz[1:4:2], 'o')
  109.         self.failUnlessEqual(sz.value, 'foo')
  110.  
  111.     
  112.     def test_cache(self):
  113.         
  114.         class my_int(c_int):
  115.             pass
  116.  
  117.         t1 = my_int * 1
  118.         t2 = my_int * 1
  119.         self.failUnless(t1 is t2)
  120.  
  121.  
  122. if __name__ == '__main__':
  123.     unittest.main()
  124.  
  125.