+
    ¾¾j
  ã                  ó†   € R t ^ RIHt ^ RIt^ RIHt ^ RIHt  ! R R4      t ! R R4      t	 ! R	 R
4      t
 ! R R4      tR# )z/Tests for vCard N (Name) property per RFC 6350.)ÚannotationsN)ÚvN)ÚNFieldsc                  ó>   € ] tR t^tRtR tR tR tR tR t	R t
RtR	# )
ÚTestVNCreationz"Test vN creation and field access.c           	     ó^   € \        R4      pVP                  \        RRRRRR7      8X  g   Q hR# )	z Create N from tuple of 5 fields.ÚDoeÚJohnúM.úDr.úJr.)ÚfamilyÚgivenÚ
additionalÚprefixÚsuffixN©r   r	   r
   r   r   )r   Úfieldsr   ©ÚselfÚns   & Úe/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/tests/rfc_6350_vcard/test_vN.pyÚtest_n_creation_with_tupleÚ)TestVNCreation.test_n_creation_with_tuple   s9   € äÐ2Ó3ˆØ�x‰xœ7ØØØØØô
ô 
ð 	
ò 
ó    c                óZ   € \        . RO4      pVP                  P                  R8X  g   Q hR# )zCreate N from list of 5 fields.r   Nr   )r   r   r   r   s   & r   Útest_n_creation_with_listÚ(TestVNCreation.test_n_creation_with_list   s#   € äÒ2Ó3ˆØ�x‰x�‰ %Ô'Ð'Ò'r   c                ó�   € \        R4      pVP                  P                  R8X  g   Q hVP                  P                  R8X  g   Q hR# )z"Create N from vCard format string.úDoe;John;M.;Dr.;Jr.r   r	   N)r   r   r   r   r   s   & r   Útest_n_creation_with_stringÚ*TestVNCreation.test_n_creation_with_string   s9   € äÐ$Ó%ˆØ�x‰x�‰ %Ô'Ð'Ð'Ø�x‰x�~‰~ Ô'Ð'Ò'r   c                ó^   € \        RRRRR4      p\        V4      pVP                  VJ g   Q hR# )z"Create N from NFields named tuple.r   r	   r
   r   r   N)r   r   r   )r   r   r   s   &  r   Útest_n_creation_with_nfieldsÚ+TestVNCreation.test_n_creation_with_nfields$   s/   € ä˜ ¨¨e°UÓ;ˆÜˆv‹JˆØ�x‰x˜6Ó!Ð!Ò!r   c                óž   € \         P                  ! \        RR7      ;_uu_ 4        \        R4       RRR4       R#   + '       g   i     R# ; i)zN must have exactly 5 fields.zexactly 5 fields)ÚmatchN)ÚtooÚfew)ÚpytestÚraisesÚ
ValueErrorr   )r   s   &r   Útest_n_requires_5_fieldsÚ'TestVNCreation.test_n_requires_5_fields*   s,   € ä�]Š]œ:Ð-?×@Ö@Üˆ~Ô÷ A×@×@Ò@ús	   ¥;»A	c                ó>  € \        R4      pVP                  P                  R8X  g   Q hVP                  P                  R8X  g   Q hVP                  P                  R8X  g   Q hVP                  P
                  R8X  g   Q hVP                  P                  R8X  g   Q hR# )zAccess N fields by name.r   r	   ÚMichaelr   r   N)r   r	   r/   r   r   )r   r   r   r   r   r   r   r   s   & r   Útest_n_named_field_accessÚ(TestVNCreation.test_n_named_field_access/   s}   € äÐ7Ó8ˆØ�x‰x�‰ %Ô'Ð'Ð'Ø�x‰x�~‰~ Ô'Ð'Ð'Ø�x‰x×"Ñ" iÔ/Ð/Ð/Ø�x‰x�‰ %Ô'Ð'Ð'Ø�x‰x�‰ %Ô'Ð'Ò'r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r    r#   r,   r0   Ú__static_attributes__r2   r   r   r   r      s#   † Ù,ò	
