+
    TŎii;                        ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RI	t	^ RI
t
^ RIt
]	P                  R 4       tR tR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R t%R t&R t'R t(R  t)R! t*R" t+R# t,R$ t-R% t.R& t/R' t0R( t1R) t2R* t3R+ t4R, t5R- t6R. t7R/ t8R0 t9R1 t:R2 t;R3 t<R4 t=R5 t>R6 t?R7 t@R# )8    N)metadata)patchc               #      "   \         P                  P                  4        \         P                  x  \         P                  P                  4        R # 5iN)	pycountry	countries_clear     k/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/pycountry/tests/test_general.pyr   r      s5      


 s   AAc                     \        \        P                  4      ^8X  g   Q h\        \	        \        P                  4      ^ ,          \        P
                  P                  4      '       g   Q hR# )   N)lenr   r   
isinstancelistdbDatar   s   &r   test_country_listr      sH    y""#s***d9../2ILL4E4EFFFFr   c                    \         P                  P                  R 4      p\        V4      ^8X  g   Q hV^ ,          \         P                  P	                  RR7      8X  g   Q h\         P                  P                  R4      p\        V4      ^8X  g   Q hV^ ,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q h\         P                  P                  R4      p\        V4      ^8X  g   Q hV^ ,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  R	R7      8X  g   Q h\         P                  P                  R
4      pV^ ,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^,          \         P                  P	                  RR7      8X  g   Q hV^	,          \         P                  P	                  RR7      8X  g   Q h\         P                  P                  R4      p\        V4      ^8X  g   Q hV^ ,          \         P                  P	                  RR7      8X  g   Q hR# )EnglandGBalpha_2zSint MaartenNLSXCoteCIFRHNNewNCNZPGUSCAAUBSTWMHzunited states of americaN)r   r   search_fuzzyr   getr   resultss   & r   test_country_fuzzy_searchr/      sG   !!..y9Gw<11:,,000>>>> !!..~>Gw<11:,,000>>>>1:,,000>>>>
 !!..v6Gw<11:,,000>>>>1:,,000>>>>1:,,000>>>> !!..u5G1:,,000>>>>1:,,000>>>>1:,,000>>>>1:,,000>>>>1:,,000>>>>1:,,000>>>>1:,,000>>>>1:,,000>>>>1:,,000>>>>1:,,000>>>> !!../IJGw<11:,,000>>>>r   c                     \         P                  P                  R 4      p\        V4      ^8X  g   Q hV^ ,          \         P                  P	                  RR7      8X  g   Q hR# )burmaBUMMalpha_4N)r   historic_countriesr+   r   r,   r-   s   & r   "test_historic_country_fuzzy_searchr6   B   sP    **77@Gw<11:5599&9IIIIr   c                    \         P                  P                  R R7      pVP                  R 8X  g   Q hVP                  R8X  g   Q hVP
                  R8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hR# )DEr   DEU276GermanyFederal Republic of GermanyN)r   r   r,   r   alpha_3numericnameofficial_name)r   germanys   & r   test_germany_has_all_attributesrB   H   sx    !!%%d%3G??d"""??e###??e###<<9$$$  $AAAAr   c                    \         P                  P                  R R7      pVP                  R 8X  g   Q hVP                  R8X  g   Q h\
        P                  ! \        RR7      ;_uu_ 4        VP                   RRR4       \
        P                  ! \        RR7      ;_uu_ 4        VP                   RRR4       R#   + '       g   i     LK; i  + '       g   i     R# ; i)AWr   Arubar@   matchNcommon_name)
r   r   r,   r   r?   pytestraisesAttributeErrorr@   rH   )r   arubas   & r   test_missing_common_officialrM   Q   s    ##D#1E==D   ::   	~_	=	= 
>	~]	;	; 
<	; 
>	=	;	;	;s   +B;$C;C	C	c                     \         P                  P                  R R7      pVP                  R 8X  g   Q hVP                  R8X  g   Q hVP
                  R8X  g   Q hVP                  R8X  g   Q hR# )VNr   zViet NamzSocialist Republic of Viet NamVietnamN)r   r   r,   r   r?   r@   rH   )r   vietnams   & r   *test_missing_common_official_use_differentrR   [   sh    !!%%d%3G??d"""<<:%%%  $DDDD)+++r   c                     \         P                  P                  R R7      p\        P                  ! \
        4      ;_uu_ 4        VP                  pRRR4       R#   + '       g   i     R# ; ir8   r   N)r   r   r,   rI   rJ   rK   foo)r   rA   _s   &  r   test_country_missing_attributerW   c   sB    !!%%d%3G	~	&	&KK 
