Ë
    V.j^"  ã            
       ó"  — d dl Z 	 d dlZd dlmZmZ d dlmZ	 	 d dlm
Z
 dZddlmZ ddlmZmZmZmZ i Zere
j(                  ged	<   d
ed<   dZdZdZdZdZ eede«      Z eeeee«      Z eddd«      Z eeddd«      Z ee«      Zded<    ed&i e¤Ž e e	j@                  dedz
  ¬«      «      d„ «       «       Z!d„ Z"e jF                  jI                  d e% e"ed«      «      D � �cg c]
  \  } }e| |f‘Œ c}}  e&d«      D �cg c]  }djO                  |«      ‘Œ c}¬«      d„ «       Z( G d „ d!ejR                  «      Z* G d"„ d#ejR                  «      Z+ G d$„ d%ejR                  «      Z,y# e$ r d dlZY �Œjw xY w# e$ r dZY �Œaw xY wc c}} w c c}w )'é    N)ÚgivenÚsettings)ÚHealthCheckTFé   )Úinverse_mod)ÚCurveFpÚINFINITYÚPointÚ	CurveEdTwÚsuppress_health_checkiˆ  Údeadlineì   ÿÿÿÿïÿÿÿÿÿÿÿÿì   1(¤iÆ&^#aß;æÿÿÿÿÿÿì   ±9�³{ÆuŸ†DÜjôSg9–g(Bì   þö+ø' 1tÐ:�_|v!aÀ:@mˆì   Hò<„^ËW]™dZ{cx´ÿW\Iq éýÿÿÿé   é   é   é   Úmax_examples)Ú	min_valueÚ	max_valuec                 óR   — t        | t        «      }t        | z  }||z  t        k(  sJ ‚y ©N)r   ÚrÚp192)ÚmultipleÚinv_mÚp1s      úZC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\ecdsa/test_ellipticcurve.pyÚtest_p192_mult_testsr#   .   s+   € ô ˜¤!Ó$€Eä	�‰€BØ�‰:œÒÐÑó    c              #   óP   K  — t         }d}||k  r|–— || z   }|dz  }||k  rŒy y ­w)Nr   r   )r	   )ÚpointÚnÚretÚis       r"   Úadd_n_timesr*   7   s7   è ø€ Ü
€CØ	€AØ
ˆqŠ&ØŠ	Ø�E‰kˆØ	ˆQ‰ˆð ˆq�&ùs   ‚!&¤&zp, m, checké   é	   zg_23 test with mult {0})Úidsc                 ó   — | |z  |k(  sJ ‚y r   © )ÚpÚmÚchecks      r"   Útest_add_and_mult_equivalencer3   A   s   € ð ˆq‰5�EŠ>Ð‰>r$   c                   óL   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zy
)Ú	TestCurvec                 ó(   — t        ddd«      | _        y ©Nr   r   )r   Úc_23©Úclss    r"   Ú
setUpClasszTestCurve.setUpClassK   s   € ä˜2˜q !Ó$ˆ�r$   c                 óR   — | j                  | j                  t        ddd«      «       y r7   )ÚassertEqualr8   r   ©Úselfs    r"   Útest_equality_curveszTestCurve.test_equality_curvesO   s   € Ø×Ñ˜Ÿ™¤G¨B°°1Ó$5Õ6r$   c                 óf   — t        t        dt        «      }| j                  | j                  |«       y )Nr   )r   r0   ÚbÚassertNotEqualr8   )r?   Úc192s     r"   Útest_inequality_curvesz TestCurve.test_inequality_curvesR   s$   € Ü”q˜"œaÓ ˆØ×Ñ˜DŸI™I tÕ,r$   c                 ó\   — t        ddd«      }t        ddd«      }| j                  ||«       y )Nr   r   r   )r   rC   )r?   ÚarB   s      r"   Ú test_inequality_curves_by_b_onlyz*TestCurve.test_inequality_curves_by_b_onlyV   s.   € Ü�B˜˜1ÓˆÜ�B˜˜1ÓˆØ×Ñ˜A˜qÕ!r$   c                 ó    — | j                   d i y r   ©r8   r>   s    r"   Ú,test_usability_in_a_hashed_collection_curvesz6TestCurve.test_usability_in_a_hashed_collection_curves[   ó   € Ø	�‰�DÒr$   c                 ó.   — t        | j                  «       y r   ©Úhashr8   r>   s    r"   Útest_hashability_curvesz!TestCurve.test_hashability_curves^   ó   € ÜˆT�Y‰Y�r$   c           
      óª  — t        ddd«      t        ddd«      t        ddd«      }}}t        ddd«      t        ddd«      | j                  }}}| j                  t        t	        t        |||f«      «      d«       | j                  t        t	        t        |||f«      «      d«       | j                  t        d i|d i«       | j                  ||d i«       y )Né   r   r   r   é   )r   r8   r=   ÚlenÚsetÚassertDictEqualÚassertIn)r?   Úne1Úne2Úne3Úeq1Úeq2Úeq3s          r"   Útest_conflation_curvesz TestCurve.test_conflation_curvesa   s½   € Ü  A qÓ)¬7°2°q¸!Ó+<¼gÀbÈ!ÈQÓ>O�#ˆSˆÜ  A qÓ)¬7°2°q¸!Ó+<¸d¿i¹i�#ˆSˆØ×ÑœœS¤$¨¨S°#Ð!6Ó7Ó8¸!Ô<Ø×ÑœœS¤$¨¨S°#Ð!6Ó7Ó8¸!Ô<Ø×Ñœd D˜\¨C°¨;Ô7Ø�‰�c˜C ˜;Õ'r$   c                 óN   — | j                  t        | j                  «      d«       y )NzCurveFp(p=23, a=1, b=1)©r=   Ústrr8   r>   s    r"   Útest___str__zTestCurve.test___str__i   s   € Ø×Ñœ˜TŸY™Y›Ð)BÕCr$   c                 óV   — t        dddd«      }| j                  t        |«      d«       y )Nr   r   rT   zCurveFp(p=23, a=1, b=1, h=4))r   r=   rb   ©r?   Úcs     r"   Útest___str___with_cofactorz$TestCurve.test___str___with_cofactorl   s'   € Ü�B˜˜1˜aÓ ˆØ×Ñœ˜Q›Ð!?Õ@r$   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr;   r@   rE   rH   rK   rP   r_   rc   rg   r/   r$   r"   r5   r5   J   s>   „ Øñ%ó ð%ò7ò-ò"ò