ò(ò
(ò"òö
(r   r   c                  ó,   € ] tR t^9tRtR tR tR tRtR# )ÚTestVNSerializationzTest vN to_ical and from_ical.c                óN   € \        R4      pVP                  4       pVR8X  g   Q hR# )z/N to_ical generates semicolon-separated format.s   Doe;John;M.;Dr.;Jr.Nr   )r   Úto_ical)r   r   Úresults   &  r   Útest_n_to_icalÚ"TestVNSerialization.test_n_to_ical<   s'   € äÐ2Ó3ˆØ—‘“ˆØÐ/Ô/Ð/Ò/r   c                óŽ   € \         P                  ! R4      p\        V\        4      '       g   Q hV\        RRRRR4      8X  g   Q hR# )zParse N from vCard format.r   r   r	   r
   r   r   N)r   Ú	from_icalÚ
isinstancer   )r   r=   s   & r   Útest_n_from_icalÚ$TestVNSerialization.test_n_from_icalB   s?   € ä—’Ð3Ó4ˆÜ˜&¤'×*Ò*Ð*Ð*Øœ ¨°°e¸UÓCÔCÐCÒCr   c                ó–   € \        RRRRR4      p\        V4      pVP                  4       p\        P                  ! V4      pWA8X  g   Q hR# )z4N survives round-trip through to_ical and from_ical.r   r	   r/   r   r   N)r   r   r<   rA   )r   Úoriginalr   ÚicalÚparseds   &    r   Útest_n_round_tripÚ%TestVNSerialization.test_n_round_tripH   sB   € ä˜5 &¨)°U¸EÓBˆÜˆx‹LˆØ�y‰y‹{ˆÜ—’˜dÓ#ˆØÔ!Ð!Ò!r   r2   N)	r3   r4   r5   r6   r7   r>   rC   rI   r8   r2   r   r   r:   r:   9   s   † Ù(ò0òDö"r   r:   c                  ó,   € ] tR t^QtRtR tR tR tRtR# )ÚTestVNEscapingzTest vN escaping behavior.c                ó~   € \        R4      pVP                  4       pRV9  g   Q hVP                  R4      ^8X  g   Q hR# )z2Semicolons in N are field separators, not escaped.s   \;ó   ;Nr   )r   r<   Úcount)r   r   rG   s   &  r   Ú+test_n_semicolons_not_escaped_as_separatorsÚ:TestVNEscaping.test_n_semicolons_not_escaped_as_separatorsT   s=   € äÐ2Ó3ˆØ�y‰y‹{ˆØ˜TÔ!Ð!Ð!Ø�z‰z˜$Ó 1Ô$Ð$Ò$r   c                óÚ   € \        R4      pVP                  4       p\         P                  ! V4      pVP                  R8X  g   Q hVP                  R8X  g   Q hVP
                  R8X  g   Q hR# )z Empty fields are preserved in N.Ú N)r   r	   rS   rS   rS   )r   r<   rA   r   r   r   ©r   r   rG   rH   s   &   r   Útest_n_empty_fields_preservedÚ,TestVNEscaping.test_n_empty_fields_preserved[   s^   € äÐ*Ó+ˆØ�y‰y‹{ˆÜ—’˜dÓ#ˆØ× Ñ  BÔ&Ð&Ð&Ø�}‰} Ô"Ð"Ð"Ø�}‰} Ô"Ð"Ò"r   c                ó    € \        R4      pVP                  4       pRV9   g   Q h\         P                  ! V4      pVP                  R8X  g   Q hR# )z0Commas within N fields ARE escaped per RFC 6350.úJr.,M.D.,A.C.P.s   \,N)r   r	   r
   r   rX   )r   r<   rA   r   rT   s   &   r   Útest_n_commas_in_suffix_escapedÚ.TestVNEscaping.test_n_commas_in_suffix_escapedd   sE   € äÐ>Ó?ˆØ�y‰y‹{ˆØ˜Œ~Ðˆ~ä—’˜dÓ#ˆØ�}‰}Ð 1Ô1Ð1Ò1r   r2   N)	r3   r4   r5   r6   r7   rP   rU   rY   r8   r2   r   r   rL   rL   Q   s   † Ù$ò%ò#ö2r   rL   c                  ó    € ] tR t^ntRtR tRtR# )ÚTestVNIcalValuezTest vN ical_value property.c                óš   € \        R4      pVP                  VP                  8X  g   Q h\        VP                  \        4      '       g   Q hR# )z(ical_value property returns the NFields.Nr   )r   Ú
ical_valuer   rB   r   r   s   & r   Útest_ical_value_returns_fieldsÚ.TestVNIcalValue.test_ical_value_returns_fieldsq   s:   € äÐ2Ó3ˆØ�|‰|˜qŸx™xÔ'Ð'Ð'Ü˜!Ÿ,™,¬×0Ò0Ð0Ò0r   r2   N)r3   r4   r5   r6   r7   r_   r8   r2   r   r   r\   r\   n   s
   † Ù&ö1r   r\   )r7   Ú
__future__r   r)   Úicalendar.propr   Úicalendar.prop.nr   r   r:   rL   r\   r2   r   r   Ú<module>rd      s=   ðÙ 5å "ã å Ý $÷+(ñ +(÷\"ñ "÷02ñ 2÷:1ó 1r   