σ
mάJ]c           @` s’   d  d l  m Z m Z m Z m Z d  d l Z e d  d l m Z d  d l m	 Z	 d  d l m
 Z
 e j d  Z d   Z d   Z d	   Z d
   Z d   Z d S(   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   dedent(   t   Slider(   t   CustomJSTransformu   pscriptc          C` s   d   }  d   } t  j |  |  } t j |  d  } | j j | d  } | d k s] t  t j | d  } | j j | d  } | d k s t  d  S(   Nc          S` s    d d l  m }  |  j j t  S(   Ni    (   t   window(   t   pscriptR   t   Matht   cost   x(   R   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt   cosine*   s    c          S` s3   d d l  m }  g  t D] } |  j j |  ^ q S(   Ni    (   R   (   R   R   t   xsR	   R
   (   R   R   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt   v_cosine.   s    u   transformeru    u   return transformer();
(   R   t   from_py_funcR   t   py2jst   funct   replacet   AssertionErrort   v_func(   R   R   t	   transformt   js_codet   function_wrappert	   v_js_codet   v_function_wrapper(    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt+   test_customjstransform_from_py_func_no_args(   s    		c          C` sΒ   t    }  |  d  } |  d  } t j | |  } | j d |  k sL t  t j | d  } | j j | d  } | d k s t  t j | d  } | j	 j | d  } | d k sΎ t  d  S(   Nc         S` s    d d l  m } | j j t  S(   Ni    (   R   (   R   R   R	   R
   R   (   t   fooR   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyR   @   s    c         S` s3   d d l  m } g  t D] } | j j |  ^ q S(   Ni    (   R   (   R   R   R   R	   R
   (   R   R   R   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyR   D   s    u   foou   transformeru    u   return transformer(foo);
(
   R   R   R   t   argsR   R   R   R   R   R   (   t   sliderR   R   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt-   test_customjstransform_from_py_func_with_args<   s    	c       	   C` s    d   }  d   } t  j t   t j | |   Wd  QXd d  } t  j t   t j | |   Wd  QXd d  } t  j t   t j | |   Wd  QXd  S(   Nc           S` s   d  S(   N(    (    (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyR   U   s    c         S` s   d  S(   N(   t   None(   R   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt   has_positional_argX   s    i   c         S` s   d  S(   N(   R   (   t   yR   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt   has_positional_arg_with_kwargs]   s    i
   c         S` s   d  S(   N(   R   (   R   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt   has_non_Model_keyword_argumentb   s    (   t   pytestt   raisest
   ValueErrorR   R   (   R   R    R"   R#   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt)   test_customjstransform_bad_pyfunc_formatsT   s    		c          C` sm   d }  d } t  j |  |  } | j t d  k s9 t  | j t d  k sT t  | j i  k si t  d  S(   Nu   return x * xu   return [x * x for x in xs]u           return x * x;
        uY          var x;
        return [
            (function () {
                var i, len, results;
                results = [];
                for (i = 0, len = xs.length; i < len; i++) {
                    x = xs[i];
                    results.push(x * x);
                }
                return results;
            })()
        ];
        (   R   t   from_coffeescriptR   R   R   R   R   (   t   codet   v_codeR   (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt/   test_customjstransform_from_coffeescript_no_argg   s    		c       	   C` s   d }  d } t    } t j d |  d | d i | d 6 } | j t d  k sU t  | j t d  k sp t  | j i | d 6k s t  d  S(	   Nu    return foo.get('value') // 2 + xu.   return [foo.get('value') // 2 + x for x in xs]R   R   R   u   foou=           return Math.floor(foo.get('value') / 2) + x;
        ux          var x;
        return [
            (function () {
                var i, len, results;
                results = [];
                for (i = 0, len = xs.length; i < len; i++) {
                    x = xs[i];
                    results.push(Math.floor(foo.get('value') / 2) + x);
                }
                return results;
            })()
        ];
        (   R   R   R(   R   R   R   R   R   (   R)   R*   R   t	   formatter(    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt2   test_customjstransform_from_coffeescript_with_args   s    	%		(   t
   __future__R    R   R   R   R$   t   textwrapR   t   bokeh.modelsR   R   t   importorskipR   R   R   R'   R+   R-   (    (    (    sA   lib/python2.7/site-packages/bokeh/models/tests/test_transforms.pyt   <module>   s   " 					