òò(òDóAr$   r5   c                   ó4   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zy)ÚTestCurveEdTwc                 ó(   — t        ddd«      | _        y r7   )r   r8   r9   s    r"   r;   zTestCurveEdTw.setUpClassr   s   € ä˜R  AÓ&ˆ�r$   c                 óN   — | j                  t        | j                  «      d«       y )NzCurveEdTw(p=23, a=1, d=1)ra   r>   s    r"   rc   zTestCurveEdTw.test___str__v   s   € Ø×Ñœ˜TŸY™Y›Ð)DÕEr$   c                 óV   — t        dddd«      }| j                  t        |«      d«       y )Nr   r   rT   zCurveEdTw(p=23, a=1, d=1, h=4))r   r=   rb   re   s     r"   rg   z(TestCurveEdTw.test___str___with_cofactory   s'   € Ü�b˜!˜Q Ó"ˆØ×Ñœ˜Q›Ð!AÕBr$   c                 ó    — | j                   d i y r   rJ   r>   s    r"   rK   z:TestCurveEdTw.test_usability_in_a_hashed_collection_curves}   rL   r$   c                 ó.   — t        | j                  «       y r   rN   r>   s    r"   rP   z%TestCurveEdTw.test_hashability_curves€   rQ   r$   N)	rh   ri   rj   rk   r;   rc   rg   rK   rP   r/   r$   r"   rm   rm   q   s*   „ Øñ'ó ð'òFòCòór$   rm   c                   ó”   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	TestPointc                 óÔ   — t        ddd«      | _        t        | j                  ddd«      | _        d}d}d}d}d	}t        |d
|«      | _        t        | j                  |||«      | _        y )Nr   r   r   r   r   r   r   r   r   r   )r   r8   r
   Úg_23rD   r   )r:   r0   r   rB   ÚGxÚGys         r"   r;   zTestPoint.setUpClass…   si   € ä˜2˜q !Ó$ˆŒÜ˜Ÿ™ 2 q¨!Ó,ˆŒàFˆØFˆð ?ˆØ?ˆØ?ˆä˜1˜b !Ó$ˆŒÜ˜Ÿ™ 2 r¨1Ó-ˆ�r$   c                 óº  — d}|| j                   z  }| j                  |j                  «       d«       d}|| j                   z  }| j                  |j                  «       d«       | j                  |j                  «       d«       d}d}|| j                   z  ||z  z   }| j                  |j                  «       d«       | j                  |j                  «       d«       y )Nl   ûuH=½.t¹.#",W…‰}á7?Ìj¨l   ¥Z`uSÌG;ìR¹-]]0s¹¤k	+l   N/ôvZL²_ï~XóX‹Öw]o¦l   ­~“nÃ&ùDJ,6'1˜a47�b?`‘…l   5XŸáD’+8ÊnÑ#w÷}ûrÐOÏ	l   WTóYÚ>n+ô¨B¾tC¤*½Yÿqˆl   !¡M_J†T¶96wfF[,z=ƒù)r   r=   ÚxÚy)r?   ÚdÚQÚkÚRÚu1Úu2Útemps           r"   Ú	test_p192zTestPoint.test_p192•   sÕ   € ð FˆØ�—	‘	‰MˆØ×ÑØ�C‰C‹EÐEô	
