ó
—W[c           @   sÞ   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l j Z d  d l	 j
 Z d  d l j Z d d l m Z m Z m Z d d l m Z d d l m Z m Z d  d l m Z e e j ƒ d k Z d e f d	 „  ƒ  YZ d S(
   iÿÿÿÿNi   (   t   palettest   utilst   rcmod(   t   husl(   t   xkcd_rgbt   crayons(   t   LooseVersions   1.5.0t   TestColorPalettesc           B   sL  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d  „  Z" d! „  Z# d" „  Z$ d# „  Z% RS($   c         C   sK   t  j d d d g ƒ } t j | ƒ | t j ƒ  k s= t ‚ t j ƒ  d  S(   Nt   redt   bluet   green(   R    t   color_paletteR   t   set_paletteR   t   get_color_cyclet   AssertionErrort   set(   t   selft   pal(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_current_palette   s    c         C   sa   t  j ƒ  } t  j d ƒ } t  j | ƒ  t j t j ƒ  | ƒ Wd  QXt j t j ƒ  | ƒ d  S(   Nt   muted(   R    R   t   ntt   assert_equalR   R   (   R   t   default_palt   context_pal(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_palette_context   s
    c         C   s‡   t  j d d d ƒ} t  j d d ƒ } t j | ƒ t  j | d ƒ  t j t j ƒ  | ƒ Wd  QXt j t j ƒ  | ƒ t j ƒ  d  S(   Nt   deept   n_colorsi   R   i
   (	   R    R   R   R   R   R   R   R   R   (   R   t   original_palR   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_big_palette_context%   s    c         C   sÜ   t  j d ƒ } t | ƒ t  j d k s. t ‚ t  j d ƒ } t | ƒ t  j d k s\ t ‚ t  j d ƒ } t | ƒ t  j d k sŠ t ‚ t  j d ƒ } t | ƒ d k s± t ‚ t  j d ƒ } t | ƒ d k sØ t ‚ d  S(   NR   t   pastel6t   Set3R   i   t   Greens(   R    R   t   lent   QUAL_PALETTE_SIZESR   (   R   R   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_palette_size3   s    c         C   s   d
 } x | D]ˆ } t  j | d ƒ j ƒ  } t  j | d d	 ƒ j ƒ  } | \
 } } } } }	 } } } }
 } | | | |	 |
 | g t | ƒ k s t ‚ q Wd  S(   NR   R   t   pastelt   brightt   darkt
   colorblindi
   t   6i   (   R   R   R#   R$   R%   R&   (   R    R   t   as_hext   listR   (   R   t   palst   namet   fullt   shortt   bt   _t   gt   rt   mt   yt   c(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_seaborn_palettesD   s    $c         C   s/   t  j ƒ  } t  j d ƒ } t j | | ƒ d  S(   Nt   hls(   R    t   hls_paletteR   t   nptt   assert_array_equal(   R   t   hls_pal1t   hls_pal2(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_hls_paletteM   s    c         C   s/   t  j ƒ  } t  j d ƒ } t j | | ƒ d  S(   NR   (   R    t   husl_paletteR   R8   R9   (   R   t	   husl_pal1t	   husl_pal2(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_husl_paletteS   s    c         C   s2   t  j d ƒ } t  j d ƒ } t j | | ƒ d  S(   Nt   Reds(   R    t   mpl_paletteR   R8   R9   (   R   t   mpl_pal1t   mpl_pal2(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_mpl_paletteY   s    c         C   s2   t  j d ƒ } t  j d ƒ } t j | | ƒ d  S(   Nt   Blues_d(   R    RB   R   R8   R9   (   R   RC   RD   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_mpl_dark_palette_   s    c         C   s'   t  j t ƒ  t j d ƒ Wd  QXd  S(   Nt   IAmNotAPalette(   R   t   assert_raisest
   ValueErrorR    R   (   R   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_bad_palette_namee   s    c         C   s'   t  j t ƒ  t j d ƒ Wd  QXd  S(   Nt   jet(   R   RI   RJ   R    R   (   R   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_terrible_palette_namej   s    c         C   s6   d d d g } t  j t ƒ  t j | ƒ Wd  QXd  S(   NR   R	   t   iamnotacolor(   R   RI   RJ   R    R   (   R   R   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_bad_palette_colorso   s    c         C   s]   t  j d ƒ } g  | D] } t j | d ƒ ^ q } t  j d d d ƒ} t j | | ƒ d  S(   Ni   g      à?R   t   desat(   R    R=   R   t
   desaturateR   R8   R9   (   R   t   pal1R4   t   pal2(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_palette_desatu   s    %c         C   s„   t  j d d d g ƒ } t j | d ƒ } t j | t ƒ t j | d t ƒ t j | d d t ƒ t j	 t
 | d ƒ d ƒ d  S(   NR   R	   R
   i   i    (   t   npt   arrayR    R   R   t   assert_is_instanceR)   t   tuplet   floatR   R    (   R   t   pal_int   pal_out(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_palette_is_list_of_tuples|   s    c         C   s9   t  j d ƒ } t  j d d ƒ } t j | | | ƒ d  S(   Nt   deep6i   (   R    R   R   R   (   R   R   t   double_deep(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_palette_cycles†   s    c         C   s  t  j d d d ƒ} t  j d d d ƒ} | d | d  } t j | | ƒ t  j d d d ƒ} t  j d d d	 ƒ} t j t t t | ƒ ƒ t t t | ƒ ƒ ƒ t  j d d
 d ƒ} t  j d d
 d ƒ} t j t t t j	 | ƒ ƒ t t t j	 | ƒ ƒ ƒ d  S(   Ni   t   hi    g      à?i   i   t   lgš™™™™™É?gš™™™™™é?t   sgš™™™™™¹?gÍÌÌÌÌÌì?(
   R    R7   R8   t   assert_array_almost_equalt   assert_array_lessR)   t   mapt   sumRU   t   std(   R   RR   RS   t   pal_darkt
   pal_brightt   pal_flatt   pal_bold(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_hls_valuesŒ   s    c         C   s  t  j d d d ƒ} t  j d d d ƒ} | d | d  } t j | | ƒ t  j d d d ƒ} t  j d d d	 ƒ} t j t t t | ƒ ƒ t t t | ƒ ƒ ƒ t  j d d
 d ƒ} t  j d d
 d ƒ} t j t t t j	 | ƒ ƒ t t t j	 | ƒ ƒ ƒ d  S(   Ni   R`   i    g      à?i   i   Ra   gš™™™™™É?gš™™™™™é?Rb   gš™™™™™¹?gÍÌÌÌÌÌì?(
   R    R=   R8   Rc   Rd   R)   Re   Rf   RU   Rg   (   R   RR   RS   Rh   Ri   Rj   Rk   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_husl_values   s    c         C   st   t  j d d ƒ } t  j d d ƒ } t j | | d  ƒ t  j d d ƒ } t  j d d ƒ } t j | | d  ƒ d  S(   Nt   Set1i   i   t   Set2i   i
   (   R    RB   R   R   (   R   t	   pal_shortt   pal_longt   pal_full(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_cbrewer_qual®   s    c         C   sE   t  j d d ƒ } t  j d d ƒ } t j | | d  d  d … ƒ d  S(   Nt   BuPui   t   BuPu_riÿÿÿÿ(   R    RB   R8   Rc   (   R   t   pal_forwardt   pal_reverse(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_mpl_reversal¸   s    c         C   s;   d } t  j | d ƒ } t j | Œ  } t j | | ƒ d  S(   Ng      à?gš™™™™™é?gš™™™™™Ù?R6   (   g      à?gš™™™™™é?gš™™™™™Ù?(   R    t   _color_to_rgbt   colorsyst
   hls_to_rgbR   R   (   R   t   colort   rgb_gott   rgb_want(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_rgb_from_hls¾   s    c         C   s;   d } t  j | d ƒ } t j | Œ  } t j | | ƒ d  S(   Nix   i2   i(   R   (   ix   i2   i(   (   R    Ry   R   t   husl_to_rgbR   R   (   R   R|   R}   R~   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_rgb_from_huslÅ   s    c         C   s6   d } t  j | d ƒ } t | } t j | | ƒ d  S(   Ns   dull redt   xkcd(   R    Ry   R   R   R   (   R   R|   R}   R~   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_rgb_from_xkcdÌ   s    
c         C   s¥   t  j d ƒ } t  j d d t ƒ} t j | | d  d  d … ƒ t t j j j	 d ƒ ƒ } t
 j t | d ƒ | ƒ t  j d d t ƒ} t
 j | t j j ƒ d  S(   NR   t   reverseiÿÿÿÿR	   t   as_cmap(   R    t   light_palettet   TrueR8   Rc   RX   t   mplt   colorst   colorConvertert   to_rgbaR   R   RW   t   LinearSegmentedColormap(   R   Rv   Rw   R   t   pal_cmap(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_light_paletteÓ   s    c         C   s¥   t  j d ƒ } t  j d d t ƒ} t j | | d  d  d … ƒ t t j j j	 d ƒ ƒ } t
 j t | d ƒ | ƒ t  j d d t ƒ} t
 j | t j j ƒ d  S(   NR   R„   iÿÿÿÿR	   R…   (   R    t   dark_paletteR‡   R8   Rc   RX   Rˆ   R‰   RŠ   R‹   R   R   RW   RŒ   (   R   Rv   Rw   R   R   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_dark_paletteß   s    c         C   s>   d d d g } t  j | d t ƒ} t j | t j j ƒ d  S(   NR   t   yellowt   whiteR…   (   R    t   blend_paletteR‡   R   RW   Rˆ   R‰   RŒ   (   R   R‰   R   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_blend_paletteë   s    c         C   sŠ   t  j d d d ƒ } t j j | ƒ d  d  … d  d … f j ƒ  } t j d d d d d d	 d d
 d d d d t ƒ} t	 j
 | | ƒ d  S(   Ni    i   i   i   t   startg      à?t   rotg      ø¿t   hueR%   t   lightR„   (   RU   t   linspaceRˆ   t   cmt	   cubehelixt   tolistR    t   cubehelix_paletteR‡   R   t   assert_list_equal(   R   t   xt   mpl_palt   sns_pal(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt!   test_cubehelix_against_matplotlibñ   s
    .c         C   sC   x< d d d g D]+ } t  j | ƒ } t j t | ƒ | ƒ q Wd  S(   Ni   i   i   (   R    R   R   R   R    (   R   t   nR   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_cubehelix_n_colorsû   s    c         C   s?   t  j ƒ  } t  j d t ƒ } t j | | d  d  d … ƒ d  S(   NR„   iÿÿÿÿ(   R    R   R‡   R   Rž   (   R   Rv   Rw   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_cubehelix_reverse  s    c         C   sç   t  j d t ƒ } t j | t j j ƒ t  j ƒ  } t j	 d d d ƒ } t
 j | | ƒ d  d  … d  d … f | ƒ t  j d t d t ƒ } t j	 d d d ƒ } | | ƒ j ƒ  } | | d  d  d … ƒ j ƒ  } t j | | ƒ d  S(   NR…   i    i   i   i   R„   iÿÿÿÿ(   R    R   R‡   R   RW   Rˆ   R‰   t   ListedColormapRU   R™   R8   R9   Rœ   Rž   (   R   t   cmapR   RŸ   t   cmap_revRv   Rw   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_cubehelix_cmap  s    ,c      	   C   s  t  j } t  j } | d d ƒ } | | d ƒ ƒ } | | k sE t ‚ | d d ƒ } | | d d d d d d d ƒƒ } | | k sŠ t ‚ | d	 d
 ƒ } | | d
 d d d d ƒƒ } | | k sÉ t ‚ | d d ƒ } | | d d t ƒƒ } | | k st ‚ d  S(   Ns   ch:i   s   ch:.5, -.25,hue = .5,light=.75g      à?g      Ð¿R—   R˜   g      è?s   ch:h=1,r=.5i	   i   R–   s   ch:_ri   R„   (   R    R   R   R   R‡   (   R   R   R   RR   RS   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_cubehelix_code  s    		$c         C   sr   t  t j ƒ  ƒ d d !} t j | ƒ } xC t | | ƒ D]2 \ } } t j j | ƒ } t	 j
 | t | ƒ q8 Wd  S(   Ni
   i   (   R)   R   t   keysR    t   xkcd_palettet   zipRˆ   R‰   t   rgb2hexR   R   (   R   t   namesR‰   R+   R|   R(   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_xkcd_palette*  s
    c         C   sx   t  t j ƒ  ƒ d d !} t j | ƒ } xI t | | ƒ D]8 \ } } t j j | ƒ } t	 j
 | t | j ƒ  ƒ q8 Wd  S(   Ni
   i   (   R)   R   R«   R    t   crayon_paletteR­   Rˆ   R‰   R®   R   R   t   lower(   R   R¯   R‰   R+   R|   R(   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_crayon_palette2  s
    c         C   s±   t  j d ƒ t  j d ƒ d g } xW t d | ƒ D]F \ } } t j j j | ƒ } t j j j | ƒ } t j	 | | ƒ q3 Wt  j d ƒ t
 j t ƒ  t  j d ƒ Wd  QXd  S(   NR   R]   s   .1t   bgrmyckt   resetRn   (   R    t   set_color_codesR   R­   Rˆ   R‰   RŠ   t   to_rgbR   R   t   pytestt   raisesRJ   (   R   R‰   t   codeR|   R~   R}   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_color_codes:  s    c         C   sU   t  j d ƒ } x? t | | j ƒ  ƒ D]( \ } } t j t j j | ƒ | ƒ q% Wd  S(   NR   (	   R    R   R­   R(   R   R   Rˆ   R‰   R®   (   R   R   t   rgbt   hex(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_as_hexG  s    "c         C   s5   t  j d d ƒ } t  j | ƒ } t j | | ƒ d  S(   NRn   i
   (   R    R   R   R   (   R   RZ   R[   (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_preserved_palette_lengthM  s    c         C   sf   t  rb d d g } t j d | ƒ } t j i | d 6ƒ # t j ƒ  } | | k sY t ‚ Wd  QXn  d  S(   Ng      ð?g        i    R|   s   axes.prop_cycle(   g      ð?g        g        (   i    g      ð?g        (   t
   mpl_ge_150t   pltt   cyclert
   rc_contextR   R   R   (   R   R‰   t
   prop_cyclet   result(    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   test_get_color_cycleS  s    (&   t   __name__t
   __module__R   R   R   R"   R5   R<   R@   RE   RG   RK   RM   RO   RT   R\   R_   Rl   Rm   Rs   Rx   R   R   Rƒ   RŽ   R   R”   R¢   R¤   R¥   R©   Rª   R°   R³   R»   R¾   R¿   RÆ   (    (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyR      sH   		
													
				
								
									(   Rz   t   numpyRU   t
   matplotlibRˆ   R¸   t
   nose.toolst   toolsR   t   numpy.testingt   testingR8   t   matplotlib.pyplott   pyplotRÁ   t    R    R   R   t   externalR   R‰   R   R   t   distutils.versionR   t   __version__RÀ   t   objectR   (    (    (    s:   lib/python2.7/site-packages/seaborn/tests/test_palettes.pyt   <module>   s   