Ë
    á9j†  ã            	       óÔ   — d Z ddlZddlmc mZ ddlmZm	Z	m
Z
mZmZ ddlmZ ddededee   dz  defd	„Z G d
„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)zGTests for OE normalization, category synonyms, and offer deduplication.é    N)Údeduplicate_offersÚexpand_category_synonymsÚis_model_tokenÚis_plausible_oeÚnormalize_oe©ÚOfferÚoidÚplatformÚoeÚreturnc                 ó6   — t        | |d| › �d| › �|xs g ¬«      S )Nzhttps://example.com/zOffer )Úoffer_idr   ÚurlÚtitleÚ
oe_numbersr   )r
   r   r   s      ú7/var/www/html/agent.samochodowy/tests/test_normalize.pyÚ_offerr      s/   € ÜØØØ" 3 %Ð(Ø�s�eˆnØ’8˜ôð ó    c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestNormalizeOec                 óÒ  — d}t        |«      }d}||k(  }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	Nz06B 115 105Ú	06B115105©ú==©z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)sr   ©Úpy0Úpy2Úpy4Úpy7úassert %(py9)sÚpy9©	r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation©ÚselfÚ@py_assert1Ú@py_assert3Ú@py_assert6Ú@py_assert5Ú@py_format8Ú@py_format10s          r   Útest_strips_spacesz"TestNormalizeOe.test_strips_spaces   sƒ   € Ø)Ð9Œ|˜MÓ*Ð9¨kÐ9Ð*¨kÑ9×9×9Õ9Ð*¨k×9×9×9×9×9Ñ9Œ|×9×9Ó9Œ|×9×9Ô9˜M×9×9Ò9Ð*×9×9Ò9¨k×9×9×9×9×9×9Ö9r   c                 óÒ  — d}t        |«      }d}||k(  }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	Nz51-06500-6408Ú51065006408r   r   r   r   r"   r#   r$   r-   s          r   Útest_strips_dashesz"TestNormalizeOe.test_strips_dashes   óƒ   € Ø+Ð=Œ|˜OÓ,Ð=°Ð=Ð,°Ñ=×=×=Õ=Ð,°×=×=×=×=×=Ñ=Œ|×=×=Ó=Œ|×=×=Ô=˜O×=×=Ò=Ð,×=×=Ò=°×=×=×=×=×=×=Ö=r   c                 óÒ  — d}t        |«      }d}||k(  }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	Nz51.06500.6408r7   r   r   r   r   r"   r#   r$   r-   s          r   Útest_strips_dotsz TestNormalizeOe.test_strips_dots   r9   r   c                 óÒ  — d}t        |«      }d}||k(  }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NzA/B/CÚABCr   r   r   r   r"   r#   r$   r-   s          r   Útest_strips_slashesz#TestNormalizeOe.test_strips_slashes!   sƒ   € Ø#Ð-Œ|˜GÓ$Ð-¨Ð-Ð$¨Ñ-×-×-Õ-Ð$¨×-×-×-×-×-Ñ-Œ|×-×-Ó-Œ|×-×-Ô-˜G×-×-Ò-Ð$×-×-Ò-¨×-×-×-×-×-×-Ö-r   c                 óÒ  — d}t        |«      }d}||k(  }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚabc123ÚABC123r   r   r   r   r"   r#   r$   r-   s          r   Útest_uppercasezTestNormalizeOe.test_uppercase$   sƒ   € Ø$Ð1Œ|˜HÓ%Ð1¨Ð1Ð%¨Ñ1×1×1Õ1Ð%¨×1×1×1×1×1Ñ1Œ|×1×1Ó1Œ|×1×1Ô1˜H×1×1Ò1Ð%×1×1Ò1¨×1×1×1×1×1×1Ö1r   c                 óÒ  — d}t        |«      }d}||k(  }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	Nza-b.c 123/dÚABC123Dr   r   r   r   r"   r#   r$   r-   s          r   Útest_combinedzTestNormalizeOe.test_combined'   sƒ   € Ø)Ð7Œ|˜MÓ*Ð7¨iÐ7Ð*¨iÑ7×7×7Õ7Ð*¨i×7×7×7×7×7Ñ7Œ|×7×7Ó7Œ|×7×7Ô7˜M×7×7Ò7Ð*×7×7Ò7¨i×7×7×7×7×7×7Ö7r   N)	Ú__name__Ú
