ó
üĚoLc           @   s  e  d  k rŚ d d l Z d d l Z e j j e j j e   d Z e j j e  \ Z Z	 e	 d k o e j j e  d d k Z
 e
 rŁ e j j d e  n  n e  j d  Z
 e
 rä d d l m Z d d	 l m Z m Z n& d d l m Z d d	 l m Z m Z d d l Z d d l Z d d
 l Td d l Z g  d  Z d d d f d d d f e d  Z d e j f d     YZ e  d  k re j   n  d S(   t   __main__i˙˙˙˙Ni    t   testsi   t   pygames   pygame.tests.(   t
   test_utils(   t   test_not_implementedt   unittest(   t   *c         C   sW  |  j    d } t j j |  } | j |  d  t j j   t j j   t } d } xŢ | r8t j j	   } xÂ | D]ş } | j
 t k r t } n  | j
 t k rw | j t t g k r(| j t k rŐ | d 7} n  | j t k rń | d 8} n  | | }  | j |  d  t j j   t j j   q1t } qw qw Wq[ Wt j j   t j j   d  S(   Ni   i    i   (   i    i    (   i    i    (   t   get_rectR   t   displayt   set_modet   blitt   flipt   eventt   pumpt   Truet   gett   typet   QUITt   Falset   KEYDOWNt   keyt   K_st   K_at   quitt   init(   t   st   imagest   sizet   screent   goingt   idxt   eventst   e(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt
   show_image   s2    		  
c         C   sd  | j    | j   } } | r/ |  j |  n  y | \ } }	 }
 Wn# t k
 rg | \ } }	 }
 } n Xy | \ } } } Wn# t k
 r  | \ } } } } n Xd } xś t |  D]¨ } x t |  D] } | j | | f  } t | d |  | k  t | d |	  | k  @t | d |
  | k  @rÇ | rK|  j | | f |  n  | d 7} qÇ qÇ Wq´ W| S(   sQ    given the color it makes return_surf only have areas with the given colour.
    i    i   i   (   t	   get_widtht
   get_heightt   fillt
   ValueErrort   xranget   get_att   abst   set_at(   t   return_surft   surft   colort	   thresholdt
   diff_colort   change_returnt   widtht   heightt   rt   gt   bt   at   trt   tgt   tbt   tat   similart   yt   xt   c1(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyR-   4   s*    /t   TransformModuleTestc           B   sł   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 RS(   c         C   sŤ   t  j d  } | j d  |  j | j   d  t  j d  } | j d  t  j j | d  } | j   } |  j | j   | j    |  j | j   | j    d S(   s/    see if set_alpha information is kept.
        i    i7   i@   N(   i    i    (   i    i    (   i@   i@   (   R   t   Surfacet	   set_alphat   assertEqualt	   get_alphat	   transformt   scalet   copy(   t   selfR   t   s2t   s3(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_scale__alphac   s    c         C   sţ   t  j d  } t  j j | d  } | j   } t  j j | d |  } t  j j | d |  |  j t t  j j | d	 |  t  j d
  } t  j j | d  } | j   } t  j j | d |  } t  j j | d |  |  j t t  j j | d |  d S(   sA    see if the destination surface can be passed in to use.
        i    i@   i!   N(   i    i    (   i@   i@   (   i@   i@   (   i@   i@   (   i!   i@   (   i    i    (   i@   i@   (   i@   i@   (   i@   i@   (   i!   i@   (   R   R?   RC   RD   RE   t   assertRaisesR%   t   smoothscale(   RF   R   RG   RH   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_scale__destinations   s    c         C   s  d \ } } } d	 } d
 } d } t  j | t  j d  } t  j | t  j d  } t  j | t  j d  }	 | j |  |	 j |  t  j j | | | | d d  }
 |  j | | |
  t  j j | | d | d d |	  }
 |  j | | |
  d } t  j j | | d | | d |	  }
 |  j | | |
  | j   } | j } |  j | |  x3 t	 j
 |  D]" } |  j | j |  | k  qdWt  j j | | d d | d |	  }
 |  j d |
  | j   } | j } |  j | |  x0 t	 j
 |  D] } |  j | j |  |  qóWd  S(   Ni    i   i   i
   i    i˙   i   (   i    i    (   i   i   i   i   (   i   i   i   i   (   i
   i
   i
   i
   (   i˙   i
   i
   i
   (   R   R?   t   SRCALPHAR$   RC   R-   RA   R   R   R   t   rect_area_ptst   assert_R'   (   RF   t   wt   hR   R-   t   original_colort   threshold_colort   original_surfacet   dest_surfacet   third_surfacet   pixels_within_thresholdt   change_colort	   dest_rectt	   dest_sizet   pt(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt$   test_threshold__honors_third_surface   sj    								 			c         C   s,  t  j d  } t  j d  } t  j d  } t  j d  } t  j d  } t  j d  } | j d  } | j d  } | j d  } | j d  } | j d d  | j d d   | j d! d"  | j d# d$  | j d% d&  | j d' d(  |  j | j d)  d*  |  j | j d+  d,  |  j d- | j   | j   f  d. } d/ } d0 }	 t  j j | | | |	 | d |  }
 |  j |
 d  |  j | j d1  d2  t  j j | | | |	 | d |  }
 |  j |
 d  |  j | j d3  d4  |  j | j d5  d6  |  j | j d7  d8  d  S(9   Ni
   i    i   i    i!   i   i   i?   i=   ip   i   i   i   i   i˙   iŢ   ic   i   (   i
   i
   (   i
   i
   (   i
   i
   (   i
   i
   (   i
   i
   (   i
   i
   (   i    i    i    (   i    i   i    (   i    i    i    (   i    i    i    (   i    i    (   i    i   i    (   i    i    (   i!   i   i    (   i   i    (   i?   i=   i    (   i    i    (   ip   i   i    (   i    i    (   i   i   i    (   i   i   (   i   i   i    (   i    i    (   i    i   i    i˙   (   i    i    (   i!   i   i    i˙   (   i    i    (   i˙   i˙   i˙   i˙   (   iŢ   i    i    i˙   (   i   i   i   i˙   (   i    i    (   i˙   i˙   i˙   i˙   (   i    i    (   i    i   i    i˙   (   i   i    (   i    i    i    i˙   (   i   i    (   iŢ   i    i    i˙   (	   R   R?   R$   R)   RA   R'   t	   get_flagsRC   R-   (   RF   t   resultt   s1RG   RH   t   s4R<   t   similar_colorR.   RS   t   rr(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_threshold_non_src_alpha  s>    "	$c         C   sé   d	 \ } } } t  j | t  j d  } t  j | t  j d  } | j d  d d d d g } d d d d g } xq t t d   D]] } | }	 | }
 d |	 | <d |
 | <t  j j | | |	 |
 d d  } |  j | | |  q Wd  S(
   Ni   i    i    i   i   t   rgbi-   i2   (   i   i   (	   R   R?   RM   R$   t   ranget   lenRC   R-   RA   (   RF   RP   RQ   R   RT   RU   t   threshold_color_templatet   threshold_templatet   posRS   R-   RW   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_threshold__uneven_colorsG  s"    

			c      	   C   sd  t  j j } t  j d t d  } t  j d t d  } t  j d t d  } | j d  | j d  | } | } d } d } d }	 d }
 | | | | | |	 |
  } |  j | | j   | j    |  j | j	 d  d  | j d  | j d  | j
 d d  | | | d d  d! d  } |  j | | j   | j   d  |  j | j	 d"  d#  |  j | j	 d$  d%  |  j | j	 d&  d'  | j d(  | j d)  | | | d* d+ d, t  } |  j | | j   | j    | j d-  | j d.  | j
 d/ d0  | | | d1 d2 d3 t  } |  j | | j   | j   d  | j d4  | j d5  | j d6  | j
 d7 d8  | | | d9 d: d; t  } |  j | | j   | j   d  | | | d d< d= t |  } |  j | | j   | j   d  | | | d> d? d@ t  } |  j | d  | | | d dA dB t |  } |  j | d  d S(C   s	   
        i    i   i(   i˙   i   i   i    i   iŞ   i   i    id   iţ   i,   iý   N(   i    i    (   i    i    (   i   i   (   i(   i(   i(   (   i˙   i˙   i˙   (   i   i   i   (   i   i   i   (   i˙   i    i    (   i    i    (   i(   i(   i(   i˙   (   i(   i(   i(   (   i˙   i˙   i˙   (   i    i    (   iŞ   iŞ   iŞ   (   i   i   i   (   i   i   i   (   i    i    i    (   i    i    (   i    i    i    i˙   (   i    i   (   i(   i(   i(   i˙   (   i   i   (   i(   i(   i(   i˙   (   i    i    i    (   i˙   i˙   i˙   (   i˙   i˙   i˙   (   id   id   id   (   i    i    i    (   i(   i(   i(   (   i˙   i˙   i˙   (   i    i    (   iŞ   iŞ   iŞ   (   i   i   i   (   i   i   i   (   i    i    i    (   iţ   iţ   iţ   (   i˙   i˙   i˙   (   i˙   i˙   i˙   (   i    i    (   iŞ   iŞ   iŞ   (   iţ   iţ   iţ   (   i   i   i   (   i,   i,   i,   i˙   (   i   i   i   (   i,   i,   i,   i˙   (   iý   iý   iý   (   i    i    i    (   i,   i,   i,   i˙   (   i    i    i    (   i,   i,   i,   i˙   (   R   RC   R-   R?   RM   R$   RA   R#   R"   R'   R)   R   R   (   RF   R-   R_   RG   RH   RU   t   surface1R,   t   the_thresholdR.   R/   t   num_threshold_pixels(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_threshold__surfacef  sf    	 	$ $$$c         C   s`  d } t  j | | f  } t  j | | f  } | j d
  t  j j | d d d  t  j j | d d d  t  j j | |  |  j | j d  d  |  j | j d  d  |  j | j d  d  |  j | j d  d  t  j j |  } |  j | j d  d  |  j | j d  d  |  j | j d  d  |  j | j d  d   d	 S(!   s	   
        i    i
   iF   i˙   i    i   i   i   N(   i
   i
   iF   (   i˙   i    i    (   i   i
   (   i   i   (   i˙   i    i    (   i    i   (   i   i   (   i    i    (   i    i    i    i˙   (   i   i
   (   i˙   i    i    i˙   (   i    i   (   i˙   i    i    i˙   (   i   i   (   i˙   i    i    i˙   (   i    i    (   i    i    i    i˙   (   i   i
   (   i˙   i    i    i˙   (   i    i   (   i˙   i    i    i˙   (   i   i   (   i˙   i    i    i˙   (	   R   R?   R$   t   drawt   lineRC   t	   laplacianRA   R'   (   RF   t   SIZER_   RG   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_laplacianÖ  s     c         C   s  d } t  j | | f  } t  j | | f  } t  j | | f  } | j d  | j d  | j d  | | | g } | | g } t  j j |  } |  j | j d  d  |  j t t  j j d	  |  j t t  j j g   |  j t t  j j d	 g  |  j t t  j j | d	 g  |  j t t  j j d	 | g  |  j t t  j j | | d	 g  |  j t t  j j d
   | | | g D  d S(   s	   
        i    i
   iF   i   i   i    i   i˙   i   c         s   s   |  ] } | Vq d  S(   N(    (   t   .0R   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pys	   <genexpr>  s    N(   i
   i
   iF   (   i
   i   iF   (   i
   i   i
   (   i    i    (   i
   i   iF   i˙   (	   R   R?   R$   RC   t   average_surfacesRA   R'   RJ   t	   TypeError(   RF   Rr   R_   RG   RH   t   surfacest   sr(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_average_surfaces÷  s$    "c         C   s  d } d } t  j | | f d |  } t  j | | f d |  } t  j | | f d |  } | j d  | j d  | j d  | | | g } t  j j |  } |  j | j   | j    |  j | j   | j    |  j | j   | j    |  j | j	 d  d  d  S(   Ni    i   i    i
   iF   i˙   i   i   i5   i2   (   i
   i
   iF   i˙   (   i
   i   iF   i˙   (   i
   i   i
   i˙   (   i    i    (   i
   i5   i2   i˙   (
   R   R?   R$   RC   Ru   RA   t	   get_masksR]   t
   get_lossesR'   (   RF   Rr   t   depthR_   RG   RH   Rw   Rx   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_average_surfaces__24  s    	c         C   s   d d g } x{ | D]s } t  j d d |  } | j d  | j d d  |  j t  j j |  d  |  j t  j j | d  d  q Wd S(   s	   
        i   i    i    id   iČ   i
   i2   i   i   iK   i   N(   i    i    (   i    id   iČ   (   i
   i2   id   (   i    i    i   i    (   i   iK   i   i    (   i   i    i   i    (   i    id   iČ   i    (   R   R?   R$   RA   RC   t   average_color(   RF   R5   t   iR   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_average_color8  s    c         C   s   |  j    d  S(   N(   t   fail(   RF   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   todo_test_rotateE  s    c         C   sĂ   d \ } } t  j | | f t  j  } t t j | |   } x$ | D] \ } } | j | |  qF Wx# d D] } t  j j | |  } qm Wx0 | D]( \ } } |  j	 | j
 |  | k  q Wd  S(   Ni    iZ   iŚ˙˙˙(   i    i    (   iZ   iŚ˙˙˙(   R   R?   RM   t   listR   t   gradientR)   RC   t   rotateRO   R'   (   RF   RP   RQ   R   R   R[   R,   t   rotation(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt#   test_rotate__lossless_at_90_degreesW  s     c         C   sY   d \ } } t  j | | f t  j d  } t  j j |  } |  j | j   j d  d  S(   Ni    i@   (   i    i    (   i@   i@   (   R   R?   RM   RC   t   scale2xt   assertEqualsR   R   (   RF   RP   RQ   R   RG   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_scale2xe  s    c         C   s&   t  j j   } |  j | d k  d  S(   Nt   GENERICt   MMXt   SSE(   R   R   R   (   R   RC   t   get_smoothscale_backendt
   failUnless(   RF   t   filter_type(    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_get_smoothscale_backendt  s    c         C   sç   t  j j   } t  j j d  t  j j   } |  j | d  t  j j d |  d   } |  j t |  d   } |  j t |  d   } |  j t |  | d k rÄ d   } |  j t |  n  t  j j   } |  j | |  d  S(   NR   R   c           S   s   t  j j d  d  S(   Nt   mmx(   R   RC   t   set_smoothscale_backend(    (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   change  s    c           S   s   t  j j d d  d  S(   Nt   tR   (   R   RC   R   (    (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyR     s    c           S   s   t  j j d  d  S(   Ni   (   R   RC   R   (    (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyR     s    R   c           S   s   t  j j d  d  S(   NR   (   R   RC   R   (    (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyR     s    (   R   RC   R   R   t   failUnlessEqualt   failUnlessRaisesR%   Rv   (   RF   t   original_typeR   R   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   test_set_smoothscale_backend{  s     				c         C   s   |  j    d  S(   N(   R   (   RF   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   todo_test_chop  s    c         C   s   |  j    d  S(   N(   R   (   RF   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   todo_test_flipŤ  s    c         C   s   |  j    d  S(   N(   R   (   RF   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   todo_test_rotozoom¸  s    c         C   s   |  j    d  S(   N(   R   (   RF   (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   todo_test_smoothscaleČ  s    (   t   __name__t
   __module__RI   RL   R\   Rc   Rj   Rn   Rs   Ry   R}   R   R   R   R   R   R   R   R   R   R   (    (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyR>   ]   s&   			z	@		p	!		"									(   R   t   syst   ost   patht   splitt   abspatht   __file__t   pkg_dirt
   parent_dirt   pkg_namet   is_pygame_pkgt   insertt
   startswitht   pygame.testsR   t   pygame.tests.test_utilsR   R   t   testt   test.test_utilsR   t   pygame.transformt   pygame.localst   platformR!   R   R-   t   TestCaseR>   t   main(    (    (    s<   C:\Python27\Lib\site-packages\pygame\tests\transform_test.pyt   <module>   s2   "
$)˙ ˙ 