σ
mάJ]c           @` sh   d  Z  d d l m Z m Z m Z m Z d d l Z e j e  Z	 d d l
 Z d Z d d d  Z d S(	   u.    Provide tools for executing Selenium tests.

i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsNu   cds_data_almost_equalgΦ&θ.>g        c   	      C` s  t  |  j    t  | j    k r( t Sxo|  j   D]a} |  | } | | } t |  t |  k rk t Sx(t | |  D]\ } } t | t t f  rΠ t | t t f  rΠ t j	 | | | |  st Sq{ t | t
 t j f  rt | t
 t j f  rt j |  t j |  } } | j j d k ri| j j d k rit j	 | | | |  j   rt Sq| | k j   rt Sq{ | | k r{ t Sq{ Wq5 Wt S(   um   Compares data dictionaries containing floats, lists and arrays
    Also supports nested lists and arrays
    u   iufcmM(   t   sortedt   keyst   Falset   lent   zipt
   isinstancet   floatt   intt   npt   iscloset   listt   ndarrayt   asarrayt   dtypet   kindt   anyt   True(	   t   data1t   data2t   rtolt   atolt   ct   cd1t   cd2t   v1t   v2(    (    s:   lib/python2.7/site-packages/bokeh/_testing/util/compare.pyt   cds_data_almost_equal*   s*    $

*0$(   u   cds_data_almost_equal(   t   __doc__t
   __future__R    R   R   R   t   loggingt	   getLoggert   __name__t   logt   numpyR   t   __all__R   (    (    (    s:   lib/python2.7/site-packages/bokeh/_testing/util/compare.pyt   <module>	   s   "		