o
    Ae&                     @   s.  d dl Z d dlZd dlZd dlmZmZmZmZm	Z	 dZ
e e
je eje eje ejde jZe e
je eje eje ejde jZdQddZejddd	d
ieddddfdd	dieddddfgdd Zejddi eddddfdi eddddfgdd Zejdeddeddd fi ed!d"d#dfed$dd%ed$dd%d fi ed&d'dd(feddedd)d fi ed*d+d dfd,i edd-ddfeddeddd fi ed!d"d#dfed$dd%ed$dd%d fi ed&d'dd(fed$dd%ed$d.d%d fi ed/d0d d1fed$d2d%ed$d)d%d fd3d4ied5d6d7fed$d2d%ed$d)d%d fd3d8ied9d:dd;fg	d<d= Zejjd>eefeefgd?d@gdAejdBdCd4g dDfdCdEg dFfdCdGg dDfdCdHg dIfdCdJg dKfdCdg dLfdCdMg dNfgdOdP ZdS )R    N)FormatterDMSFormatterHMSselect_stepselect_step24select_step360a'  \$  # Mathtext
        (
            # The sign sometimes appears on a 0 when a fraction is shown.
            # Check later that there's only one.
            (?P<degree_sign>-)?
            (?P<degree>[0-9.]+)  # Degrees value
            {degree}  # Degree symbol (to be replaced by format.)
        )?
        (
            (?(degree)\\,)  # Separator if degrees are also visible.
            (?P<minute_sign>-)?
            (?P<minute>[0-9.]+)  # Minutes value
            {minute}  # Minute symbol (to be replaced by format.)
        )?
        (
            (?(minute)\\,)  # Separator if minutes are also visible.
            (?P<second_sign>-)?
            (?P<second>[0-9.]+)  # Seconds value
            {second}  # Second symbol (to be replaced by format.)
        )?
        \$  # Mathtext
    degreeminutesecondc                 C   s   | |d  |d  S )N      N@      @ )degreesminutessecondsr   r   p/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/mpl_toolkits/axisartist/tests/test_angle_helper.py	dms2float,   s   r   z.args, kwargs, expected_levels, expected_factor)L   
   hourFr         g      ?)   r   Tr         c                 C   B   t | i |\}}}|t|ksJ tj|| ||ksJ d S N)r   lennptestingassert_array_equalargskwargsZexpected_levelsZexpected_factorZlevelsnfactorr   r   r   test_select_step0      r(   ii     r   c                 C   r   r   )r   r   r    r!   r"   r#   r   r   r   test_select_step24<   r)   r+      3333335@   fffff@@   i  i     g     4@)r   i\  ik  r   gfffffJ@i  i  )r-   r/   r0   #   gffffff5@hp i}p g     Agffffff&@Zthreshold_factor<   0  i0  g     @   iP  i%P  g     @@c                 C   r   r   )r   r   r    r!   r"   r#   r   r   r   test_select_step360H   s   r7   zFormatter, regexzDegree/Minute/SecondzHour/Minute/Second)Zidszdirection, factor, valuesleft)r   iiiX  )r5   i0  i0  i  i  )iC iC iC i@~ )r3   imp irp )-   .   /   g      $@)i  i  i  c                    s.  |  }||||}d  } }}	t ||D ]\}
}||
  d us(J |
dt fdddD }|dks?J d|
d|dkrEdnd	}t d
pP|pPd}t dp[|p[d}t dpf|	pfd}| tkrvt|d | }nt|| }|t||| |ksJ |
d|}|}|}	qd S )Nz  is not an expected tick format.c                 3   s"    | ]}  |d  duV  qdS )Z_signN)group).0signmr   r   	<genexpr>{   s    z"test_formatters.<locals>.<genexpr>r   r6   zOnly one element of tick z may have a sign.r   r   r	   r
   r1   z$ does not match expected tick value.)	zipmatchsumfloatr<   r   pytestZapproxr   )	Formatterregex	directionr'   valuesfmtresultZprev_degreeZprev_minuteZprev_secondZtickvaluer>   r   r	   r
   Zexpected_valuer   r?   r   test_formatterse   s0   
rO   )r   r   )renumpyr    rG   Z$mpl_toolkits.axisartist.angle_helperr   r   r   r   r   Z_MS_REcompileformatescapeZdeg_markZmin_markZsec_markVERBOSEZDMS_REZHMS_REr   markZparametrizeZaranger(   r+   r7   rO   r   r   r   r   <module>   s    







	