Paul Moore wrote:
> One of the failures here is in
> 
>     def test_create_from_bytes(self):
>         a = array.array('H', b"1234")
>         self.assertEqual(len(a) * a.itemsize, 4)
> 
> Traceback (most recent call last):
>   File "Lib/test/test_array.py", line 737, in test_create_from_bytes
>     self.assertEqual(len(a) * a.itemsize, 4)
> AssertionError: 8 != 4
> 
> However, 'H' is unsigned short, so I'd expect a.itemsize to be 2, and
> so the results *should* be 8 rather than 4.
> 
> Is this just a bug in the test?

No, it was a bug in the C code. 'H' represents a 16bit type. The correct
result is

>>> array.array('H', b"1234")
array('H', [12849, 13363])

However the code was reading the byte sequence int by int and created an
array with 4 elements instead of 2 elements. I've already fixed it.

Christian

_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to