a
    —ÆàgÈ  ã                   @   s   d dl T dd„ ZdS )é   )Ú*c           #         sÆ  |d u rt tt| jƒƒƒ}| j| }ˆj||  }| j}‡fdd„|D ƒ}|d ‰ ‡ fdd„|D ƒ}	tt|	ƒdd„ d�\}
}|	d }||
 d }||
 d	 }||| k �ržtˆj| ƒ}d
}|�sž||ksØ||| k�ržg }|| || fD ]þ}|d }|d	 }|d
 d }|d d }|d }|�r6|t|d ƒ }|| }|| }|| | }|| d d	 ||  d }|| d | }|| d | }|dk�r¦t	|| |ƒn||k �r¸t
d nd}tƒ ‰ˆ |¡‰ˆ t|ƒt|ƒ¡‰| ˆ¡ qì|d ‰‡fdd„ˆ d D ƒfˆ dd …  ‰|d ‰g }|D ]4} ‡fdd„| d D ƒf| dd …  }!| |!¡ �q(‡fdd„|D ƒ}	tt|	ƒdd„ d�\}
}|	d }||| k �rž|�r¬|| nd}"t d|"¡ |"||fS )Nc                    s   g | ]}ˆ j | ‘qS © )ÚgreenVectors)Ú.0Úi)Úglyph1r   úi/var/www/sistema_ama/venv/lib/python3.9/site-packages/fontTools/varLib/interpolatableTestStartingPoint.pyÚ
<listcomp>
   ó    z'test_starting_point.<locals>.<listcomp>é    c                    s   g | ]}t ˆ d  |d  ƒ‘qS ©r   ©Zvdiff_hypot2_complex)r   Úc1)Úc0r   r   r	      r
   c                 S   s   | d S ©Nr   r   ©Úxr   r   r   Ú<lambda>   r
   z%test_starting_point.<locals>.<lambda>)Úkeyr   é   é   g      à?é   é   c                    s"   g | ]}t ˆ  |j|jf¡Ž ‘qS r   ©ÚcomplexZtransformPointÚrealÚimag©r   Úpt©Útransr   r   r	   L   r
   c                    s"   g | ]}t ˆ  |j|jf¡Ž ‘qS r   r   r   r   r   r   r	   R   s   ÿc                    s   g | ]}t ˆ d  |d  ƒ‘qS r   r   )r   Únew_c1)Únew_c0r   r   r	   Z   s   c                 S   s   | d S r   r   r   r   r   r   r   ]   r
   z!test-starting-point: tolerance %g)ÚlistÚrangeÚlenZisomorphismsr   ÚminÚ	enumerateZpointsÚabsÚatan2ÚpiZ	TransformÚrotateZscaleÚsqrtÚappendÚlogÚdebug)#Zglyph0r   ÚixZ	toleranceZmatchingZcontour0Zcontour1Z	m0VectorsZ	m1VectorsZcostsZmin_cost_idxZmin_costZ
first_costZproposed_pointÚreverseZ
num_pointsZleewayZ
transformsZvectorZmeanXZmeanYZstddevXZstddevYZcorrelationÚaÚcÚbÚdeltaZlambda1Zlambda2ÚthetaZnew_contour1r   r!   Zthis_tolerancer   )r   r   r"   r    r   Útest_starting_point   s†    
ÿ
ÿ.
ÿ
þ
þÿ
û
ÿþr7   N)ZinterpolatableHelpersr7   r   r   r   r   Ú<module>   s   