ð GˆØ�—	‘	‰MˆØ×ÑØ�C‰C‹EÐEô	
ð 	×ÑØ�C‰C‹EÐEô	
ð HˆØGˆØ�D—I‘I‰~  Q¡Ñ&ˆØ×ÑØ�F‰F‹HÐHô	
ð 	×ÑØ�F‰F‹HÐHõ	
r$   c                 ó  — t         }|j                  «       }| j                  ||«       | j                  |j                  «       |j                  «       «       | j                  |j	                  «       |j	                  «       «       y r   )r	   Údoubler=   rz   r{   )r?   r!   Úp3s      r"   Útest_double_infinityzTestPoint.test_double_infinity±   sZ   € ÜˆØ�Y‰Y‹[ˆØ×Ñ˜˜RÔ Ø×Ñ˜Ÿ™› §¡£Ô(Ø×Ñ˜Ÿ™› §¡£Õ(r$   c                 óà   — d\  }}}}t        | j                  ||«      }|j                  «       }| j                  |j	                  «       |«       | j                  |j                  «       |«       y )N)é   é
   r   é   )r
   r8   r…   r=   rz   r{   )r?   Úx1Úy1Úx3Úy3r!   r†   s          r"   Útest_doublezTestPoint.test_double¸   sX   € Ø'‰ˆˆB��Bä�4—9‘9˜b "Ó%ˆØ�Y‰Y‹[ˆØ×Ñ˜Ÿ™› Ô$Ø×Ñ˜Ÿ™› Õ$r$   c                 óV  — t        | j                  dd«      }|j                  «       }| j                  |j	                  «       |j                  «       fd«       | j                  |t        «       |j                  «       }| j                  |t        «       | j                  |t        «       y ©Né   é   ©rT   r   )	r
   r8   r…   r=   rz   r{   rC   r	   ÚassertIs©r?   r!   Úp2r†   s       r"   Útest_double_to_infinityz!TestPoint.test_double_to_infinityÀ   sy   € Ü�4—9‘9˜b "Ó%ˆØ�Y‰Y‹[ˆØ×Ñ˜"Ÿ$™$›& "§$¡$£&Ð)¨6Ô2Ø×Ñ˜B¤Ô)Ø�Y‰Y‹[ˆØ×Ñ˜œXÔ&Ø�‰�bœ(Õ#r$   c                 ó*  — t        | j                  dd«      }||z   }| j                  |j                  «       |j	                  «       fd«       | j                  |t        «       ||z   }| j                  |t        «       | j                  |t        «       y r’   ©r
   r8   r=   rz   r{   rC   r	   r–   r—   s       r"   Útest_add_self_to_infinityz#TestPoint.test_add_self_to_infinityÉ   su   € Ü�4—9‘9˜b "Ó%ˆØ�"‰WˆØ×Ñ˜"Ÿ$™$›& "§$¡$£&Ð)¨6Ô2Ø×Ñ˜B¤Ô)Ø�"‰WˆØ×Ñ˜œXÔ&Ø�‰�bœ(Õ#r$   c                 ó*  — t        | j                  dd«      }|dz  }| j                  |j                  «       |j	                  «       fd«       | j                  |t        «       |dz  }| j                  |t        «       | j                  |t        «       y )Nr“   r”   r   r•   r›   r—   s       r"   Útest_mul_to_infinityzTestPoint.test_mul_to_infinityÒ   su   € Ü�4—9‘9˜b "Ó%ˆØ�!‰VˆØ×Ñ˜"Ÿ$™$›& "§$¡$£&Ð)¨6Ô2Ø×Ñ˜B¤Ô)Ø�!‰VˆØ×Ñ˜œXÔ&Ø�‰�bœ(Õ#r$   c                 óÌ   — d\  }}}}}t        | j                  ||«      }||z  }| j                  |j                  «       |«       | j                  |j	                  «       |«       y )N)r‰   rŠ   r   r   r‹   ©r
   r8   r=   rz   r{   )r?   rŒ   r�   r1   rŽ   r�   r!   r†   s           r"   Útest_multiplyzTestPoint.test_multiplyÛ   sY   € Ø-ÑˆˆB��2�rÜ�4—9‘9˜b "Ó%ˆØ�!‰VˆØ×Ñ˜Ÿ™› Ô$Ø×Ñ˜Ÿ™› Õ$r$   c                 óü   — d\  }}}}}}t        | j                  ||«      }t        | j                  ||«      }||z   }	| j                  |	j                  «       |«       | j                  |	j	                  «       |«       y)ú:We expect that on curve c, (x1,y1) + (x2, y2 ) = (x3, y3).)r‰   rŠ   r,   r   é   r”   Nr    ©