'	&	&	&   AA+	c                 ,   \        \        P                  4      R 8X  g   Q h\        \	        \        P                  4      ^ ,          \        P
                  P                  4      '       g   Q h\        P                  P                  RR7      pVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  e   Q hVP                  e   Q hVP                  \        P                  P                  RR7      J g   Q hR# )i  zDE-STcodezSachsen-AnhaltLandNr8   r   )r   r   subdivisionsr   r   r   r   r,   r[   r?   typeparentparent_codecountryr   )r   de_sts   & r   %test_subdivisions_directly_accessiblerc   i   s    y%%&$...d911215y||7H7HIIII""&&G&4E::   ::))))::<<$$$==I//33D3AAAAr   c                  x   \         P                  P                  R R7      p V P                  R 8X  g   Q hV P                  R8X  g   Q hV P
                  R8X  g   Q hV P                  R8X  g   Q hV P                  \         P                  P                  RR7      J g   Q hV P                  P                  R8X  g   Q hR# )zFR-01rZ   AinzMetropolitan departmentFR-ARAu   Auvergne-Rhône-AlpesN)r   r]   r,   r[   r?   r^   r`   r_   )fr_01s    r   ,test_subdivisions_have_subdivision_as_parentrh   v   s    ""&&G&4E::   ::::2222(((<<9115585DDDD<< 7777r   c                      \        \        P                  P                  R R7      4      ^8X  g   Q h\        \        P                  P                  RR7      4      ^98X  g   Q hR# )r8   country_coder%   N)r   r   r]   r,   r
   r   r   "test_query_subdivisions_of_countryrl      sP    y%%))t)<=CCCy%%))t)<=CCCr   c                     \        \        P                  4      ^8X  g   Q h\        \	        \        P                  4      ^ ,          \        P
                  P                  4      '       g   Q h\        P                  P                  RR7      p V P                  R8X  g   Q hV P                  R8X  g   Q hV P                  R8X  g   Q hR# )   Latinr?   Latn215N)r   r   scriptsr   r   r   r   r,   r4   r?   r>   )latins    r   test_scriptsru      s    y  !S(((d9,,-a0),,2C2CDDDD!!w!/E==F"""::   ==E!!!r   c                     \        \        P                  4      ^8X  g   Q h\        \	        \        P                  4      ^ ,          \        P
                  P                  4      '       g   Q h\        P                  P                  RR7      p V P                  R8X  g   Q hV P                  R8X  g   Q hV P                  R8X  g   Q hR# )   ARSr=   zArgentine Peso032N)r   r   
currenciesr   r   r   r   r,   r=   r?   r>   )argentine_pesos    r   test_currenciesr}      s    y##$+++d9//03Y\\5F5FGGGG))--e-<N!!U***"2222!!U***r   c                  f   \        \        P                  4      R 8X  g   Q h\        \	        \        P                  4      ^ ,          \        P
                  P                  4      '       g   Q h\        P                  P                  RR7      p V P                  R8X  g   Q hV P                  R8X  g   Q hV P                  R8X  g   Q h\        P                  P                  RR7      pVP                  R8X  g   Q hVP                  R8X  g   Q h\        P                  P                  R4      pW!8X  g   Q hR	# )