__module__Ú__qualname__r5   r8   r;   r>   rB   rE   © r   r   r   r      s    „ ò:ò>ò>ò.ò2ó8r   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestModelTokenc                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚFH13T©Úis©z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} is %(py7)sr   r   r"   r#   ©	r   r%   r&   r'   r(   r)   r*   r+   r,   r-   s          r   Útest_known_modelzTestModelToken.test_known_model,   sƒ   € Ø$Ð-Œ~˜fÓ%Ð-¨Ð-Ð%¨Ð-×-×-Õ-Ð%¨×-×-×-×-×-Ñ-Œ~×-×-Ó-Œ~×-×-Ô-˜f×-×-Ò-Ð%×-×-Ò-¨×-×-×-×-×-×-Ö-r   c                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	Nr   FrN   rP   r   r   r"   r#   rQ   r-   s          r   Útest_unknown_tokenz!TestModelToken.test_unknown_token/   sƒ   € Ø)Ð3Œ~˜kÓ*Ð3¨eÐ3Ð*¨eÐ3×3×3Õ3Ð*¨e×3×3×3×3×3Ñ3Œ~×3×3Ó3Œ~×3×3Ô3˜k×3×3Ò3Ð*×3×3Ò3¨e×3×3×3×3×3×3Ö3r   N)rF   rG   rH   rR   rT   rI   r   r   rK   rK   +   s   „ ò.ó4r   rK   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestIsPlausibleOec                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚ20744939TrN   rP   r   r   r"   r#   ©	r   r%   r&   r'   r(   r)   r*   r+   r,   r-   s          r   Útest_normal_oez TestIsPlausibleOe.test_normal_oe4   sƒ   € Ø)Ð2Œ˜zÓ*Ð2¨dÐ2Ð*¨dÐ2×2×2Õ2Ð*¨d×2×2×2×2×2Ñ2Œ×2×2Ó2Œ×2×2Ô2˜z×2×2Ò2Ð*×2×2Ò2¨d×2×2×2×2×2×2Ö2r   c                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚ81508206039TrN   rP   r   r   r"   r#   rY   r-   s          r   Útest_oe_with_lettersz&TestIsPlausibleOe.test_oe_with_letters7   sƒ   € Ø,Ð5Œ˜}Ó-Ð5°Ð5Ð-°Ð5×5×5Õ5Ð-°×5×5×5×5×5Ñ5Œ×5×5Ó5Œ×5×5Ô5˜}×5×5Ò5Ð-×5×5Ò5°×5×5×5×5×5×5Ö5r   c                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚWDB96340310075897FrN   rP   r   r   r"   r#   rY   r-   s          r   Útest_rejects_vinz"TestIsPlausibleOe.test_rejects_vin:   ó…   € Ø2Ð<ŒÐ2Ó3Ð<°uÐ<Ð3°uÐ<×<×<Õ<Ð3°u×<×<×<×<×<Ñ<Œ×<×<Ó<Œ×<×<Ô<Ð2×<×<Ò<Ð3×<×<Ò<°u×<×<×<×<×<×<Ö<r   c                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚWBAPH5C55BA123456FrN   rP   r   r   r"   r#   rY   r-   s          r   Útest_rejects_another_vinz*TestIsPlausibleOe.test_rejects_another_vin=   ra   r   c                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚDE59302FrN   rP   r   r   r"   r#   rY   r-   s          r   Útest_rejects_german_postalz,TestIsPlausibleOe.test_rejects_german_postal@   sƒ   € Ø(Ð2Œ˜yÓ)Ð2¨UÐ2Ð)¨UÐ2×2×2Õ2Ð)¨U×2×2×2×2×2Ñ2Œ×2×2Ó2Œ×2×2Ô2˜y×2×2Ò2Ð)×2×2Ò2¨U×2×2×2×2×2×2Ö2r   c                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚABFrN   rP   r   r   r"   r#   rY   r-   s          r   Útest_rejects_too_shortz(TestIsPlausibleOe.test_rejects_too_shortC   sƒ   € Ø#Ð-Œ˜tÓ$Ð-¨Ð-Ð$¨Ð-×-×-Õ-Ð$¨×-×-×-×-×-Ñ-Œ×-×-Ó-Œ×-×-Ô-˜t×-×-Ò-Ð$×-×-Ò-¨×-×-×-×-×-×-Ö-r   c                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚAE48TrN   rP   r   r   r"   r#   rY   r-   s          r   Útest_accepts_4_charz%TestIsPlausibleOe.test_accepts_4_charF   sƒ   € Ø%Ð.Œ˜vÓ&Ð.¨$Ð.Ð&¨$Ð.×.×.Õ.Ð&¨$×.×.×.×.×.Ñ.Œ×.×.Ó.Œ×.×.Ô.˜v×.×.Ò.Ð&×.×.Ò.¨$×.×.×.×.×.×.Ö.r   c                 óÐ  — d}t        |«      }d}||u }|sÉt        j                  d|fd||f«      dt        j                  «       v st        j
                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )	NÚSB7855TrN   rP   r   r   r"   r#   rY   r-   s          r   Útest_accepts_mixed_alphanumericz1TestIsPlausibleOe.test_accepts_mixed_alphanumericI   sƒ   € Ø'Ð0Œ˜xÓ(Ð0¨DÐ0Ð(¨DÐ0×0×0Õ0Ð(¨D×0×0×0×0×0Ñ0Œ×0×0Ó0Œ×0×0Ô0˜x×0×0Ò0Ð(×0×0Ò0¨D×0×0×0×0×0×0Ö0r   N)rF   rG   rH   rZ   r]   r`   rd   rg   rj   rm   rp   rI   r   r   rV   rV   3   s*   „ ò3ò6ò=ò=ò3ò.ò/ó1r   rV   c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestCategorySynonymSplitc                 óÔ  — t        t        d«      «      }t        t        d«      «      }||z  }t        «       }||k(  }|�s#t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  t         «      rt        j                  t         «      ndt        j                  |«      dœz  }d	d
