Ë
    /¾ªjv"  ã                   ó`  — d dl Z d dlZd dlmZ 	 d dlmZ d dlZ	d dl
mZ 	 d dlZ	 d dlZd dlmZ d dlmZmZmZmZmZmZ d dlmZ  ee«      j4                  Z G d„ d	ej8                  «      Zed
k(  r ej>                  «        yy# e$ r	 d dlmZ Y Œ|w xY w# e$ r dZY Œzw xY w# e$ r dZY Œ‚w xY w)é    N)ÚPath)Úpatch)ÚImage)Úwrapper)ÚdecodeÚDecodedÚRectÚ
ZBarSymbolÚEXTERNAL_DEPENDENCIESÚORIENTATION_AVAILABLE)ÚPyZbarErrorc                   óÒ  — e Zd Z edd edddd¬«      g d¢erd	nd
d¬«       edd edddd¬«      g d¢erd	nd
d¬«      gZ edd edddd¬«      g d¢erd	nd
d¬«      gZ edd edddd¬«      g d¢erd	nd
d¬«      gZ edd edddd¬«      g d¢erd	nd
d¬«       edd ed d!d"d"¬«      g d#¢erd$nd
d¬«      gZ	e
d%„ «       Ze
d&„ «       Zd'„ Zd(„ Zd)„ Zd*„ Zd+„ Zd,„ Zd-„ Zd.„ Zd/„ Zd0„ Z ej0                  ed
u d1«      d2„ «       Z ej0                  ed
u d3«      d4„ «       Z ed5d6¬7«      d8„ «       Zd9„ Z ed:d6¬7«      d;„ «       Z  ed<d6¬7«      d=„ «       Z! ed>d6¬7«      d?„ «       Z"d@„ Z#dA„ Z$y
)BÚ
TestDecodes   ForameniferaÚCODE128é%   é&  iD  éL   )ÚleftÚtopÚwidthÚheight))r   i'  )r   iq  )éi  ir  )r   r   ÚUPNéM   )ÚdataÚtypeÚrectÚpolygonÚorientationÚqualitys   Rana temporariaé   r   i†  )©r!   é   ©r!   éK   )éŠ  r   ©r&   r   s   Hello Goodbyer%   )r"   r$   )r&   éJ   r'   s   ThalassiodraconÚQRCODEé   é‘   ))r*   r*   )r*   é¬   )r,   r,   )r,   r*   r#   )r   r   r   r   r    é­   é
   éÍ   ))r-   éq   )é  é×   )iz  r0   )r1   r.   é    éÐ   éž   ))r3   i`  )é±   in  )é¾   éÞ   )é.   r4   ÚRIGHTc                 óž   — d„ dD «       \  | _         | _        | _        | _        | _        d | _        t        | d«      s| j                  | _        y y )Nc              3   ó~   K  — | ]5  }t        j                  t        t        j	                  |«      «      «      –— Œ7 y ­w©N)r   ÚopenÚstrÚTESTDATAÚjoinpath)Ú.0Úfnames     úW/var/www/html/serviGia/entorno/lib/python3.12/site-packages/pyzbar/tests/test_pyzbar.pyú	<genexpr>z(TestDecode.setUpClass.<locals>.<genexpr>d   s3   è ø€ ò ^
àô �J‰J”sœ8×,Ñ,¨UÓ3Ó4×5ñ^
ùs   ‚;=)úcode128.pngzcode128_null_character.pngz
qrcode.pngzqrcode_rotated.pngz	empty.pngÚassertRaisesRegex)	Úcode128Úcode128_null_characterÚqrcodeÚqrcode_rotatedÚemptyÚmaxDiffÚhasattrÚassertRaisesRegexprG   ©Úclss    rD   Ú
setUpClasszTestDecode.setUpClassb   sX   € ñ^
ð kô^
ÑZˆŒ�SÔ/°´¸SÔ=OÐQTÔQZð ˆŒô �sÐ/Ô0Ø$'×$:Ñ$:ˆCÕ!ð 1ó    c                 óJ   — d x| _         x| _        x| _        x| _        | _        y r=   )rH   rI   rJ   rK   rL   rP   s    rD   ÚtearDownClasszTestDecode.tearDownClassp   s)   € àaeÐeˆŒÐe�cÔ0Ðe°3´:ÐeÀÔ@RÐUXÕU^rS   c                 óf   — t        | j                  «      }| j                  | j                  |«       y)z#Read both barcodes in `code128.png`N)r   rH   ÚassertEqualÚEXPECTED_CODE128©ÚselfÚress     rD   Útest_decode_code128zTestDecode.test_decode_code128t   s&   € ä�T—\‘\Ó"ˆØ×Ñ˜×.Ñ.°Õ4rS   c                 óf   — t        | j                  «      }| j                  | j                  |«       y)zHRead barcode in `code128_null_character.png` containing a null characterN)r   rI   rW   ÚEXPECTED_CODE128_NULL_CHARACTERrY   s     rD   Ú"test_decode_code128_null_characterz-TestDecode.test_decode_code128_null_charactery   s(   € ä�T×0Ñ0Ó1ˆØ×Ñ˜×=Ñ=¸sÕCrS   c                 óf   — t        | j                  «      }| j                  | j                  |«       y)zRead barcode in `qrcode.png`N)r   rJ   rW   ÚEXPECTED_QRCODErY   s     rD   Útest_decode_qrcodezTestDecode.test_decode_qrcode~   s&   € ä�T—[‘[Ó!ˆØ×Ñ˜×-Ñ-¨sÕ3rS   c                 óf   — t        | j                  «      }| j                  | j                  |«       y)z$Read barcode in `qrcode_rotated.png`N)r   rK   rW   ÚEXPECTED_QRCODE_ROTATEDrY   s     rD   Útest_decode_qrcode_rotatedz%TestDecode.test_decode_qrcode_rotatedƒ   s*   € ô �T×(Ñ(Ó)ˆØ×Ñ˜×5Ñ5°sÕ;rS   c                 óˆ   — t        | j                  t        j                  g¬«      }| j	                  | j
                  |«       y)z!Read only qrcodes in `qrcode.png`©ÚsymbolsN)r   rJ   r
   r)   rW   ra   rY   s     rD   Útest_symbolszTestDecode.test_symbols‰   s1   € ä�T—[‘[¬:×+<Ñ+<Ð*=Ô>ˆØ×Ñ˜×-Ñ-¨sÕ3rS   c                 ót   — t        | j                  t        j                  g¬«      }| j	                  g |«       y)z!Read only code128 in `qrcode.png`rg   N)r   rJ   r
   r   rW   rY   s     rD   Útest_symbols_not_presentz#TestDecode.test_symbols_not_presentŽ   s+   € ä�T—[‘[¬:×+=Ñ+=Ð*>Ô?ˆØ×Ñ˜˜SÕ!rS   c                 óø   — | j                   j                  «       j                  d«      j                  «       }| j                   j                  \  }}t        |||f«      }| j                  | j                  |«       y)zRead barcodes in pixelsÚLN)rH   ÚcopyÚconvertÚtobytesÚsizer   rW   rX   )rZ   Úpixelsr   r   r[   s        rD   Útest_decode_tuplezTestDecode.test_decode_tuple“   sb   € à—‘×"Ñ"Ó$×,Ñ,¨SÓ1×9Ñ9Ó;ˆØŸ™×)Ñ)‰ˆˆvÜ�f˜e VÐ,Ó-ˆØ×Ñ˜×.Ñ.°Õ4rS   c                 ó¦   — | j                   j                  «       }| j                   j                  \  }}| j                  t        t
        |||f«       y r=   )rH   rp   rq   ÚassertRaisesr   r   )rZ   rr   r   r   s       rD   Útest_unsupported_bppzTestDecode.test_unsupported_bppš   s@   € Ø—‘×%Ñ%Ó'ˆØŸ™×)Ñ)‰ˆˆvØ×Ñœ+¤v°¸¸vÐ/FÕGrS   c                 óR   — t        | j                  «      }| j                  g |«       y)zCDo not show any output for an image that does not contain a barcodeN)r   rL   rW   rY   s     rD   Ú
test_emptyzTestDecode.test_emptyŸ   s    € ä�T—Z‘ZÓ ˆØ×Ñ˜˜SÕ!rS   c                 óŒ   — t        t        j                  | j                  «      «      }| j	                  | j
                  |«       y)z4Read image using Pillow and convert to numpy.ndarrayN)r   ÚnpÚasarrayrH   rW   rX   rY   s     rD   Útest_decode_numpyzTestDecode.test_decode_numpy¤   s/   € ä”R—Z‘Z §¡Ó-Ó.ˆØ×Ñ˜×.Ñ.°Õ4rS   zimageio not installedc                 óž   — t        t        j                  t        j	                  d«      «      «      }| j                  | j                  |«       y)zRead image using imageiorF   N)r   ÚimageioÚimreadr@   rA   rW   rX   rY   s     rD   Útest_decode_imageiozTestDecode.test_decode_imageio©   s8   € ô ”W—^‘^¤H×$5Ñ$5°mÓ$DÓEÓFˆØ×Ñ˜×.Ñ.°Õ4rS   zOpenCV not installedc           	      ó°   — t        t        j                  t        t        j                  d«      «      «      «      }| j                  | j                  |«       y)zRead image using OpenCVrF   N)r   Úcv2r   r?   r@   rA   rW   rX   rY   s     rD   Útest_decode_opencvzTestDecode.test_decode_opencv¯   s=   € ô ”S—Z‘Z¤¤H×$5Ñ$5°mÓ$DÓ EÓFÓGˆØ×Ñ˜×.Ñ.°Õ4rS   z%pyzbar.pyzbar.zbar_image_first_symbolT)Úautospecc                 óì   — d„ }||_         t        t        j                  | j                  «      «      }| j
                  d   j                  d¬«      g| j
                  dd z   }| j                  ||«       y)z.The type of the first symbol is not recognisedc                 óV   — t        j                  | «      }|rd|j                  _        |S )Néÿÿÿÿ)r   Úzbar_image_first_symbolÚcontentsr   )ÚimageÚsymbols     rD   Ú'zbar_image_first_symbol_set_symbol_typezYTestDecode.test_unrecognised_symbol_type.<locals>.zbar_image_first_symbol_set_symbol_type¸   s&   € Ü×4Ñ4°UÓ;ˆFÙØ')�—‘Ô$ØˆMrS   r   zUnrecognised type [-1])r   r#   N)Úside_effectr   rz   r{   rH   rX   Ú_replacerW   )rZ   rˆ   rŒ   r[   Úexpecteds        rD   Útest_unrecognised_symbol_typez(TestDecode.test_unrecognised_symbol_typeµ   sw   € ò	ð /VÐÔ+ä”R—Z‘Z §¡Ó-Ó.ˆð ×!Ñ! !Ñ$×-Ñ-Ð3KÐ-ÓLð
à×!Ñ! ! "Ð%ñ&ˆð 	×Ñ˜ 3Õ'rS   c                 ó  — dt        j                  «       k(  rD| j                  dt        t        «      «       | j                  t        d„ t        D «       «      «       | j                  t        d„ t        D «       «      «       y)zExternal dependenciesÚWindowsé   c              3   ó8   K  — | ]  }d |j                   v –— Œ y­w)ÚlibiconvN©Ú_name©rB   Úds     rD   rE   z8TestDecode.test_external_dependencies.<locals>.<genexpr>Ì   s   è ø€ ÒI¨a�J !§'¡'Ô)ÑIùó   ‚c              3   ó8   K  — | ]  }d |j                   v –— Œ y­w)ÚlibzbarNr–   r˜   s     rD   rE   z8TestDecode.test_external_dependencies.<locals>.<genexpr>Ï   s   è ø€ ÒD¨�	˜QŸW™WÔ$ÑDùrš   N)ÚplatformÚsystemrW   Úlenr   Ú
assertTrueÚany)rZ   s    rD   Útest_external_dependenciesz%TestDecode.test_external_dependenciesÇ   s_   € àœŸ™Ó)Ò)Ø×Ñ˜Q¤Ô$9Ó :Ô;Ø�O‰OÜÑIÔ3HÔIÓIôð 	�‰ÜÑDÔ.CÔDÓDõ	
rS   zpyzbar.pyzbar.zbar_image_createc                 ó~   — d |_         | j                  t        dt        | j                  «       |j                  «        y )NzCould not create zbar image©Úreturn_valuerG   r   r   rH   Úassert_called_once_with)rZ   Úzbar_image_creates     rD   Útest_zbar_image_create_failz&TestDecode.test_zbar_image_create_failÒ   s5   € à)-ÐÔ&Ø×ÑÜÐ6¼ÀÇÁô	
ð 	×1Ñ1Õ3rS   z'pyzbar.pyzbar.zbar_image_scanner_createc                 ó~   — d |_         | j                  t        dt        | j                  «       |j                  «        y )NzCould not create image scannerr¤   )rZ   Úzbar_image_scanner_creates     rD   Ú#test_zbar_image_scanner_create_failz.TestDecode.test_zbar_image_scanner_create_failÚ   s5   € à15Ð!Ô.Ø×ÑÜÐ9¼6À4Ç<Á<ô	
ð 	"×9Ñ9Õ;rS   zpyzbar.pyzbar.zbar_scan_imagec                 ó–   — d|_         | j                  t        dt        | j                  «       | j                  d|j                  «       y )Nr‡   zUnsupported image formatr#   )r¥   rG   r   r   rH   rW   Ú
call_count)rZ   Úzbar_scan_images     rD   Útest_zbar_scan_image_failz$TestDecode.test_zbar_scan_image_failâ   s>   € à')ˆÔ$Ø×ÑÜÐ3´V¸T¿\¹\ô	
ð 	×Ñ˜˜O×6Ñ6Õ7rS   c                 ó    — t        t        d«      «      ddf}| j                  t        dt        |«       | j                  t        t        |«       y )Né   é   z;Unsupported bits-per-pixel \[16\]. Only \[8\] is supported.)ÚlistÚrangerG   r   r   ru   ©rZ   r   s     rD   Útest_unsupported_bits_per_pixelz*TestDecode.test_unsupported_bits_per_pixelê   sE   € ä”U˜9Ó%Ó&¨¨1Ð-ˆØ×ÑÜØJÜ�Dô	
ð
 	×Ñœ+¤v¨tÕ4rS   c                 ój   — t        t        d«      «      ddf}| j                  t        dt        |«       y )Nr.   r²   zZInconsistent dimensions: image data of 10 bytes is not divisible by \(width x height = 9\))r³   r´   rG   r   r   rµ   s     rD   Útest_inconsistent_dimensionsz'TestDecode.test_inconsistent_dimensionsô   s3   € ä”U˜2“Y“  AÐ&ˆØ×ÑÜð7ô �Dõ	
rS   )%Ú__name__Ú
__module__Ú__qualname__r   r	   r   rX   r^   ra   rd   ÚclassmethodrR   rU   r\   r_   rb   re   ri   rk   rs   rv   rx   r|   ÚunittestÚskipIfr~   r€   r‚   rƒ   r   r�   r¢   r¨   r«   r¯   r¶   r¸   © rS   rD   r   r   $   sL  „ áØ ØÙ˜2 3¨c¸"Ô=ÚBÙ 5™¸4Øô	
ñ 	Ø#ØÙ˜1 !¨3°rÔ:Ú:Ù 5™¸4Øô	
ðÐñ( 	Ø"ØÙ˜1 !¨3°rÔ:Ú:Ù 5™¸4Øô	
ð	'Ð#ñ 	ØØÙ˜2 2¨S¸Ô=Ú@Ù 5™¸4Øô	
ð	€Oñ 	Ø#ØÙ˜3 B¨c¸#Ô>ÚCÙ 5™¸4Øô	
ñ 	Ø#ØÙ˜2 3¨c¸#Ô>ÚBÙ#8™¸dØô	
ðÐð& ñ;ó ð;ð ñfó ðfò5ò
Dò
4ò
<ò4ò
"ò
5òHò
"ò
5ð
 €X‡_�_�W �_Ð&=Ó>ñ5ó ?ð5ð
 €X‡_�_�S˜D�[Ð"8Ó9ñ5ó :ð5ñ
 Ð2¸TÔBñ(ó Cð(ò"	
ñ Ð,°tÔ<ñ4ó =ð4ñ Ð4¸tÔDñ<ó Eð<ñ Ð*°TÔ:ñ8ó ;ð8ò5ó

rS   r   Ú__main__) r�   r½   Úpathlibr   Úunittest.mockr   ÚImportErrorÚmockÚnumpyrz   ÚPILr   r‚   r~   Úpyzbarr   Úpyzbar.pyzbarr   r   r	   r
   r   r   Úpyzbar.pyzbar_errorr   Ú__file__Úparentr@   ÚTestCaser   r¹   Úmainr¿   rS   rD   ú<module>rÎ      sÁ   ðÛ Û å ðÝ#ó
 å ðÛðÛõ ÷÷ õ ,ñ �‹>× Ñ €ôZ
�×"Ñ"ô Z
ðz ˆzÒØ€H‡M�M…Oð øðs ò çðûð ò Ø
‚Cðûð
 ò Ø‚Gðús3   �B ¡B ¦B# ÂBÂBÂB ÂB Â#B-Â,B-