+
    ¾¾j;  ã                   ó  € R t ^ RIHt ^ RIt^ RIHtHtHt ^ RIH	t	 ^ RI
Ht  ! R R]4      t]P                  P                  R. RO4      R	 4       t]P                  P                  RRR.4      R
 4       t]P                  P                  RRR]! 4       .4      R 4       t]P                  P                  RRR.4      R 4       tR tR tR tR t]P                  P                  R. RO4      R 4       tR tR tR tR tR# ) zwTests for validating integer properties with a minimum value.

See https://github.com/collective/icalendar/issues/1594
)Ú	timedeltaN)ÚAlarmÚEventÚInvalidCalendar)Úsingle_int_property)Ú	Componentc                   ó6   € ] tR t^tRtRt]! R^ R^R7      tRtR# )ÚNumberComponentz>A component with a single integer property that has a minimum.zX-NUMBERÚNUMBERzA number©Ú	min_value© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Únamer   ÚnumberÚ__static_attributes__r   ó    Úc/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/tests/attr/test_issue_1594.pyr	   r	      s   † ÙHà€DÙ  ¨1¨jÀAÔF„Fr   r	   Úvaluec                óL   € \        4       pWn        VP                  V 8X  g   Q hR# )z#Setting a non-negative value works.N©r   ÚREPEAT©r   Úalarms   & r   Útest_set_non_negative_valuer      s"   € ô ‹G€EØ„LØ�<‰<˜5Ô Ð Ò r   c                ó¨   € \        4       p\        P                  ! \        VR7      ;_uu_ 4        Wn        RRR4       R#   + '       g   i     R# ; i)zBSetting a negative value raises an error with the correct message.©ÚmatchN)r   ÚpytestÚraisesr   r   )r   Úmessager   s   && r   Útest_set_negative_value_raisesr%      s0   € ô ‹G€EÜ	�Š”¨g×	6Ö	6ØŒ÷ 
7×	6×	6Ò	6úó   ¯A Á A	Úasdg      ø?c                ó¨   € \        4       p\        P                  ! \        RR7      ;_uu_ 4        Wn        RRR4       R#   + '       g   i     R# ; i)z/Setting a non-integer value raises a TypeError.úREPEAT must be an int, gotr    N©r   r"   r#   Ú	TypeErrorr   r   s   & r   Útest_set_non_integer_raisesr,   ,   ó2   € ô ‹G€EÜ	�Š”yÐ(D×	EÖ	EØŒ÷ 
F×	E×	EÒ	Eúr&   TFc                ó¨   € \        4       p\        P                  ! \        RR7      ;_uu_ 4        Wn        RRR4       R#   + '       g   i     R# ; i)zABooleans are rejected too, even though bool is a subclass of int.r)   r    Nr*   r   s   & r   Útest_set_bool_raisesr/   4   r-   r&   c                 óª   € \        4       p \        P                  ! \        RR7      ;_uu_ 4        RV n        RRR4       R#   + '       g   i     R# ; i)z:The same TypeError is raised for other integer properties.zSEQUENCE must be an int, gotr    Ú1N)r   r"   r#   r+   Úsequence©Úevents    r   Ú(test_set_non_integer_raises_for_sequencer5   <   s2   € ä‹G€EÜ	�Š”yÐ(F×	GÖ	GØˆŒ÷ 
H×	G×	GÒ	Gúó   ¯AÁA	c                 ó\   € \        4       p ^V n        RV n        V P                  ^ 8X  g   Q hR# )z/Setting None deletes the property, like before.Nr   ©r   s    r   Útest_set_none_deletesr9   C   s)   € ä‹G€EØ€E„LØ€E„LØ�<‰<˜1ÔÐÒr   c                 óN   € \        4       p ^V n        V P                  ^8X  g   Q hR# )zExactly min_value is accepted.N)r	   r   ©Ú	components    r   Útest_custom_min_value_boundaryr=   K   s&   € äÓ!€IØ€IÔØ×Ñ˜qÔ Ð Ò r   c                 óª   € \        4       p \        P                  ! \        RR7      ;_uu_ 4        ^V n        RRR4       R#   + '       g   i     R# ; i)z4One below min_value raises with the correct message.zNUMBER must be >= 5, got 4r    N)r	   r"   r#   r   r   r;   s    r   Ú+test_custom_min_value_below_boundary_raisesr?   R   s4   € äÓ!€IÜ	�Š”Ð.J×	KÖ	KØˆ	Ô÷ 
L×	K×	KÒ	Kúr6   r   c                ó0  € \        R^ RV R7      p\        R\        3RRRV/4      ! 4       pWn        VP                  V 8X  g   Q h\        P
                  ! \        RV  2R	7      ;_uu_ 4        V ^,
          Vn        R
