U
    Q»{jÈ  ã                   @   s   d dl T dd„ ZdS )é   )Ú*c           #         sÆ  |d k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   úo/var/www/html/bwave/python/venv/lib/python3.8/site-packages/fontTools/varLib/interpolatableTestStartingPoint.pyÚ
<listcomp>
   s     z'test_starting_point.<locals>.<listcomp>é    c                    s   g | ]}t ˆ d  |d  ƒ‘qS ©r
   ©Zvdiff_hypot2_complex)r   Úc1)Úc0r   r   r	      s     c                 S   s   | d S ©Nr   r   ©Úxr   r   r   Ú<lambda>   ó    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   s     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ÚrotateÚscaleÚsqrtÚappendÚlogÚdebug)#Zglyph0r   Z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   