i  anr   arg	AragonesebnBengaliBanglabAngLaN)r   r   	languagesr   r   r   r   r,   r   r=   r?   rH   lookup)	aragonesebengalibengali2s      r   test_languagesr      s    y""#t+++d9../2ILL4E4EFFFF##'''5I$$$%%%>>[(((!!%%d%3G<<9$$$(*** ""))(3Hr   c                  f   \        \        P                  4      ^s8X  g   Q h\        \	        \        P                  4      ^ ,          \        P
                  P                  4      '       g   Q h\        P                  P                  RR7      p V P                  R8X  g   Q hV P                  R8X  g   Q hR# )s   r   ry   r   N)r   r   language_familiesr   r   r   r   r   r,   r=   r?   )r   s    r   test_language_familiesr      s    y**+s222d9667:ILL<M<MNNNN##'''6I%%%>>[(((r   c                      \         P                  ! R \        P                  R.R7      p V P                  R4      R8X  g   Q hR# )z	iso3166-1de)r   r;   DeutschlandN)gettexttranslationr   LOCALES_DIR)germans    r   test_localesr      s:      Y**tfF >>)$555r   c                  6   \         P                  P                  R R7      p \        V \         P                  P
                  4      '       g   Q hV P                  R8X  g   Q hV P                  R 8X  g   Q hV P                  R8X  g   Q hV P                  R8X  g   Q hR# )SUNry   SUHHz)USSR, Union of Soviet Socialist Republicsz
1992-08-30N)
r   r5   r,   r   r   r   r4   r=   r?   withdrawal_date)ussrs    r   test_removed_countriesr      s    ''++E+:DdILL--....<<6!!!<<5   99CCCC<///r   c           	          \         P                  ! R \        \        P                  P                  RR7      4      4      '       g   Q hR# )zCountry\(alpha_2=u?'DE', alpha_3=u?'DEU', flag='..', name=u?'Germany', numeric=u?'276', official_name=u?'Federal Republic of Germany'\)r8   r   N)rerG   reprr   r   r,   r   s   &r   	test_reprr      s@    88	; 	Y  $$T$23   r   c                     \         P                  P                  R R7      pRR RRRRRRR	R
RVP                  /p\	        V4      V8X  g   Q hR# )r8   r   r   r=   r9   r?   r;   r>   r:   r@   r<   flagN)r   r   r,   r   dict)r   ra   exps   &  r   	test_dictr      sY    !!%%d%3G45	56C =Cr   c                 |    \         P                  P                  R R7      pR F  pV\        V4      9   d   K  Q h	  R# )r8   r   N)r   r=   r?   r>   r@   )r   r   r,   dir)r   rA   ns   &  r   test_dirr      s8    !!%%d%3GECL    Fr   c                    \         P                  p\        P                  ! \        4      ;_uu_ 4        VP                  R RR7       RRR4       VP                  R R7      VP                  RR7      8X  g   Q hVP                  RR7      e   Q h\        4       pVP                  RVR7      VJ g   Q hR#   + '       g   i     Lt; i)r8   r9   )r   r=   Nr   ry   Foo)r   default)r   r   rI   rJ   	TypeErrorr,   object)r   ctracers   &  r   test_getr      s    A	y	!	!	dE* 
"555!%%%"6666555'''XF555/6999 
"	!s   B33C	c                 N   \         P                  pVP                  R R7      pW!P                  RR7      8X  g   Q hW!P                  R4      8X  g   Q hW!P                  R4      8X  g   Q hW!P                  R4      8X  g   Q hW!P                  R4      8X  g   Q hW!P                  R4      8X  g   Q h\         P                  P                  RR7      pV\         P                  P                  R	4      8X  g   Q h\         P
                  P                  RR7      pV\         P
                  P                  R
4      8X  g   Q h\         P                  P                  RR7      pV\         P                  P                  R4      8X  g   Q h\         P                  P                  RR7      pV\         P                  P                  R4      8X  g   Q h\         P                  P                  RR7      pV\         P                  P                  R4      8X  g   Q h\        P                  ! \        4      ;_uu_ 4        \         P                  P                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        \         P                  P                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        \         P                  P                  RR7       RRR4       R#   + '       g   i     L; i  + '       g   i     Lp; i  + '       g   i     R# ; i)r8   r   r   r9   r:   rA   r<   BQAQr3   atbDeEURry   euroro   rp   latnrf   rZ   zfr-arazbogus countryNi90  )r   r   r,   r   r5   r   r{   rs   r]   rI   rJ   LookupError)r   r   gbqaqr   r   rt   fr_aras   &       r   test_lookupr      sK   A	dAd########67777''++F+;D9//66u====  $$T$2FY((//5555##E#2D9''..v6666!!w!/EI%%,,V4444##''X'6FY++228<<<<	{	#	#""?3 
$	{	#	#""5) 
$	{	#	#. 
$	#	 
$	#	#	#	#	#	#s$   . K-8 L !L-K=	 L	L$	c                      \         P                  p V P                  R R7      pVP                  R8X  g   Q hVP                  V P                  VP                  R7      J g   Q hR# )zCV-BVrZ   zCV-BN)r   r]   r,   r`   r_   )ssds     r   test_subdivision_parentr   	  sP    A	
G	B>>V###992>>2222r   c                  R    \         P                  p V P                  R R7      e   Q hR# )zUS-ZZrZ   N)r   r]   r,   r   s    r   -test_subdivision_missing_code_raises_keyerrorr     s$    A55g5&&&r   c                      \         P                  p \        V P                  R R7      4      ^8X  g   Q h\        V P                  RR7      4      ^ 8X  g   Q hV P                  RR7      e   Q hR# )r8   rj   JEFOOBARN)r   r]   r   r,   r   s    r   test_subdivision_empty_listr     s`    Aquu$u'(B...quu$u'(A---55h5'///r   c                  2    \         P                  ! R 4       \
        P                  R8w  g   Q h\        \
        P                  4      ^8  g   Q hR\
        P                  9   g   Q hR#   \         P                   d    \        P                  ! R4        L}i ; i)r   z5pycountry not installed correctly, you're on your ownn/a.N)_importlib_metadatadistributionPackageNotFoundErrorrI   skipr   __version__r   r
   r   r   test_has_version_attributer     s    M((5   E)))y$$%***)'''''	 33 MKLMs   A( (+BBc                  f    \        \        P                  \        P                  4      '       g   Q hR # r   )r   r   r   	Languagesr
   r   r   test_is_instance_of_languager   &  s!    i))9+>+>????r   c                     \         P                  P                  R R7      pVP                  P                  pVR8X  g   Q hR# )r%   r   CountryN)r   r   r,   	__class____name__)r   united_states
class_names   &  r   test_is_instance_of_countryr   *  s:    ''++D+9M((11J"""r   c                  f    \        \        P                  \        P                  4      '       g   Q hR # r   )r   r   r]   Subdivisionsr
   r   r   test_is_instance_of_subdivisionr   0  s!    i,,i.D.DEEEEr   c                  f    \        \        P                  \        P                  4      '       g   Q hR # r   )r   r   rs   Scriptsr
   r   r   test_is_instance_of_scriptr   4  s!    i''):):;;;;r   c                  f    \        \        P                  \        P                  4      '       g   Q hR # r   )r   r   r{   
Currenciesr
   r   r   test_is_instance_of_currencyr   8  s!    i**I,@,@AAAAr   c                 ,   \         P                  P                  R R7      e   Q h\         P                  P                  R RRRR7       \         P                  P                  R R7      p\	        V\         P                  P
                  4      '       g   Q hR# )XKr   NXXKKosovo926)r   r=   r?   r>   )r   r   r,   	add_entryr   
data_class)r   ra   s   & r   test_add_entryr   <  s~    ""4"0888!!e(E "  !!%%d%3Ggy22==>>>>r   c                     \         P                  P                  R R7      f   Q h\         P                  P                  R R7       \         P                  P                  R R7      e   Q hR# rT   )r   r   r,   remove_entryr   s   &r   test_remove_entryr   G  sY    ""4"0<<<$$T$2""4"0888r   c                      \         P                  ! \        R R7      ;_uu_ 4        \        P                  P                  RR7       RRR4       R#   + '       g   i     R# ; i)z	not foundrF   zNot A Real Countryrp   N)rI   rJ   KeyErrorr   r   r   r
   r   r   test_remove_non_existent_entryr   O  s:    	x{	3	3((.B(C 
4	3	3	3s   !AA!	c                 j  a  ^ RI oV3R lpV! RR4      p\        P
                  ! \        P                  P                  VR4      4      p Rp\        P                  ! \        4      ;_uu_ 4        V P                  V4       RRR4       R#   \         d
    ^ RIHo  Li ; i  + '       g   i     R# ; i)r   N)	resourcesc                 F   < \        SP                  V 4      V,          4      # r   )strfiles)package_or_requirementresource_nameimportlib_resourcess   &&r   resource_filename7test_no_results_lookup_error.<locals>.resource_filenameZ  s$    %%&<=M
 	
r   r   	databasesziso3166-1.jsonznonexistent query)r   ModuleNotFoundError	importlibr   r   ExistingCountriesospathjoinrI   rJ   r   r+   )r   r   DATABASE_DIRqueryr   s   &   @r   test_no_results_lookup_errorr  T  s    ?"

 %[+>L++
\#34I  E	{	#	#u% 
$	#  ?>? 
$	#	#s   B
 .B!
BB!B2	c                      \         P                  P                  R 4      p \        V 4      ^8X  g   Q hV ^ ,          P                  R 8X  g   Q hR# AlabamaNr   r]   r+   r   r?   r.   s    r   #test_subdivision_fuzzy_search_matchr  i  s@    $$11)<Gw<11:??i'''r   c                      \         P                  P                  R 4      p \        V 4      ^8X  g   Q hV ^ ,          P                  R8X  g   Q hR# MassachusettMassachusettsNr  r  s    r   +test_subdivision_fuzzy_search_partial_matchr  o  s@    $$11.AGw<11:??o---r   c                      \         P                  P                  R 4      p \        V 4      ^8X  g   Q hV ^ ,          P                  R 8X  g   Q hR# r	  )r   r]   rG   r   r?   r  s    r   test_subdivision_matchr  u  s@    $$**95Gw<11:??i'''r   c                      \         P                  P                  R 4      p \        V 4      ^8X  g   Q hV ^ ,          P                  R8X  g   Q hR# r  )r   r]   partial_matchr   r?   r  s    r   test_subdivision_partial_matchr  {  s@    $$22>BGw<11:??o---r   c                      \         P                  P                  R R7      p \        P                  ! \
        4      ;_uu_ 4        V P                   RRR4       R#   + '       g   i     R# ; i)Englishrp   N)r   r   r,   rI   rJ   rK   r@   )englishs    r    test_non_country_attribute_errorr    sB    !!%%9%5G	~	&	& 
'	&	&	&rX   c                     \         P                  P                  R R7      p\        P                  ! \
        4      ;_uu_ 4        VP                   RRR4       R#   + '       g   i     R# ; i)r&   r   N)r   r   r,   rI   rJ   rK   maple_syrup)r   canadas   & r   test_country_attribute_errorr    sB      $$T$2F	~	&	& 
'	&	&	&rX   c                      \         P                  ! R 4      R8X  g   Q h\         P                  ! R4      R8X  g   Q h\         P                  ! R4      R8X  g   Q h\         P                  ! R4      R8X  g   Q hR# )	u   CaféCafeu   résuméresumeu   naïvenaiveu
   São Pauloz	Sao PauloNr   remove_accentsr
   r   r   test_with_accentsr&    sf    ##G,666##J/8;;;##H-888##L1[@@@r   c                  z    \         P                  ! R 4      R 8X  g   Q h\         P                  ! R4      R8X  g   Q hR# )applebananaNr$  r
   r   r   test_without_accentsr*    s4    ##G,777##H-999r   c                  @    \         P                  ! R 4      R 8X  g   Q hR# ) Nr$  r
   r   r   test_empty_stringr-    s    ##B'2---r   c                  @    \         P                  ! R 4      R 8X  g   Q hR# )z
!@#$%^&*()Nr$  r
   r   r   test_special_charactersr/    s    ##L1\AAAr   c                  z    \         P                  ! R 4      R 8X  g   Q h\         P                  ! R4      R8X  g   Q hR# )u   你好u   こんにちはNr$  r
   r   r   test_unicode_charactersr1    s8    ##H-999  !237HHHr   c                      \         P                  ! \        4      ;_uu_ 4        \        P                  P                  R 4       RRR4       R#   + '       g   i     R# ; izNon Existent SubdivisionN)rI   rJ   r   r   r]   r+   r
   r   r   6test_subdivision_search_fuzzy_non_existent_subdivisionr4    s5    	{	#	#++,FG 
$	#	#	#s    AA	c                  h    \         P                  P                  R 4      p \        V 4      ^ 8X  g   Q hR# r3  )r   r]   r  r   results    r   "test_subdivision_partial_match_nonr8    s+    ##112LMFv;!r   c                  h    \         P                  P                  R 4      p \        V 4      ^ 8X  g   Q hR# r3  )r   r]   rG   r   r6  s    r   test_subdivision_match_nonr:    s+    ##))*DEFv;!r   c                      \        R \        P                  R7      ;_uu_ 4        \        P                  ! R4      p V R8X  g   Q h RRR4       R#   + '       g   i     R# ; i)zimportlib.metadata.version)side_effectnon_existent_packager   N)r   r   r   r   get_versionr6  s    r   'test_get_version_with_package_not_foundr?    sQ    	$'<<
 

 &&'=> 
 
 
 
s    AA 	c                      \         P                  p V  Uu. uF  p\        VR 4      NK  	  pp\        V4      pV'       g   Q hR# u upi )r?   N)r   r]   hasattrall)r]   subdivisionhas_name_attrall_have_name_attrs       r   )test_all_subdivisions_have_name_attributerF    sK    ))L8D8DV$   ]+s   Ac                      \         P                   U u. uFC  p V P                  '       g   K  V P                  '       d   K+  V P                  V P                  3NKE  	  pp V. 8X  g   Q hR # u up i r   )r   r]   r`   r_   r[   )ir7  s     r   &test_subdivisions_with_missing_parentsrI    s_     '''A== 	 !" 	 '  
 R<<s   A)A) A))Ar   os.pathr  r   r   r   r   unittest.mockr   rI   r   pycountry.dbfixturer   r   r/   r6   rB   rM   rR   rW   rc   rh   rl   ru   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r&  r*  r-  r/  r1  r4  r8  r:  r?  rF  rI  r
   r   r   <module>rN     sA     	 5     ! !G
&?RJB,
B8D
"+$)60	
 !:/83'
0(@#F<B?9D
&*(.(.A:
.BH



r   