R
R
4       R
#   + '       g   i     R
# ; i)z8Different minimal values are enforced at their boundary.ÚVALUEzA valuer   ÚCr   zX-VALUEr   zVALUE must be >= r    N)r   Útyper   r   r"   r#   r   )r   Úpropr<   s   &  r   Útest_different_min_valuesrE   Y   s{   € ô ˜w¨¨9À	ÔJ€DÜ�Sœ9˜,¨°¸GÀTÐ(JÔKÓM€IØ„OØ�?‰?˜iÔ'Ð'Ð'Ü	�Š”Ð0AÀ)ÀÐ.M×	NÖ	NØ# a�-ˆ	Œ÷ 
O×	N×	NÒ	Nús   Á+BÂB	c                 óÞ   € \        4       p ^V n        V P                  ^8X  g   Q h\        P                  ! \        RR7      ;_uu_ 4        RV n        RRR4       R#   + '       g   i     R# ; i)z-The lowercase repeat attribute validates too.úREPEAT must be >= 0r    Néÿÿÿÿ)r   Úrepeatr"   r#   r   r8   s    r   Ú test_lowercase_repeat_validationrJ   d   sK   € ä‹G€EØ€E„LØ�<‰<˜1ÔÐÐÜ	�Š”Ð.C×	DÖ	DØˆŒ÷ 
E×	D×	DÒ	Dúó   Á	AÁA,	c                 óÞ   € \        4       p ^V n        V P                  ^8X  g   Q h\        P                  ! \        RR7      ;_uu_ 4        RV n        RRR4       R#   + '       g   i     R# ; i)z%The sequence attribute validates too.zSEQUENCE must be >= 0r    NrH   )r   r2   r"   r#   r   r3   s    r   Útest_sequence_validationrM   m   óK   € ä‹G€EØ€E„NØ�>‰>˜QÔÐÐÜ	�Š”Ð.E×	FÖ	FØˆŒ÷ 
G×	F×	FÒ	FúrK   c                 óÞ   € \        4       p ^V n        V P                  ^8X  g   Q h\        P                  ! \        RR7      ;_uu_ 4        RV n        RRR4       R#   + '       g   i     R# ; i)z%The priority attribute validates too.zPRIORITY must be >= 0r    NrH   )r   Úpriorityr"   r#   r   r3   s    r   Útest_priority_validationrQ   v   rN   rK   c            
     óä   € \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! R\        RR7      \        ^R7      RR7       RRR4       R#   + '       g   i     R# ; i)	z)Factory methods reject a negative repeat.rG   r    Údesc)Úminutes)ÚdurationrI   NéûÿÿÿrH   )r"   r#   r   r   Únew_displayr   r   r   r   Ú+test_factory_methods_reject_negative_repeatrX      sH   € ä	�Š”Ð.C×	DÖ	DÜ×ÒØÜ˜bÔ!Ü qÔ)Øõ		
÷ 
E×	D×	DÒ	Dús   ¥/AÁA/	)é    é   é
   )r   r$   )rH   zREPEAT must be >= 0, got -1)iöÿÿÿzREPEAT must be >= 0, got -10)rY   é   r[   )r   Údatetimer   r"   Ú	icalendarr   r   r   Úicalendar.attrr   Úicalendar.cal.componentr   r	   ÚmarkÚparametrizer   r%   Úobjectr,   r/   r5   r9   r=   r?   rE   rJ   rM   rQ   rX   r   r   r   Ú<module>rd      s&  ðñõ
 ã ç 3Ñ 3Ý .Ý -ôG�iô Gð ‡�×Ñ˜¢*Ó-ñ!ó .ð!ð ‡�×ÑØà+Ø-ðóñóðð ‡�×Ñ˜ 5¨#©v«xÐ"8Ó9ñó :ðð ‡�×Ñ˜ 4¨ -Ó0ñó 1ðòòò!òð ‡�×Ñ˜¢jÓ1ñ(ó 2ð(òòòô
r   