Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_memoryview.cpython-311.pyc
�

�Ke~U��N�dZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZGd�d��ZGd�de��Z
Gd�d	e��ZGd
�d��ZGd�d
��ZGd�d��ZGd�dejee
��ZGd�dejee��ZGd�dejee
��ZGd�dejee��ZGd�dejee
��ZGd�dejee��ZGd�dej��Zedkrej��dSdS)z�Unit tests for the memoryview

   Some tests are in test_bytes. Many tests that require _testbuffer.ndarray
   are in test_buffer.
�N)�
import_helperc���eZdZdZed���Zed���Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�AbstractMemoryTests�abcdefc��|jS�N)�source_bytes��selfs �>/usr/local/apps/python3/lib/python3.11/test/test_memoryview.py�_sourcezAbstractMemoryTests._sources��� � �c�:�td|j|jg��Sr)�filter�ro_type�rw_typer
s r�_typeszAbstractMemoryTests._typess���d�T�\�4�<�8�9�9�9rc���||j��}tj|��}|�|���|��dtd����|��dt��|��dtd����|��dtd����|��dtd����|�t�fd���|�t�fd���|�t�fd	���|�t�fd
���|�t�fd���|�t�fd���|�t�fd
���d�|�tj|��|��dS)Nr�a��f���i����c����dS)N����ms�r�<lambda>z=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>)s���a��d�rc����dS)N���rrs�rrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>*s���a��e�rc�(���tjSr��sys�maxsizers�rrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>+s
���a���n�rc�*���tjSrr"rs�rrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>,s���a����o�rc����dSrrrs�rrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>.s���Q�t�W�rc����dS)N�rrs�rrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>/����Q�s�V�rc����dS)N�arrs�rrz=AbstractMemoryTests.check_getitem_with_type.<locals>.<lambda>0r)r)r
r#�getrefcount�_view�assertEqual�ord�assertIsInstance�int�assertRaises�
IndexError�	TypeError)r�tp�b�oldrefcountrs    @r�check_getitem_with_typez+AbstractMemoryTests.check_getitem_with_types�����B�t�|�����o�a�(�(���J�J�q�M�M������1��s�4�y�y�)�)�)����a��d�C�(�(�(�����1��s�4�y�y�)�)�)�����2���D�	�	�*�*�*�����2���D�	�	�*�*�*����*�l�l�l�l�3�3�3����*�m�m�m�m�4�4�4����*�&<�&<�&<�&<�=�=�=����*�&=�&=�&=�&=�>�>�>����)�_�_�_�_�5�5�5����)�^�^�^�^�4�4�4����)�^�^�^�^�4�4�4���������+�+�[�9�9�9�9�9rc�D�|jD]}|�|���dSr)rr8)rr5s  r�test_getitemz AbstractMemoryTests.test_getitem4s4���+�	-�	-�B��(�(��,�,�,�,�	-�	-rc
���|jD]p}||j��}|�|���|�t	����fd�tt
�����D�����qdS)Nc� ��g|]
}�|��Srr)�.0�irs  �r�
<listcomp>z1AbstractMemoryTests.test_iter.<locals>.<listcomp><s���&C�&C�&C��q��t�&C�&C�&Cr)rr
r-r.�list�range�len�rr5r6rs   @r�	test_iterzAbstractMemoryTests.test_iter8s�����+�	E�	E�B���4�<� � �A��
�
�1�
�
�A����T�!�W�W�&C�&C�&C�&C�U�3�q�6�6�]�]�&C�&C�&C�D�D�D�D�	E�	Erc����|js|�d��|�|j��}tj|��}|�|����fd�}|�t|d��|�t|d��|�t|td����d�|�	tj|��|��dS)N�no read-only type to testc���|�d<dS)Nrr)�valuers �r�setitemz:AbstractMemoryTests.test_setitem_readonly.<locals>.setitemDs����A�a�D�D�Drr�A)
r�skipTestr
r#r,r-r2r4�
memoryviewr.)rr6r7rIrs    @r�test_setitem_readonlyz)AbstractMemoryTests.test_setitem_readonly>s�����|�	7��M�M�5�6�6�6��L�L���&�&���o�a�(�(���J�J�q�M�M��	�	�	�	�	����)�W�d�3�3�3����)�W�b�1�1�1����)�W�j��.>�.>�?�?�?���������+�+�[�9�9�9�9�9rc
�����|js|�d��|j�|�|j��}tj|��}|�|���t
d���d<|��|d���d���dd�<|��|d���d���dd	�<|��|d
���d���dd�<|��|d
���d���dd�<|��|d���d
d��dd	�<|��|d���d���dd�<�dd	��d
d�<|��|d����fd�}|�t|dd��|�t|dd��|�t|tj
d��|�t|tj
d��|�t|dd��|�t|dd��|�t|tddd��dfd��|�t|dtddd��fd��|�t|dd��|�t|dd��tddd��tddd
��f}|�t||d���jdkrtnt}|�||dd��|�||dd��|�t|tdd��d��|�t|tdd
��d��d�|�tj|��|��dS)N�no writable type to test�1rs1bcdef�0�s0bcdefs12�s012defrr�rscdedefsababcfc�$���|���|<dSrr)�keyrHrr5s  ��rrIz:AbstractMemoryTests.test_setitem_writable.<locals>.setitemes����R��Y�Y�A�c�F�F�Frrrr r()rr+�csab)rrKr
r#r,r-r/�_check_contentsr2r3r$r4�slice�NotImplementedError�format�
ValueErrorr.)rr6r7rI�slices�excrr5s      @@r�test_setitem_writablez)AbstractMemoryTests.test_setitem_writableLs������|�	6��M�M�4�5�5�5�
�\���L�L���&�&���o�a�(�(���J�J�q�M�M���4�y�y��!�����R��I�.�.�.���D����!�A�#�����R��I�.�.�.���E����!�A�#�����R��I�.�.�.���C����!�A�#�����R��I�.�.�.��r�)�}�}��!�!�!�����R��I�.�.�.��1�Q�3���!�A�#�����R��I�.�.�.��r�)�}�}��!�!�!���1�Q�3���!�A�#�����R��I�.�.�.�	�	�	�	�	�	�	
���*�g�q�$�7�7�7����*�g�r�4�8�8�8����*�g�s�{�D�A�A�A����*�g���|�T�B�B�B����)�W�c�4�8�8�8����)�W�d�D�9�9�9����)�W�u�Q�q��|�|�Q�.?��F�F�F����)�W�q�%��!�A�,�,�.?��F�F�F����)�W�d�D�9�9�9����)�W�c�4�8�8�8���!�A�,�,��a��!���-�����-�w���E�E�E��H��O�O�j�j������#�w��3�/�/�/����#�w��5�1�1�1����*�g�u�Q�q�z�z�4�@�@�@����*�g�u�Q�q�z�z�4�@�@�@���������+�+�[�9�9�9�9�9rc�<�|jD]�}||j��}|�|��}|�t��5|d=ddd��n#1swxYwY|�t��5|dd�=ddd��n#1swxYwY��dS)NrR�)rr
r-r2r4rCs    r�test_delitemz AbstractMemoryTests.test_delitem�s"���+�	�	�B���4�<� � �A��
�
�1�
�
�A��"�"�9�-�-�
�
��a�D�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��"�"�9�-�-�
�
��a��c�F�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��	�	s$�	A�A	� A	�>B�B	�B	c�.���jD]�}��|�j����}|���}d��fd�dD����}��||����|t����dS)Nrc3�^�K�|]'}��t|g����V��(dSr)�getitem_type�bytes)r=rWrs  �r�	<genexpr>z3AbstractMemoryTests.test_tobytes.<locals>.<genexpr>�sR����� B� B�23��!�!�%���*�*�-�-� B� B� B� B� B� Brr)rr-r
�tobytes�joinr.r0rf)rr5rr6�expecteds`    r�test_tobytesz AbstractMemoryTests.test_tobytes�s�����+�	,�	,�B��
�
�2�2�d�l�+�+�,�,�A��	�	���A��x�x� B� B� B� B�7@� B� B� B�B�B�H����Q��)�)�)��!�!�!�U�+�+�+�+�	,�	,rc���|jD]\}|�||j����}|���}|�|td�����]dS)Nr)rr-r
�tolistr.r@)rr5r�ls    r�test_tolistzAbstractMemoryTests.test_tolist�sf���+�	1�	1�B��
�
�2�2�d�l�+�+�,�,�A����
�
�A����Q��Y���0�0�0�0�	1�	1rc�����|jD�]g}|�||j�����|jD]�}|��|d��k��|��|d��k��|��|d��k��|��|d��k��|��|d��k��|��|d��k����|���k��|���dd�k��|��dd��dd�k��|��dd��k��|��dk��|��dk��|�d�k��|�d�k���dfD]~�|�t��fd���|�t��fd	���|�t��fd
���|�t��fd������idS)Nrsabcdesabcde1rrr�abcdefc�����kSrr�rWrs��rrz2AbstractMemoryTests.test_compare.<locals>.<lambda>�����Q��U�rc�����kSrrrss��rrz2AbstractMemoryTests.test_compare.<locals>.<lambda>�����Q�!�V�rc�����kSrrrss��rrz2AbstractMemoryTests.test_compare.<locals>.<lambda>�rvrc�����kSrrrss��rrz2AbstractMemoryTests.test_compare.<locals>.<lambda>�rtr)rr-r
�
assertTrue�assertFalser2r4)rr5�tp_comprWrs   @@r�test_comparez AbstractMemoryTests.test_compare�s������+�	<�	<�B��
�
�2�2�d�l�+�+�,�,�A��;�
9�
9������W�W�Y�%7�%7� 7�8�8�8�� � ��g�g�i�&8�&8�!8�9�9�9�� � ��g�g�h�&7�&7�!7�8�8�8�����W�W�X�%6�%6� 6�7�7�7�� � ��g�g�i�&8�&8�!8�9�9�9�����W�W�Y�%7�%7� 7�8�8�8�8��O�O�A��F�#�#�#��O�O�A��1�1�1��I�&�&�&��O�O�A�a��c�F�a����d�N�+�+�+����Q�q��s�V�q�[�)�)�)�
���Q�(�]�+�+�+��O�O�A��M�*�*�*����X��]�+�+�+��O�O�H��M�*�*�*���^�
<�
<���!�!�)�]�]�]�]�]�;�;�;��!�!�)�^�^�^�^�^�<�<�<��!�!�)�^�^�^�^�^�<�<�<��!�!�)�]�]�]�]�]�;�;�;�;�	
<�+	<�	<rc��|�||j����}|�|j|j��|�|j|j��|�|jd��|�|jd��|�t|��d��|�|j|jf��|�|j	d��|S)NrR)rrr)
r-r
r.r[�itemsize�ndim�shaperB�strides�
suboffsets)rr5rs   r�check_attributes_with_typez.AbstractMemoryTests.check_attributes_with_type�s����J�J�r�r�$�,�'�'�(�(�������4�;�/�/�/������T�]�3�3�3�������#�#�#������$�'�'�'�����Q����#�#�#������T�]�$4�5�5�5������r�*�*�*��rc��|js|�d��|�|j��}|�|jd��dS)NrFT)rrKr�r.�readonly�rrs  r�test_attributes_readonlyz,AbstractMemoryTests.test_attributes_readonly�sR���|�	7��M�M�5�6�6�6��+�+�D�L�9�9�������T�*�*�*�*�*rc��|js|�d��|�|j��}|�|jd��dS)NrOF)rrKr�r.r�r�s  r�test_attributes_writablez,AbstractMemoryTests.test_attributes_writable�sR���|�	6��M�M�4�5�5�5��+�+�D�L�9�9�������U�+�+�+�+�+rc���|jD]�}||j��}tj|��}|�|��}tj|��}t|d��}|�|||�d����|�tj|��|��d}|�tj|��|����dS)Nzutf-8)	rr
r#r,r-�strrX�encoder.)rr5r6r7r�oldviewrefcount�ss       r�test_getbufferz"AbstractMemoryTests.test_getbuffer�s����+�		>�		>�B���4�<� � �A��/�!�,�,�K��
�
�1�
�
�A�!�o�a�0�0�O��A�w���A�� � ��Q�����(9�(9�:�:�:����S�_�Q�/�/��A�A�A��A����S�_�Q�/�/��=�=�=�=�		>�		>rc���|jD�]V}t|t��s�Gd�d��}Gd�d|��}Gd�d��}||d����}|�|��}|��}||_||_t
j|��}dx}x}}tj	��|�
|��du|����||d����}|��}||_||_t
j|��}dx}}tj	��|�
|��du|������XdS)Nc��eZdZd�ZdS)�+AbstractMemoryTests.test_gc.<locals>.MyViewc�.�t|��|_dSr)rLr)r�bases  r�__init__z4AbstractMemoryTests.test_gc.<locals>.MyView.__init__�s��'��-�-�D�F�F�FrN)�__name__�
__module__�__qualname__r�rrr�MyViewr��s#������.�.�.�.�.rr�c��eZdZdS)�-AbstractMemoryTests.test_gc.<locals>.MySourceN�r�r�r�rrr�MySourcer����������rr�c��eZdZdS)�-AbstractMemoryTests.test_gc.<locals>.MyObjectNr�rrr�MyObjectr��r�rr��abc)r�
isinstance�typer-r�o�weakref�ref�gc�collectry�x)	rr5r�r�r�r6rr��wrs	         r�test_gczAbstractMemoryTests.test_gc�s����+�#	0�#	0�B��b�$�'�'�
��
.�
.�
.�
.�
.�
.�
.�
.�
�
�
�
�
�2�
�
�
�
�
�
�
�
�
�
�
�
����F���$�$�A��
�
�1�
�
�A���
�
�A��A�C��A�C���Q���B���A���A��J�L�L�L��O�O�B�B�D�D�D�L�"�"�$�$�/�/�/���r�r�&�z�z�"�"�A���
�
�A��A�C��A�C���Q���B��L�A���J�L�L�L��O�O�B�B�D�D�D�L�"�"�$�$�/�/�/�/�G#	0�#	0rc�r�|�td��}|5t|��ddd��n#1swxYwY|5|���ddd��n#1swxYwY|5|���ddd��n#1swxYwY|5|dddd��n#1swxYwY|5d|d<ddd��n#1swxYwY|5t|��ddd��n#1swxYwY|5|jddd��n#1swxYwY|5|jddd��n#1swxYwY|5|jddd��n#1swxYwY|5|j	ddd��n#1swxYwY|5|j
ddd��n#1swxYwY|5|jddd��n#1swxYwY|5|5	ddd��n#1swxYwYddd��n#1swxYwY|�dt|����|�dt|����|�||��|�|t#||j������|�|||j����dS)N�releasedr�xzreleased memory)�assertRaisesRegexr\rfrhrmrBr[r~rr�r�r��assertInr��reprr.�assertNotEqualrLr
)rrr5�checks    r�_check_releasedz#AbstractMemoryTests._check_releaseds|���&�&�z�:�>�>��
���E�!�H�H�H�������������������
���A�I�I�K�K�K�������������������
���A�H�H�J�J�J�������������������
���A�a�D�D�������������������
���4�A�a�D�������������������
���C��F�F�F�������������������
���A�H�H�������������������
���A�J�J�������������������
���A�F�F�������������������
���A�J�J�������������������
���A�G�G�������������������
���A�I�I�������������������
�	�	��
�
��
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�
�
�'��Q���0�0�0��
�
�'��a���1�1�1�����A�������A�z�"�"�T�\�*:�*:�;�;�<�<�<����A�r�r�$�,�/�/�0�0�0�0�0s	�:�>�>�A(�(A,�/A,�5B�B�B�#	B8�8B<�?B<�C�C�C�$D�D�D�
D!�!D%�(D%�.E�E�	E�E#�#E'�*E'�0F�F�F�F%�%F)�,F)�2G�G
�
G
�G;�G$�G;�$G(	�(G;�+G(	�,G;�;G?�G?c�v�|jD]�}||j��}|�|��}|5}|�||��ddd��n#1swxYwY|�||��|�|��}|5|���ddd��n#1swxYwY��dSr)rr
r-�assertIsr��release)rr5r6r�cms     r�test_contextmanagerz'AbstractMemoryTests.test_contextmanagers7���+�		�		�B���4�<� � �A��
�
�1�
�
�A��
%�b��
�
�b�!�$�$�$�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%�� � ��B�'�'�'��
�
�1�
�
�A��
�
��	�	����
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��		�		s#�A�A	�A	�B-�-B1	�4B1	c��|jD]{}||j��}|�|��}|���|�||��|���|�||���|dSr)rr
r-r�r�rCs    r�test_releasez AbstractMemoryTests.test_release%s����+�	(�	(�B���4�<� � �A��
�
�1�
�
�A�
�I�I�K�K�K�� � ��B�'�'�'�
�I�I�K�K�K�� � ��B�'�'�'�'�	(�	(rc��|j}|�|�d��||j��}|�|��}t	jd��}|�t|j|��dS)NrFsZZZZ)	rrKr
r-�io�BytesIOr2r4�readinto)rr5r6rr>s     r�test_writable_readonlyz*AbstractMemoryTests.test_writable_readonly/sr���\��
�:��M�M�5�6�6�6��B�t�|�����J�J�q�M�M���J�w�������)�Q�Z��3�3�3�3�3rc�H�|�t|ji��dSr)r2r4r-r
s r�test_getbuf_failz$AbstractMemoryTests.test_getbuf_fail:s"�����)�T�Z��4�4�4�4�4rc��|j}|�|�d��||j��}|�|��}|�t|��td����|���|�t|��td����|�|��}|���|�tt
|��dS)NrFr)	rrKr
r-r.�hashr�r2r\rCs    r�	test_hashzAbstractMemoryTests.test_hash=s����\��
�:��M�M�5�6�6�6��B�t�|�����J�J�q�M�M������a���$�y�/�/�2�2�2�	�	�	��������a���$�y�/�/�2�2�2�
�J�J�q�M�M��	�	�	�������*�d�A�.�.�.�.�.rc���|j}|�|�d��||j��}|�|��}|�t
t|��dS)NrO)rrKr
r-r2r\r�rCs    r�test_hash_writablez&AbstractMemoryTests.test_hash_writableOs_��
�\��
�:��M�M�4�5�5�5��B�t�|�����J�J�q�M�M�����*�d�A�.�.�.�.�.rc���|jD]�}||j��}|�|��}g�|f�fd�	}tj||��}|�|��|��~tj���|�|��d��|��d|����dS)Nc�2����|��dSr)�append)r�r6�Ls  �r�callbackz2AbstractMemoryTests.test_weakref.<locals>.callback^s�����������rr)	rr
r-r�r�r��test�support�
gc_collect)rr5r6rr�r�r�s      @r�test_weakrefz AbstractMemoryTests.test_weakrefXs�����+�	#�	#�B���4�<� � �A��
�
�1�
�
�A��A� �
�
�
�
�
�
���Q��)�)�B��M�M�"�"�$�$��"�"�"���L�#�#�%�%�%��M�M�"�"�$�$��%�%�%��M�M�!�A�$��"�"�"�"�	#�	#rc
��|jD]�}||j��}|�|��}tt	|�������}|�tt	|����|��|�tt	|����t|ddd�������dS)Nr)rr
r-r@�reversedrmr.)rr5r6r�aslists     r�
test_reversedz!AbstractMemoryTests.test_reversedgs����+�	?�	?�B���4�<� � �A��
�
�1�
�
�A��(�1�8�8�:�:�.�.�/�/�F����T�(�1�+�+�.�.��7�7�7����T�(�1�+�+�.�.��Q�t�t��t�W�
�
�>�>�>�>�	?�	?rc���|jD]�}||j��}|�|��}|���}|�|j��|�t
|��j��|�|���|�����|�	��|�����dSr)
rr
r-�
toreadonlyryr�rLr.rmr�)rr5r6r�mms     r�test_toreadonlyz#AbstractMemoryTests.test_toreadonlyos����+�	�	�B���4�<� � �A��
�
�1�
�
�A������B��O�O�B�K�(�(�(��O�O�J�r�N�N�3�4�4�4����R�Y�Y�[�[�!�(�(�*�*�5�5�5��J�J�L�L�L�
�H�H�J�J�J�J�	�	rc��tjdgd���}t|��}|�d��}|�d��}|dd�}t|��}~|�|dd��|�|dd��|�|jd��|�|jd��|�d��}|�|dd��|�|dd��|�|jd��|�|jd��dS)N�H)�r�r�r��BrrTr��I)�arrayrL�castr.r[)rr+r�rr6rW�d�_s        r�test_issue22668z#AbstractMemoryTests.test_issue22668zs;���K��1�1�1�2�2���q�M�M��
�F�F�3�K�K��
�F�F�3�K�K��
�a��c�F���q�M�M��
�����1��s�#�#�#�����1��s�#�#�#������3�'�'�'������3�'�'�'�
�F�F�3�K�K������1��s�#�#�#�����1��s�#�#�#������3�'�'�'������3�'�'�'�'�'rN) r�r�r�r	�propertyr
rr8r:rDrMr_rbrkror|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrs��������L�
�!�!��X�!��:�:��X�:�:�:�:�*-�-�-�E�E�E�:�:�:�2:�2:�2:�h���,�,�,�1�1�1�<�<�<�<	�	�	�+�+�+�,�,�,�>�>�>�$0�$0�$0�L1�1�1�0
�
�
�(�(�(�	4�	4�	4�5�5�5�/�/�/�$/�/�/�
#�
#�
#�?�?�?�	�	�	�(�(�(�(�(rrc�"�eZdZeZeZeZdZdZ	dS)�BaseBytesMemoryTestsrRr�N)
r�r�r�rfr�	bytearrayrrer~r[rrrr�r��s'�������G��G��L��H�
�F�F�Frr�c��eZdZdZd�Zd�Zejd��jZdZe	j
d��d���Ze	j
d��d���ZdS)	�BaseArrayMemoryTestsNc�F�tjdt|����S�Nr>)r�r@�rr6s  rrzBaseArrayMemoryTests.<lambda>�s��e�k�#�t�A�w�w�7�7�rc�j�tjdt|�������Sr�)r�r@rhr�s  rrzBaseArrayMemoryTests.<lambda>�s$��5�;�s�D��G�G�#<�#<�#D�#D�#F�#F�rr>z/XXX test should be adapted for non-byte buffersc��dSrrr
s rr�z#BaseArrayMemoryTests.test_getbuffer�����rz:XXX NotImplementedError: tolist() only supports byte viewsc��dSrrr
s rroz BaseArrayMemoryTests.test_tolist�r�r)
r�r�r�rrrer�r~r[�unittest�skipr�rorrrr�r��s��������G�7�7�G�F�F�L��u�{�3���(�H�
�F��X�]�D�E�E�
�
�F�E�
��X�]�O�P�P�
�
�Q�P�
�
�
rr�c��eZdZd�Zd�ZdS)�BaseMemoryviewTestsc� �t|��Sr�rL)r�objs  rr-zBaseMemoryviewTests._view�s���#���rc�D�|�|||����dSr�r.�rr5r��contentss    rrXz#BaseMemoryviewTests._check_contents�s&������b�b��l�l�+�+�+�+�+rN)r�r�r�r-rXrrrr�r��s2���������,�,�,�,�,rr�c�$�eZdZdZd�Zd�Zd�ZdS)�BaseMemorySliceTests�XabcdefYc�4�t|��}|dd�S�NrR�r��rr�rs   rr-zBaseMemorySliceTests._view�s���s�O�O����1��v�
rc�T�|�|dd�||����dSrr�r�s    rrXz$BaseMemorySliceTests._check_contents��.������Q�q�S��2�2�h�<�<�0�0�0�0�0rc���|jD]e}t||j����}tj|��}|dd�|�tj|��|���fdS)NrRrT)rrLr
r#r,r.)rr5rr7s    r�	test_refszBaseMemorySliceTests.test_refs�su���+�	>�	>�B��2�2�d�l�+�+�,�,�A��/�!�,�,�K�
�a��c�F�F����S�_�Q�/�/��=�=�=�=�		>�	>rN)r�r�r�r	r-rXrrrrr�r��sF�������L����1�1�1�>�>�>�>�>rr�c��eZdZdZd�Zd�ZdS)�BaseMemorySliceSliceTestsr�c�D�t|��}|dd�dd�S)NrrRr�rs   rr-zBaseMemorySliceSliceTests._view�s#���s�O�O����!��u�Q�R�R�y�rc�T�|�|dd�||����dSrr�r�s    rrXz)BaseMemorySliceSliceTests._check_contents�rrN)r�r�r�r	r-rXrrrrr�s7�������L����1�1�1�1�1rrc��eZdZd�ZdS)�BytesMemoryviewTestc���|jD]�}||j��}|�t|����|�t|�����|�t
t��|�t
t||��|�t
t|���|�t
t|d�����dS)N)�object)�argumentT)rr
ryrLr2r4)rr5�obs   r�test_constructorz$BytesMemoryviewTest.test_constructor�s����+�	H�	H�B���D�L�!�!�B��O�O�J�r�N�N�+�+�+��O�O�J�b�1�1�1�2�2�2����i��4�4�4����i��R��<�<�<����i��b��A�A�A����i��R�$��G�G�G�G�	H�	HrN)r�r�r�rrrrrr�s(������H�H�H�H�Hrrc��eZdZd�ZdS)�ArrayMemoryviewTestc���tjdtd����}t|��}tjdtddd����}||dd�<|�||��dS)Nr>�
�	r)r�rArLr.)rr+r�new_as    r�test_array_assignz%ArrayMemoryviewTest.test_array_assign�sj���K��U�2�Y�Y�'�'���q�M�M����C��q�"�b�!1�!1�2�2����!�!�!������E�"�"�"�"�"rN)r�r�r�rrrrrr�s#������#�#�#�#�#rrc��eZdZdS)�BytesMemorySliceTestNr�rrrrr���������Drrc��eZdZdS)�ArrayMemorySliceTestNr�rrrrr�rrrc��eZdZdS)�BytesMemorySliceSliceTestNr�rrrrr�rrrc��eZdZdS)�ArrayMemorySliceSliceTestNr�rrrr!r!�rrr!c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�	OtherTestc��tjd��}t|�d����}|���}t	|���d��}|dd�|dd�<|dd�|dd�<|�|jd��dD]�}|�|��5|���}t	|���|��}t	|���|��dd�|dd�<t	|���|��dd�|dd�<|�|jd��ddd��n#1swxYwY��dS)N�ctypesg333333�?r�rT�Bbc)	r�
import_modulerf�c_doublerLr�r.rH�subTest)rr%�p6r�rr[s      r�test_ctypes_castzOtherTest.test_ctypes_cast�s����,�X�6�6��
�6�?�?�3�'�'�
(�
(���O�O�����q�M�M���s�#�#���2�A�2���"�1�"���1�2�2���!�"�"�������#�&�&�&��	/�	/�F����f�%�%�
/�
/��O�O�%�%���q�M�M�&�&�v�.�.��"�2���+�+�F�3�3�B�Q�B�7��"�1�"��"�2���+�+�F�3�3�A�B�B�7��!�"�"��� � ���#�.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/��	/�	/s�?B0E;�;E?	�E?	c��ddz}t|��}|ddd�}|�|���ddz��dS)NrQi@
r�30)rLr.�hex)rr��m1�m2s    r�test_memoryview_hexzOtherTest.test_memoryview_hexsM���6�M��
��]�]��
���"��X����������4�&�=�1�1�1�1�1rc��td��}|�t��5tj|��ddd��dS#1swxYwYdS)Nr�)rLr2r4�copyr�s  r�	test_copyzOtherTest.test_copys����v����
�
�
�y�
)�
)�	�	��I�a�L�L�L�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A�Ac���td��}ttjdz��D]I}|�t
��5tj||��ddd��n#1swxYwY�JdS)Nr�rR)rLrA�pickle�HIGHEST_PROTOCOLr2r4�dumps)rr�protos   r�test_picklezOtherTest.test_pickles����v�����6�2�Q�6�7�7�	'�	'�E��"�"�9�-�-�
'�
'���Q��&�&�&�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'����
'�
'�
'�
'��	'�	's�A*�*A.	�1A.	c������d����fd��G�fd�d��}G�fd�d��}G�fd�d��}d�ttd	�z�����|�t��5�|��ddd��n#1swxYwYd�ttd	�z�����|�t�d|�����d
gdz��d�ttd	�z�����|�t�|��d���d
gdz��d�ttd	�z�����d
d���|�td��5�|��dfddd��n#1swxYwYd�ttd	�z�����d
d���|�td��5�d|��fddd��n#1swxYwYd�ttd	�z�����|�td��5d�|��<ddd��n#1swxYwY|��dd�d��d�ttd	�z�����|�td��5d�d|���<ddd��n#1swxYwY|��dd�d��d�ttd	�z�����|�td��5d�|��d�<ddd��n#1swxYwY|��dd�d��d�ttd	�z�����d
d���|�td��5d�|��df<ddd��n#1swxYwY|��dd�d��d�ttd	�z�����d
d���|�td��5d�d|��f<ddd��n#1swxYwY|��dd�d��d�ttd	�z�����|�td��5|���d<ddd��n#1swxYwY|��dd�d��dD]�}|�|���5d�ttd	�z�����|���|�td��5|���d<ddd��n#1swxYwY|��dd�d��ddd��n#1swxYwY��dD]�}|�|���5d�ttd	�z�����|���|�td��5|���d<ddd��n#1swxYwY|��dd�d��ddd��n#1swxYwY��d�ttd	�z�����d���|�td��5|���d<ddd��n#1swxYwY|��dd�d��dS)N�c�N������t����dSr)r�r�)�bar�sizes���rr�z3OtherTest.test_use_released_memory.<locals>.release)s���
�I�I�K�K�K��4���B�B�Brc���eZdZ�fd�ZdS)�3OtherTest.test_use_released_memory.<locals>.MyIndexc������dS)Nrar�rr�s �r�	__index__z=OtherTest.test_use_released_memory.<locals>.MyIndex.__index__.s�����	�	�	��qrN)r�r�r�rD�r�s�r�MyIndexrA-s.�������
�
�
�
�
�
�
rrFc���eZdZ�fd�ZdS)�3OtherTest.test_use_released_memory.<locals>.MyFloatc������dS)Ng@rrCs �r�	__float__z=OtherTest.test_use_released_memory.<locals>.MyFloat.__float__2������	�	�	��trN)r�r�r�rJrEs�r�MyFloatrH1�.�������
�
�
�
�
�
�
rrLc���eZdZ�fd�ZdS)�2OtherTest.test_use_released_memory.<locals>.MyBoolc������dS)NTrrCs �r�__bool__z;OtherTest.test_use_released_memory.<locals>.MyBool.__bool__6rKrN)r�r�r�rQrEs�r�MyBoolrO5rMrrR���ra�r�)�@rTzoperation forbiddenr)rTrV�*ssspam��bhilqnBHILQN)�fmt�fd�?)	rLr�r2r\r.r@r�r�r))	rrFrLrRrZr>rr�r?s	     @@@@r�test_use_released_memoryz"OtherTest.test_use_released_memory$s#��������	!�	!�	!�	!�	!�	!�	!�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�
���y����.�.�/�/��
�
�
�z�
*�
*�	�	�
�g�g�i�i�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����y����.�.�/�/������a�
�����
�m�,�,�s�e�a�i�8�8�8�
���y����.�.�/�/������a���	�	�!��n�-�-��u�q�y�9�9�9�
���y����.�.�/�/�4�4�S�'�B�B��
�
#�
#�J�0E�
F�
F�	�	�
�g�g�i�i��l�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����y����.�.�/�/�4�4�S�'�B�B��
�
#�
#�J�0E�
F�
F�	�	�
�a�����l�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����y����.�.�/�/��
�
#�
#�J�0E�
F�
F�	�	��A�g�g�i�i�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����B�Q�B���)�)�)�
���y����.�.�/�/��
�
#�
#�J�0E�
F�
F�	$�	$�#�A�j�w�w�y�y�j�M�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�����B�Q�B���)�)�)�
���y����.�.�/�/��
�
#�
#�J�0E�
F�
F�	%�	%�$�A�g�g�i�i��k�N�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�����B�Q�B���)�)�)�
���y����.�.�/�/�4�4�S�'�B�B��
�
#�
#�J�0E�
F�
F�	!�	!� �A�g�g�i�i��l�O�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�����A�b�D��7�+�+�+�
���y����.�.�/�/�4�4�S�'�B�B��
�
#�
#�J�0E�
F�
F�	!�	!� �A�a�����l�O�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�����B�Q�B���)�)�)�
���y����.�.�/�/��
�
#�
#�J�0E�
F�
F�	�	��7�9�9�A�a�D�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����B�Q�B���)�)�)�!�	2�	2�C����#��&�&�
2�
2����y����6�6�7�7�<�<�S�A�A���+�+�J�8M�N�N�%�%�"�7�9�9�A�a�D�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%�� � ��B�Q�B���1�1�1�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2����
2�
2�
2�
2���	2�	2�C����#��&�&�
2�
2����y����6�6�7�7�<�<�S�A�A���+�+�J�8M�N�N�%�%�"�7�9�9�A�a�D�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%�� � ��B�Q�B���1�1�1�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2����
2�
2�
2�
2�����y����.�.�/�/�4�4�S�9�9��
�
#�
#�J�0E�
F�
F�	�	��6�8�8�A�a�D�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����B�Q�B���)�)�)�)�)s"�6B�B�B�F=�=G�G�H7�7H;�>H;�>J�J�J�=L�L� L�>N�N�!N�P/�/P3�6P3�(S�S�S�)U�U�
U�AX%�W0�$X%�0W4�4X%�7W4�8!X%�%X)	�,X)	�A[*�Z5�)[*�5Z9�9[*�<Z9�=![*�*[.	�1[.	�]�]#�&]#N)r�r�r�r+r1r4r:r]rrrr#r#�sd������/�/�/�&2�2�2����
'�'�'�d*�d*�d*�d*�d*rr#�__main__)�__doc__r��test.supportr�r#r�r�r�r�r3r6rrr�r�r�r�r�TestCaserrrrrr!r#r��mainrrr�<module>rcs������������
�
�
�
�	�	�	�	���������	�	�	�	�����
�
�
�
�&�&�&�&�&�&�y(�y(�y(�y(�y(�y(�y(�y(�@�����.����

�

�

�

�

�.�

�

�

�(,�,�,�,�,�,�,�,�>�>�>�>�>�>�>�>�"1�1�1�1�1�1�1�1�H�H�H�H�H�(�+��-�H�H�H�	#�	#�	#�	#�	#�(�+��-�	#�	#�	#�	�	�	�	�	�8�,��.�	�	�	�	�	�	�	�	�8�,��.�	�	�	�	�	�	�	�	�� 1��3�	�	�	�	�	�	�	�	�� 1��3�	�	�	�
J*�J*�J*�J*�J*��!�J*�J*�J*�X�z����H�M�O�O�O�O�O��r