r?   rŒ   r�   Úx2Úy2rŽ   r�   r!   r˜   r†   s
             r"   Útest_addzTestPoint.test_addã   óo   € ð "7ÑˆˆB��B˜˜BÜ�4—9‘9˜b "Ó%ˆÜ�4—9‘9˜b "Ó%ˆØ�"‰WˆØ×Ñ˜Ÿ™› Ô$Ø×Ñ˜Ÿ™› Õ$r$   c                 óü   — d\  }}}}}}t        | j                  ||«      }t        | j                  ||«      }||z   }	| j                  |	j                  «       |«       | j                  |	j	                  «       |«       y)r£   )r‰   rŠ   r‰   rŠ   r   r‹   Nr    r¥   s
             r"   Útest_add_as_doublezTestPoint.test_add_as_doubleí   r©   r$   c           	      óh   — | j                  | j                  t        | j                  ddd«      «       y )Nr   r   )r=   rv   r
   r8   r>   s    r"   Útest_equality_pointszTestPoint.test_equality_points÷   s%   € Ø×Ñ˜Ÿ™¤E¨$¯)©)°R¸¸AÓ$>Õ?r$   c                 ór   — t        ddd«      }t        |ddd«      }| j                  | j                  |«       y ©Néd   r   )r   r
   rC   rv   )r?   rf   r0   s      r"   Útest_inequality_pointsz TestPoint.test_inequality_pointsú   s4   € Ü�C˜˜SÓ!ˆÜ�!�S˜#˜sÓ#ˆØ×Ñ˜DŸI™I qÕ)r$   c                 óV   — t        ddd«      }| j                  | j                  |«       y r¯   )r   rC   rv   re   s     r"   Ú!test_inequality_points_diff_typesz+TestPoint.test_inequality_points_diff_typesÿ   s$   € Ü�C˜˜SÓ!ˆØ×Ñ˜DŸI™I qÕ)r$   c                 ó„   — t        | j                  dd«      }t        | j                  dd«      }| j                  ||«       y )Né   rT   é   )r
   r8   rC   )r?   r!   r˜   s      r"   Útest_inequality_diff_yz TestPoint.test_inequality_diff_y  s6   € Ü�4—9‘9˜a Ó#ˆÜ�4—9‘9˜a Ó$ˆà×Ñ˜B Õ#r$   c                 ó®   — t        | j                  dd«      }| j                  |t        j                  | j                  |j	                  «       «      «       y ©Nr‰   rŠ   )r
   r8   r=   Ú
