
    $gb              	          d dl Z d dlZd dlmZ d dlmZ d dlmZ d Zej	        
                    dd          d             Zej	        
                    dd	          d
             Zej	        
                    dd          d             Zej	        
                    dg di dddf          d             Zej	        
                    dd          d             Zd Zd ZdS )    N)AddrFormatError)ipv6)IS_MUSLc                     d} d}d}d}d}t          j        |           |k    sJ t          j        |          | k    sJ t          st          j        |          |k    snnJ t          j        |          |k    sJ t          j        |          |k    sJ t          j        |          |k    sJ t          j        t          |                    |k    sJ t          j	        |          |k    sJ t          j
        |          dk    sJ d S )Nz0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:1111111111111111:1111111111111110l    )r   r   r   r   r   r   i  i  z::255.255.255.254s               )r   bits_to_intint_to_bitsr   
int_to_str
str_to_intint_to_wordswords_to_intlistint_to_packedpacked_to_int)bitsps        i/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/netaddr/tests/strategy/test_ipv6_strategy.pytest_strategy_ipv6r   
   s1    	RAA*AAKAA!####A!#### +2D4?1""""""?1""""Q1$$$$Q1$$$$T!WW%%****a  A%%%%a  J......    	str_value)z'2001:0db8:0000:0000:0000:0000:1428:57abz#2001:0db8:0000:0000:0000::1428:57abz2001:0db8:0:0:0:0:1428:57abz2001:0db8:0:0::1428:57abz2001:0db8::1428:57abz'2001:0DB8:0000:0000:0000:0000:1428:57ABz2001:DB8::1428:57ABc                 :    t          j        |           dk    sJ d S )Nl	   WP(         n   )r   r
   r   s    r   &test_strategy_ipv6_equivalent_variantsr       s&     ?9%%)OOOOOOOr   )'FEDC:BA98:7654:3210:FEDC:BA98:7654:32101080:0:0:0:8:800:200C:417AFF01:0:0:0:0:0:0:430:0:0:0:0:0:0:10:0:0:0:0:0:0:0z1080::8:800:200C:417AzFF01::43::1::z::192.0.2.1z::ffff:192.0.2.1z0:0:0:0:0:0:192.0.2.1z0:0:0:0:0:FFFF:192.0.2.1z0:0:0:0:0:0:13.1.68.3z0:0:0:0:0:FFFF:129.144.52.38z::13.1.68.3z::FFFF:129.144.52.38z1::z::ffffzffff::z
ffff::ffffz0:1:2:3:4:5:6:7z8:9:a:b:c:d:e:fr    z'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffffc                 2    t          j        |           sJ d S Nr   	valid_strr   s    r   test_strategy_ipv6_valid_strr'   0   s!    F >)$$$$$$$r   ) zg:h:i:j:k:l:m:nz0:0:0:0:0:0:0:0:0c                 2    t          j        |           rJ d S r$   r%   r   s    r   #test_strategy_ipv6_is_not_valid_strr*   V   s      ~i(((((((r    TF   c                     t          j        t                    5  t          j        |            d d d            d S # 1 swxY w Y   d S r$   )pytestraises	TypeErrorr   r&   r   s    r   test_valid_str_unexpected_typesr1   b   s     
y	!	! " "y!!!" " " " " " " " " " " " " " " " " "s   <A A )	long_form
short_form))r   z'fedc:ba98:7654:3210:fedc:ba98:7654:3210)r   z1080::8:800:200c:417a)r   zff01::43)r   r!   )r    r"   c                 f    t          j        |           }t          j        |          }||k    sJ d S r$   )r   r
   r	   )r2   r3   int_valcalc_short_forms       r   $test_strategy_ipv6_string_compactionr7   r   s9     oi((Gog..Oj((((((r   c                  h   t           st          j        d          dk    snnJ t           st          j        d          dk    snnJ t          j        d          dk    sJ t          j        d	          d
k    sJ t          j        d          dk    sJ t          j        d	          d
k    sJ t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          dk    sJ t          j                    dk    rt          j        d          dk    sJ d S t          j        d          dk    sJ d S )Ni z::0.255.255.255z	::ff:ffffl    z::255.255.255.255z::ffff:ffffl    z::1:ffff:ffffl    z::ffff:255.255.255.255l    z::fffe:ffff:ffffl    z::ffff:255.255.255.241l    z::ffff:255.255.255.254l     z::ffff:255.255.255.0l      z::ffff:255.255.0.0l      ~ z::ffff:255.0.0.0l      ~z::ff:ff00:0l        z::1:ffff:0:0Windowsl        z
::ffff:0:0z::ffff:0.0.0.0)r   r   r	   platformsystemr+   r   r   ?test_strategy_ipv6_mapped_and_compatible_ipv4_string_formattingr<      s   AHY4?8$$(9999999EL_4?:&&*=======?;''?::::?>**.FFFFF?>**.@@@@@?>**.FFFFF?>**.FFFFF?>**.FFFFF?>**.DDDDD?>**.BBBBB?>**.@@@@@?<((M9999??++~==== I%%~..,>>>>>>~..2BBBBBBBr   c                     t          j        d          dk    sJ t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        d          dk    sJ t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        d	          d
k    sJ d S )Nz::127i'  z::0x7fz::0177iw  z::127.1z::0x7f.1z::0177.1z::127.0.0.1i  )r   r
   r.   r/   r   r+   r   r   3test_strategy_ipv6_str_to_int_behaviour_legacy_moder>      s5   ?7##s****		'	' " "!!!" " " " " " " " " " " " " " " ?8$$++++		'	' # #	"""# # # # # # # # # # # # # # # 
	'	' $ $
###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
	'	' $ $
###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ?=))Z777777sG   AAAB44B8;B8C99C= C=D>>EE)r:   r.   netaddrr   netaddr.strategyr   netaddr.testsr   r   markparametrizer   r'   r*   r1   r7   r<   r>   r+   r   r   <module>rD      s     # # # # # # ! ! ! ! ! ! ! ! ! ! ! !/ / /,  P P P ! !D% %E! !D%  ) ) ) 



 
" "
 
"
 	 	) )	 	)C C C28 8 8 8 8r   