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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import unittest
  5. from ctypes import *
  6. from binascii import hexlify
  7. import re
  8.  
  9. def dump(obj):
  10.     h = hexlify(buffer(obj))
  11.     return re.sub('(..)', '\\1-', h)[:-1]
  12.  
  13.  
  14. class Value(Structure):
  15.     _fields_ = [
  16.         ('val', c_byte)]
  17.  
  18.  
  19. class Container(Structure):
  20.     _fields_ = [
  21.         ('pvalues', POINTER(Value))]
  22.  
  23.  
  24. class Test(unittest.TestCase):
  25.     
  26.     def test(self):
  27.         val_array = Value * 4()
  28.         c = Container()
  29.         c.pvalues = val_array
  30.         self.failUnlessEqual('00-00-00-00', dump(val_array))
  31.         for i in range(4):
  32.             c.pvalues[i].val = i + 1
  33.         
  34.         values = [ c.pvalues[i].val for i in range(4) ]
  35.         self.failUnlessEqual((values, dump(val_array)), ([
  36.             1,
  37.             2,
  38.             3,
  39.             4], '01-02-03-04'))
  40.  
  41.     
  42.     def test_2(self):
  43.         val_array = Value * 4()
  44.         self.failUnlessEqual('00-00-00-00', dump(val_array))
  45.         ptr = cast(val_array, POINTER(Value))
  46.         for i in range(4):
  47.             ptr[i].val = i + 1
  48.         
  49.         values = [ ptr[i].val for i in range(4) ]
  50.         self.failUnlessEqual((values, dump(val_array)), ([
  51.             1,
  52.             2,
  53.             3,
  54.             4], '01-02-03-04'))
  55.  
  56.  
  57. if __name__ == '__main__':
  58.     unittest.main()
  59.  
  60.