|iz  }t        t        j                  |«      «      ‚d x}x}}y )Núfiltr paliwazfiltr powietrzar   ©z5(%(py0)s & %(py1)s) == %(py6)s
{%(py6)s = %(py4)s()
}ÚfpÚfpowÚset©r   Úpy1r    Úpy6úassert %(py8)sÚpy8©
rx   r   r%   r&   r'   r(   r)   r*   r+   r,   )r.   rv   rw   Ú@py_assert2r2   r0   Ú@py_format7Ú@py_format9s           r   Ú/test_filtr_paliwa_separate_from_filtr_powietrzazHTestCategorySynonymSplit.test_filtr_paliwa_separate_from_filtr_powietrzaN   sÅ   € ÜÔ)¨.Ó9Ó:ˆÜÔ+Ð,=Ó>Ó?ˆØ�D‰yÐ!œC›EÐ!ˆy˜EÑ!×!×!Ö!ˆy˜E×!×!×!×!×!Ñ!ˆr×!×!Ó!ˆr×!×!×!×!×!Ò!�D×!×!Ó!�D×!×!×!×!×!Ò!œC×!×!Ó!œC×!×!Ô!˜E×!×!×!×!×!×!Ô!r   c                 óÔ  — t        t        d«      «      }t        t        d«      «      }||z  }t        «       }||k(  }|�s#t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  t         «      rt        j                  t         «      ndt        j                  |«      dœz  }d	d
|iz  }t        t        j                  |«      «      ‚d x}x}}y )Nzfiltr olejurt   r   ru   Úforv   rx   ry   r|   r}   r~   )r.   r„   rv   r   r2   r0   r€   r�   s           r   Útest_filtr_oleju_separatez2TestCategorySynonymSplit.test_filtr_oleju_separateS   sÄ   € ÜÔ)¨-Ó8Ó9ˆÜÔ)¨.Ó9Ó:ˆØ�B‰wÐœ#›%Ðˆw˜%Ñ××Öˆw˜%×××××Ñˆr××Óˆr×××××Ò�B××Ó�B×××××Òœ#××Óœ#××Ô˜%××××××Ôr   c                 óø  — t        d«      }d}||v }|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}d}||v }|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}d	}||v}|s™t        j                  d
|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}y )NÚfiltr©Úin©z%(py1)s in %(py3)sÚf©rz   Úpy3úassert %(py5)sÚpy5ÚfilterÚ
luftfilter©únot in©z%(py1)s not in %(py3)s©	r   r%   r&   r*   r'   r(   r)   r+   r,   )r.   r‹   Ú@py_assert0r   Ú@py_format4Ú@py_format6s         r   Útest_generic_filtr_is_own_groupz8TestCategorySynonymSplit.test_generic_filtr_is_own_groupX   s  € Ü$ WÓ-ˆØÐˆw˜!ˆ|××Õˆw˜!××Óˆw×××××Ð˜!××Ó˜!××××××ÓØÐˆx˜1ˆ}××Õˆx˜1××Óˆx×××××Ð˜1××Ó˜1××××××ÓØÐ$ˆ| 1Ð$×$×$Õ$ˆ| 1×$×$Ó$ˆ|×$×$×$×$×$Ð$ 1×$×$Ó$ 1×$×$×$×$×$×$Ô$r   c                 óÔ  — t        t        d«      «      }t        t        d«      «      }||z  }t        «       }||k(  }|�s#t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  t         «      rt        j                  t         «      ndt        j                  |«      dœz  }d	d
|iz  }t        t        j                  |«      «      ‚d x}x}}y )Nú
pompa wodyzpompa paliwar   ru   ÚpwÚpprx   ry   r|   r}   r~   )r.   rœ   r�   r   r2   r0   r€   r�   s           r   Ú*test_pompa_wody_separate_from_pompa_paliwazCTestCategorySynonymSplit.test_pompa_wody_separate_from_pompa_paliwa^   sÄ   € ÜÔ)¨,Ó7Ó8ˆÜÔ)¨.Ó9Ó:ˆØ�B‰wÐœ#›%Ðˆw˜%Ñ××Öˆw˜%×××××Ñˆr××Óˆr×××××Ò�B××Ó�B×××××Òœ#××Óœ#××Ô˜%××××××Ôr   c                 óÔ  — t        t        d«      «      }t        t        d«      «      }||z  }t        «       }||k(  }|�s#t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  t         «      rt        j                  t         «      ndt        j                  |«      dœz  }d	d
|iz  }t        t        j                  |«      «      ‚d x}x}}y )Nzpompa adbluer›   r   ru   Úparœ   rx   ry   r|   r}   r~   )r.   r    rœ   r   r2   r0   r€   r�   s           r   Útest_pompa_adblue_separatez3TestCategorySynonymSplit.test_pompa_adblue_separatec   sÄ   € ÜÔ)¨.Ó9Ó:ˆÜÔ)¨,Ó7Ó8ˆØ�B‰wÐœ#›%Ðˆw˜%Ñ××Öˆw˜%×××××Ñˆr××Óˆr×××××Ò�B××Ó�B×××××Òœ#××Óœ#××Ô˜%××××××Ôr   c                 óø  — t        d«      }d}||v }|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}d}||v }|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}d	}||v}|s™t        j                  d
|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}y )NÚpomparˆ   rŠ   ÚprŒ   rŽ   r�   ÚpumpÚwasserpumper’   r”   r•   )r.   r¤   r–   r   r—   r˜   s         r   Útest_generic_pompa_fallbackz4TestCategorySynonymSplit.test_generic_pompa_fallbackh   s  € Ü$ WÓ-ˆØÐˆw˜!ˆ|××Õˆw˜!××Óˆw×××××Ð˜!××Ó˜!××××××ÓØÐˆv˜ˆ{××Õˆv˜××Óˆv×××××Ð˜××Ó˜××××××ÓØÐ%ˆ} AÐ%×%×%Õ%ˆ} A×%×%Ó%ˆ}×%×%×%×%×%Ð% A×%×%Ó% A×%×%×%×%×%×%Ô%r   c                 óÔ  — t        t        d«      «      }t        t        d«      «      }||z  }t        «       }||k(  }|�s#t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  |«      rt        j                  |«      nddt	        j
                  «       v st        j                  t         «      rt        j                  t         «      ndt        j                  |«      dœz  }d	d