from_bytesÚto_bytes©r?   r0   s     r"   Útest_to_bytes_from_bytesz"TestPoint.test_to_bytes_from_bytes	  s;   € Ü�$—)‘)˜Q Ó#ˆà×Ñ˜œE×,Ñ,¨T¯Y©Y¸¿
¹
»ÓEÕFr$   c                 óf   — t        | j                  dd«      }| j                  t        || z   «       y r¹   )r
   r8   r=   r	   r¼   s     r"   Útest_add_to_neg_selfzTestPoint.test_add_to_neg_self  s*   € Ü�$—)‘)˜Q Ó#ˆà×Ñœ 1¨¨¡8Õ,r$   c                 ód   — t        | j                  dd«      }| j                  ||t        z   «       y r¹   )r
   r8   r–   r	   r¼   s     r"   Útest_add_to_infinityzTestPoint.test_add_to_infinity  s&   € Ü�$—)‘)˜Q Ó#ˆà�‰�a˜œX™Õ&r$   c                 ó>   — | j                  t        t        dz  «       y )NrŠ   )r–   r	   r>   s    r"   Útest_mul_infinity_by_scalarz%TestPoint.test_mul_infinity_by_scalar  s   € Ø�‰”h¤¨2¡Õ.r$   c                 ód   — t        | j                  dd«      }| j                  |dz  | dz  «       y )Nr‰   rŠ   éûÿÿÿé   )r
   r8   r=   r¼   s     r"   Útest_mul_by_negativezTestPoint.test_mul_by_negative  s.   € Ü�$—)‘)˜Q Ó#ˆà×Ñ˜˜R™ 1 "¨¡Õ*r$   c                 óB   — | j                  t        t        «      d«       y )NÚinfinity)r=   rb   r	   r>   s    r"   Útest_str_infinityzTestPoint.test_str_infinity   s   € Ø×ÑœœX›¨
Õ3r$   c                 óh   — t        | j                  dd«      }| j                  t        |«      d«       y )Nr‰   rŠ   z(3,10))r
   r8   r=   rb   r¼   s     r"   Útest_str_pointzTestPoint.test_str_point#  s(   € Ü�$—)‘)˜Q Ó#ˆà×Ñœ˜Q› Õ*r$   N)rh   ri   rj   rk   r;   rƒ   r‡   r�   r™   rœ   rž   r¡   r¨   r«   r­   r±   r³   r·   r½   r¿   rÁ   rÃ   rÇ   rÊ   rÌ   r/   r$   r"   rt   rt   „   sz   „ Øñ.ó ð.ò
ò8)ò%ò$ò$ò$ò%ò%ò%ò@ò*ò
*ò$òGò
-ò
'ò
/ò+ò
4ó+r$   rt   r/   )-ÚpytestÚ	unittest2ÚunittestÚImportErrorÚ
hypothesisr   r   Úhypothesis.strategiesÚ
strategiesÚstr   Ú
HC_PRESENTÚnumbertheoryr   Úellipticcurver   r	   r
   r   ÚHYP_SETTINGSÚtoo_slowr0   r   rB   rw   rx   rD   r   r8   rv   ÚdictÚHYP_SLOW_SETTINGSÚintegersr#   r*   ÚmarkÚparametrizeÚ	enumerateÚrangeÚformatr3   ÚTestCaser5   rm   rt   )r'   Úexpr)   s   000r"   Ú<module>rä      sî  ðÛ ðÛ ÷ 'Ý "ðÝ&à€Jõ &ß >Ó >ð €ÙØ-8×-AÑ-AÐ,B€LÐ(Ñ)Ø#€L�Ñð ?€Ø>€ð 7€Ø7€Ø7€áˆq�"�aÓ€ÙˆT�2�r˜1Ó€áˆr�1�aÓ€ÙˆT�2�q˜!Ó€ñ ˜Ó&Ð Ø$%Ð �.Ñ !ñ 
ÑÐÑÙ€{€r‡{�{˜Q¨!¨a©%Ô0Ó1ñó 2ó ðòð ‡�×ÑØÙ"+©K¸¸aÓ,@Ô"AÔBÑ"A™˜˜3€dˆAˆs‚^Ð"AÒBÙ6;¸A´hÓ?±h°Ð	"×	)Ñ	)¨!Õ	,°hÑ?ð ó ñ
óð
ô$A�×!Ñ!ô $AôN�H×%Ñ%ô ô&b+�×!Ñ!õ b+øð ò Þðûð ò ØƒJðüój CùÚ?s.   †E( ™E8 Ã&FÄFÅ(	E5Å4E5Å8FÆF