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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from ctypes import *
  5. import array
  6. import gc
  7. import unittest
  8.  
  9. class X(Structure):
  10.     _fields_ = [
  11.         ('c_int', c_int)]
  12.     init_called = False
  13.     
  14.     def __init__(self):
  15.         self._init_called = True
  16.  
  17.  
  18.  
  19. class Test(unittest.TestCase):
  20.     
  21.     def test_fom_buffer(self):
  22.         a = array.array('i', range(16))
  23.         x = (c_int * 16).from_buffer(a)
  24.         y = X.from_buffer(a)
  25.         self.assertEqual(y.c_int, a[0])
  26.         self.failIf(y.init_called)
  27.         self.assertEqual(x[:], a.tolist())
  28.         (a[0], a[-1]) = (200, -200)
  29.         self.assertEqual(x[:], a.tolist())
  30.         self.assert_(a in x._objects.values())
  31.         self.assertRaises(ValueError, c_int.from_buffer, a, -1)
  32.         expected = x[:]
  33.         del a
  34.         gc.collect()
  35.         gc.collect()
  36.         gc.collect()
  37.         self.assertEqual(x[:], expected)
  38.         self.assertRaises(TypeError, (c_char * 16).from_buffer, 'aaaaaaaaaaaaaaaa')
  39.  
  40.     
  41.     def test_fom_buffer_with_offset(self):
  42.         a = array.array('i', range(16))
  43.         x = (c_int * 15).from_buffer(a, sizeof(c_int))
  44.         self.assertEqual(x[:], a.tolist()[1:])
  45.         self.assertRaises((ValueError,), (lambda : (c_int * 16).from_buffer(a, sizeof(c_int))))
  46.         self.assertRaises((ValueError,), (lambda : (c_int * 1).from_buffer(a, 16 * sizeof(c_int))))
  47.  
  48.     
  49.     def test_from_buffer_copy(self):
  50.         a = array.array('i', range(16))
  51.         x = (c_int * 16).from_buffer_copy(a)
  52.         y = X.from_buffer_copy(a)
  53.         self.assertEqual(y.c_int, a[0])
  54.         self.failIf(y.init_called)
  55.         self.assertEqual(x[:], range(16))
  56.         (a[0], a[-1]) = (200, -200)
  57.         self.assertEqual(x[:], range(16))
  58.         self.assertEqual(x._objects, None)
  59.         self.assertRaises(ValueError, c_int.from_buffer, a, -1)
  60.         del a
  61.         gc.collect()
  62.         gc.collect()
  63.         gc.collect()
  64.         self.assertEqual(x[:], range(16))
  65.         x = (c_char * 16).from_buffer_copy('aaaaaaaaaaaaaaaa')
  66.         self.assertEqual(x[:], 'aaaaaaaaaaaaaaaa')
  67.  
  68.     
  69.     def test_fom_buffer_copy_with_offset(self):
  70.         a = array.array('i', range(16))
  71.         x = (c_int * 15).from_buffer_copy(a, sizeof(c_int))
  72.         self.assertEqual(x[:], a.tolist()[1:])
  73.         self.assertRaises(ValueError, (c_int * 16).from_buffer_copy, a, sizeof(c_int))
  74.         self.assertRaises(ValueError, (c_int * 1).from_buffer_copy, a, 16 * sizeof(c_int))
  75.  
  76.  
  77. if __name__ == '__main__':
  78.     unittest.main()
  79.  
  80.