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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import unittest
  5. from ctypes import *
  6.  
  7. class StringArrayTestCase(unittest.TestCase):
  8.     
  9.     def test(self):
  10.         BUF = c_char * 4
  11.         buf = BUF('a', 'b', 'c')
  12.         self.failUnlessEqual(buf.value, 'abc')
  13.         self.failUnlessEqual(buf.raw, 'abc\x00')
  14.         buf.value = 'ABCD'
  15.         self.failUnlessEqual(buf.value, 'ABCD')
  16.         self.failUnlessEqual(buf.raw, 'ABCD')
  17.         buf.value = 'x'
  18.         self.failUnlessEqual(buf.value, 'x')
  19.         self.failUnlessEqual(buf.raw, 'x\x00CD')
  20.         buf[1] = 'Z'
  21.         self.failUnlessEqual(buf.value, 'xZCD')
  22.         self.failUnlessEqual(buf.raw, 'xZCD')
  23.         self.assertRaises(ValueError, setattr, buf, 'value', 'aaaaaaaa')
  24.         self.assertRaises(TypeError, setattr, buf, 'value', 42)
  25.  
  26.     
  27.     def test_c_buffer_value(self):
  28.         buf = c_buffer(32)
  29.         buf.value = 'Hello, World'
  30.         self.failUnlessEqual(buf.value, 'Hello, World')
  31.         self.failUnlessRaises(TypeError, setattr, buf, 'value', buffer('Hello, World'))
  32.         self.assertRaises(TypeError, setattr, buf, 'value', buffer('abc'))
  33.         self.assertRaises(ValueError, setattr, buf, 'raw', buffer('x' * 100))
  34.  
  35.     
  36.     def test_c_buffer_raw(self):
  37.         buf = c_buffer(32)
  38.         buf.raw = buffer('Hello, World')
  39.         self.failUnlessEqual(buf.value, 'Hello, World')
  40.         self.assertRaises(TypeError, setattr, buf, 'value', buffer('abc'))
  41.         self.assertRaises(ValueError, setattr, buf, 'raw', buffer('x' * 100))
  42.  
  43.     
  44.     def test_param_1(self):
  45.         BUF = c_char * 4
  46.         buf = BUF()
  47.  
  48.     
  49.     def test_param_2(self):
  50.         BUF = c_char * 4
  51.         buf = BUF()
  52.  
  53.  
  54.  
  55. try:
  56.     c_wchar
  57. except NameError:
  58.     pass
  59.  
  60.  
  61. class WStringArrayTestCase(unittest.TestCase):
  62.     
  63.     def test(self):
  64.         BUF = c_wchar * 4
  65.         buf = BUF(u'a', u'b', u'c')
  66.         self.failUnlessEqual(buf.value, u'abc')
  67.         buf.value = u'ABCD'
  68.         self.failUnlessEqual(buf.value, u'ABCD')
  69.         buf.value = u'x'
  70.         self.failUnlessEqual(buf.value, u'x')
  71.         buf[1] = u'Z'
  72.         self.failUnlessEqual(buf.value, u'xZCD')
  73.  
  74.  
  75.  
  76. class StringTestCase(unittest.TestCase):
  77.     
  78.     def XX_test_basic_strings(self):
  79.         cs = c_string('abcdef')
  80.         self.assertRaises(TypeError, len, cs)
  81.         self.failUnlessEqual(sizeof(cs), 7)
  82.         self.failUnlessEqual(cs.value, 'abcdef')
  83.         self.failUnlessEqual(c_string('abc\x00def').value, 'abc')
  84.         self.failUnlessEqual(cs.raw, 'abcdef\x00')
  85.         self.failUnlessEqual(c_string('abc\x00def').raw, 'abc\x00def\x00')
  86.         cs.value = 'ab'
  87.         self.failUnlessEqual(cs.value, 'ab')
  88.         self.failUnlessEqual(cs.raw, 'ab\x00\x00\x00\x00\x00')
  89.         cs.raw = 'XY'
  90.         self.failUnlessEqual(cs.value, 'XY')
  91.         self.failUnlessEqual(cs.raw, 'XY\x00\x00\x00\x00\x00')
  92.         self.assertRaises(TypeError, c_string, u'123')
  93.  
  94.     
  95.     def XX_test_sized_strings(self):
  96.         self.assertRaises(TypeError, c_string, None)
  97.         self.failUnless(len(c_string(32).raw) == 32)
  98.         self.assertRaises(ValueError, c_string, -1)
  99.         self.assertRaises(ValueError, c_string, 0)
  100.         self.failUnless(c_string(2).raw[-1] == '\x00')
  101.         self.failUnless(len(c_string(2).raw) == 2)
  102.  
  103.     
  104.     def XX_test_initialized_strings(self):
  105.         self.failUnless(c_string('ab', 4).raw[:2] == 'ab')
  106.         self.failUnless(c_string('ab', 4).raw[:2:] == 'ab')
  107.         self.failUnless(c_string('ab', 4).raw[:2:-1] == 'ba')
  108.         self.failUnless(c_string('ab', 4).raw[:2:2] == 'a')
  109.         self.failUnless(c_string('ab', 4).raw[-1] == '\x00')
  110.         self.failUnless(c_string('ab', 2).raw == 'a\x00')
  111.  
  112.     
  113.     def XX_test_toolong(self):
  114.         cs = c_string('abcdef')
  115.         self.assertRaises(ValueError, setattr, cs, 'value', '123456789012345')
  116.         self.assertRaises(ValueError, setattr, cs, 'value', '1234567')
  117.  
  118.  
  119.  
  120. try:
  121.     c_wchar
  122. except NameError:
  123.     pass
  124.  
  125.  
  126. class WStringTestCase(unittest.TestCase):
  127.     
  128.     def test_wchar(self):
  129.         c_wchar(u'x')
  130.         repr(byref(c_wchar(u'x')))
  131.         c_wchar('x')
  132.  
  133.     
  134.     def X_test_basic_wstrings(self):
  135.         cs = c_wstring(u'abcdef')
  136.         self.failUnless(sizeof(cs) == 14)
  137.         self.failUnless(cs.value == u'abcdef')
  138.         self.failUnless(c_wstring(u'abc\x00def').value == u'abc')
  139.         self.failUnless(c_wstring(u'abc\x00def').value == u'abc')
  140.         self.failUnless(cs.raw == u'abcdef\x00')
  141.         self.failUnless(c_wstring(u'abc\x00def').raw == u'abc\x00def\x00')
  142.         cs.value = u'ab'
  143.         self.failUnless(cs.value == u'ab')
  144.         self.failUnless(cs.raw == u'ab\x00\x00\x00\x00\x00')
  145.         self.assertRaises(TypeError, c_wstring, '123')
  146.         self.assertRaises(ValueError, c_wstring, 0)
  147.  
  148.     
  149.     def X_test_toolong(self):
  150.         cs = c_wstring(u'abcdef')
  151.         self.assertRaises(ValueError, setattr, cs, 'value', u'123456789012345')
  152.         self.assertRaises(ValueError, setattr, cs, 'value', u'1234567')
  153.  
  154.  
  155.  
  156. def run_test(rep, msg, func, arg):
  157.     items = range(rep)
  158.     clock = clock
  159.     import time
  160.     start = clock()
  161.     for i in items:
  162.         func(arg)
  163.         func(arg)
  164.         func(arg)
  165.         func(arg)
  166.         func(arg)
  167.     
  168.     stop = clock()
  169.     print '%20s: %.2f us' % (msg, (stop - start) * 1e+06 / 5 / rep)
  170.  
  171.  
  172. def check_perf():
  173.     REP = 200000
  174.     run_test(REP, 'c_string(None)', c_string, None)
  175.     run_test(REP, "c_string('abc')", c_string, 'abc')
  176.  
  177. if __name__ == '__main__':
  178.     unittest.main()
  179.  
  180.