|iz  }t        t        j                  |«      «      ‚d x}x}}y )Nzzawias drzwiÚdrzwir   ru   ÚzdÚdrx   ry   r|   r}   r~   )r.   rª   r«   r   r2   r0   r€   r�   s           r   Ú%test_zawias_drzwi_separate_from_drzwiz>TestCategorySynonymSplit.test_zawias_drzwi_separate_from_drzwin   sÃ   € ÜÔ)¨.Ó9Ó:ˆÜÔ(¨Ó1Ó2ˆØ�A‰vÐœ›Ðˆv˜‰××Öˆv˜×××××Ñˆr××Óˆr×××××Ò�A××Ó�A×××××Òœ××Óœ××Ô˜××××××Ôr   c                 ó®  — t        d«      }d}||v}|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d	x}}d
}||v}|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d	x}}y	)u<   'przedÅ‚uÅ¼enie drzwi' should NOT expand to zawias synonyms.u   przedÅ‚uÅ¼enie drzwiÚ	scharnierr’   r”   ÚsynsrŒ   rŽ   r�   Nz
door hinger•   )r.   r¯   r–   r   r—   r˜   s         r   Ú'test_przedluzenie_drzwi_no_match_zawiasz@TestCategorySynonymSplit.test_przedluzenie_drzwi_no_match_zawiass   s¿   € ä'Ð(>Ó?ˆØÐ&ˆ{ $Ð&×&×&Õ&ˆ{ $×&×&Ó&ˆ{×&×&×&×&×&Ð& $×&×&Ó& $×&×&×&×&×&×&Ó&ØÐ'ˆ| 4Ð'×'×'Õ'ˆ| 4×'×'Ó'ˆ|×'×'×'×'×'Ð' 4×'×'Ó' 4×'×'×'×'×'×'Ô'r   c                 ó®  — t        d«      }d}||v }|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}d}||v }|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}y )	Nzklocki hamulcowerˆ   rŠ   ÚkrŒ   rŽ   r�   z	brake padr•   )r.   r²   r–   r   r—   r˜   s         r   Útest_klocki_hamulcowe_unchangedz8TestCategorySynonymSplit.test_klocki_hamulcowe_unchangedy   sÂ   € Ü$Ð%7Ó8ˆØ!Ð&Ð! QÐ&×&×&Õ&Ð! Q×&×&Ó&Ð!×&×&×&×&×&Ð& Q×&×&Ó& Q×&×&×&×&×&×&Ó&ØÐˆ{˜aÐ××Õˆ{˜a××Óˆ{×××××Ð˜a××Ó˜a××××××Ôr   N)rF   rG   rH   r‚   r…   r™   rž   r¡   r§   r¬   r°   r³   rI   r   r   rr   rr   M   s/   „ ò"ò
 ò
%ò ò
 ò
&òò
(ó r   rr   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestDeduplicateOffersc                 ór  — t        ddg¬«      t        ddg¬«      g}t        |«      }t        |«      }d}||k(  }|söt        j                  d|fd||f«      d	t        j                  «       v st        j                  t        «      rt        j                  t        «      nd	d
t        j                  «       v st        j                  |«      rt        j                  |«      nd
t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}}y )NÚ1ÚAAA©r   Ú2ÚBBBé   r   ©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚresult©r   rz   r�   r{   r|   r}   ©r   r   r¾   r%   r&   r'   r(   r)   r*   r+   r,   ©r.   Úoffersr¿   r   r2   Ú@py_assert4r€   r�   s           r   Útest_no_duplicatesz(TestDeduplicateOffers.test_no_duplicates€   s´   € Ü˜ % Ô)¬6°#¸5¸'Ô+BÐCˆÜ# FÓ+ˆÜ�6‹{Ð˜aÐˆ{˜aÑ××Õˆ{˜a×××××ÑŒs××ÓŒs×××××Ò�6××Ó�6××Ôˆ{××Ò˜a××××××Ôr   c                 óº  — t        dddg¬«      t        dddg¬«      g}t        |«      }t        |«      }d}||k(  }|söt        j                  d|fd	||f«      d
t        j                  «       v st        j                  t        «      rt        j                  t        «      nd
dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}}|d   }|j                  }d}||k(  }|s€t        j                  d|fd||f«      t        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}x}}y )Nr·   Úallegror¸   r¹   rº   Úebayé   r   r½   r¾   r¿   rÀ   r|   r}   r   )z0%(py3)s
{%(py3)s = %(py1)s.offer_id
} == %(py6)s)rz   r�   r{   )r   r   r¾   r%   r&   r'   r(   r)   r*   r+   r,   r   )	r.   rÃ   r¿   r   r2   rÄ   r€   r�   r–   s	            r   Ú test_same_oe_different_platformsz6TestDeduplicateOffers.test_same_oe_different_platforms…   s$  € ä�3˜	 u gÔ.Ü�3˜ E 7Ô+ð
ˆô $ FÓ+ˆÜ�6‹{Ð˜aÐˆ{˜aÑ××Õˆ{˜a×××××ÑŒs××ÓŒs×××××Ò�6××Ó�6××Ôˆ{××Ò˜a××××××ÓØ�a‰yÐ(ˆy×!Ñ!Ð( SÐ(Ð! SÑ(×(×(Õ(Ð! S×(×(Ó(ˆy×(×(Ò(Ð!×(×(Ò( S×(×(×(×(×(×(Ö(r   c                 óv  — t        dddg¬«      t        dddg¬«      g}t        |«      }t        |«      }d}||k(  }|söt        j                  d|fd	||f«      d
t        j                  «       v st        j                  t        «      rt        j                  t        «      nd
dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}}y )Nr·   r¸   r»   r¹   rº   ÚCCCrÉ   r   r½   r¾   r¿   rÀ   r|   r}   rÁ   rÂ   s           r   Útest_overlapping_oe_setsz.TestDeduplicateOffers.test_overlapping_oe_setsŽ   s½   € ä�3˜E 5˜>Ô*Ü�3˜E 5˜>Ô*ð
ˆô $ FÓ+ˆÜ�6‹{Ð˜aÐˆ{˜aÑ××Õˆ{˜a×××××ÑŒs××ÓŒs×××××Ò�6××Ó�6××Ôˆ{××Ò˜a××××××Ôr   c                 óf  — t        d«      t        d«      g}t        |«      }t        |«      }d}||k(  }|söt        j                  d|fd||f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }d	d
|iz  }t        t        j                  |«      «      ‚d x}x}}y )Nr·   rº   r¼   r   r½   r¾   r¿   rÀ   r|   r}   rÁ   rÂ   s           r   Útest_offers_without_oez,TestDeduplicateOffers.test_offers_without_oe–   óª   € Ü˜“+œv c›{Ð+ˆÜ# FÓ+ˆÜ�6‹{Ð˜aÐˆ{˜aÑ××Õˆ{˜a×××××ÑŒs××ÓŒs×××××Ò�6××Ó�6××Ôˆ{××Ò˜a××××××Ôr   c                 óf  — t        d«      t        d«      g}t        |«      }t        |«      }d}||k(  }|söt        j                  d|fd||f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }dd	|iz  }t        t        j                  |«      «      ‚d x}x}}y )
Nr·   rÉ   r   r½   r¾   r¿   rÀ   r|   r}   rÁ   rÂ   s           r   Útest_duplicate_offer_id_no_oez3TestDeduplicateOffers.test_duplicate_offer_id_no_oe›   rÐ   r   N)rF   rG   rH   rÅ   rÊ   rÍ   rÏ   rÒ   rI   r   r   rµ   rµ      s   „ ò ò
)ò ò ó
 r   rµ   )rÇ   N)Ú__doc__Úbuiltinsr'   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter%   Ú#agent_samochodowy.matcher.normalizer   r   r   r   r   Úagent_samochodowy.modelsr	   ÚstrÚlistr   r   rK   rV   rr   rµ   rI   r   r   ú<module>rÜ      sz   ðÙ Mç  „ ÷ õ õ +ñ�ð ˜sð °D¸±IÀÑ4Dð ÐPUó ÷8ñ 8÷(4ñ 4÷1ñ 1÷4/ ñ / ÷d ò  r   