o
    .j                     @   sP  d Z ddlZddlmZmZmZmZ ddlmZ ddlZddl	m
Z
mZmZmZmZmZ dedefdd	Zd
d Zdd Zdd Zdd Zdd ZedddedddfedddedddfedddejdedddeddfedddeddedddeddfedddeddedddeddfeddddeddeddddeddfgZejd eZejd!eeeeeegZeed"d# Zd$d% Zd&d' ZeeeegZejd(eejd)eed*d+ Z d,d- Z!d.d/ eD Z"ejd e"ed0d1 Z#ejd2eeged3d4 Z$ejd2eeged5d6 Z%d7d8 Z&dS )9zfEvents differ although their times are equal.

See https://github.com/collective/icalendar/issues/828
    N)datedatetime	timedeltatimezone)ZoneInfo)EventJournalvDate	vDatetime	vDDDLists	vDDDTypesareturnc                 C   s   | S N r   r   r   S/home/thesage/.local/lib/python3.10/site-packages/icalendar/tests/test_issue_828.pyto_dt   s   r   c                 C   6   t  }| |_| tdd |_|d| tdd  |S )N   daysRECURRENCE-ID)r   startr   endadd)r   er   r   r   to_event   s
   r   c                 C   r   )zreturn a journal for testingr   r   r   )r   r   r   r   r   )r   jr   r   r   
to_journal   s
   r   c                 C   s   t | tr	t| S t| S )zReturn a value type.)
isinstancer   r
   r	   r   r   r   r   to_vDD$   s   
r!   c                 C   s   t | S r   )r   r   r   r   r   to_vDDDTypes+   s   r"   c                 C   s
   t | gS r   )r   r   r   r   r   to_vDDDLists/   s   
r#   i  
   r           )tzinfoUTCi  zGMT+0zEurope/Zurich   )d1d2	transformc                 C      || }||}t || dS )z Check that the values are equal.Nassert_equalr+   r,   r-   r   br   r   r    test_equality_of_equal_datetimesP      r3   c                 C   s   | |ksJ d|  d| || ksJ d| d|  | |kr*J d|  d| || kr8J d| d|  t | t |ksNJ dt |  dt | tt t| t|ks^J W d   dS 1 siw   Y  dS )	Check all equality tests.z	1 equal:  == z2 equal reversed: z3 not equal:  != z4 not equal reversed: z5 equal bool: N)bool
contextlibsuppress	TypeErrorhashr   r2   r   r   r   r0   Y   s   ,"r0   c                 C   st   | |ksJ d|  d| || ksJ d| d|  | |kr*J d|  d| || kr8J d| d|  dS )r5   z1 unequal: r6   z2 unequal reversed: z3 not unequal: r7   z4 not unequal reversed: Nr   r=   r   r   r   assert_not_eqd   s    r>   
transform1
transform2c                 C   s   || }||}t || dS )z8Check the equality of the date and date implementations.Nr/   )r+   r,   r?   r@   r   r2   r   r   r   )test_property_times_for_date_and_datetimeo   s   rA   c                  C   s*   t ddd} t| tt| gv sJ d S )Nr%   r&   r'   )r   strr   )dtr   r   r   'test_datetime_is_in_list_representationy   s   rD   c                 C   s    g | ]\}}||kr||fqS r   r   ).0r   r2   r   r   r   
<listcomp>~   s     rF   c                 C   r.   )zThe values are not equal.N)r>   r1   r   r   r   test_inequality   r4   rG   ddd_typec                 C   (   || } ||}d| j d< t| | dS )zKIf the items are equal but the parameters differ, they should not be equal.barfooN)paramsr>   r+   r,   rH   r   r   r   #test_not_equal_if_parameters_differ      
rN   c                 C   rI   )zVRFC 5545: Applications MUST ignore x-param and iana-param values they don't recognize.rJ   zx-fooN)rL   r0   rM   r   r   r   test_equal_ignoring_x_params   rO   rP   c                   C   sF   t t tttdddg W d   dS 1 sw   Y  dS )z)We cannot hash a list because it changes.r%   r&   r'   N)pytestraisesr;   r<   r   r   r   r   r   r   test_list_is_not_hashable   s   "rS   )'__doc__r9   r   r   r   r   zoneinfor   rQ   	icalendarr   r   r	   r
   r   r   r   r   r   r!   r"   r#   utcequal_dt_pairsmarkparametrizeparam_equal_dtsparam_transformr3   r0   r>   dtsrA   rD   unequal_pairsrG   rN   rP   rS   r   r   r   r   <module>   sj     	