ó
î&]\c           @` s  d  Z  d d l m Z m Z m Z d d l Z d d l m Z m Z m	 Z	 m
 Z
 m Z d d l m Z d d l Z d   Z d   Z e j j e d d	 d
    Z e j j e d d	 d    Z e j j e d d	 d    Z e j j e d d	 d    Z d S(   s>    Test for assert_deallocated context manager and gc utilities
i    (   t   divisiont   print_functiont   absolute_importN(   t   set_gc_statet   gc_statet   assert_deallocatedt   ReferenceErrort   IS_PYPY(   t   assert_equalc          C` s   t  j   }  zi xb t t f D]T } t  j   t |  t t  j   |  t  j   t |  t t  j   |  q WWd  |  r t  j   n  Xd  S(   N(   t   gct	   isenabledt   Truet   Falset   enableR   R   t   disable(   t	   gc_statust   state(    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyt   test_set_gc_state   s    



c       
   C` sà   t  j   }  zı x² t t f D]¤ } t |  x t t f D] } t |   t t  j   |  Wd  QXt t  j   |  t |  # t t  j   |  t |  Wd  QXt t  j   |  q9 Wq WWd  |  rÛ t  j   n  Xd  S(   N(   R	   R
   R   R   R   R   R   R   (   R   t	   pre_statet
   with_state(    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyt   test_gc_state   s    
t   reasons   Test not meaningful on PyPyc          C` s§   d t  f d     Y}  x t t f D]| } t |  h t |  d d d   } t | j d  ~ Wd  QXt |  d d d d  Wd  QXt t j   |  Wd  QXq# Wd  S(   Nt   Cc           B` s   e  Z d  d  Z RS(   t   mynamec         S` s   | |  _  d  S(   N(   t   name(   t   selft   arg0t   arg1R   (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyt   __init__8   s    (   t   __name__t
   __module__R   (    (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyR   7   s   i    i   s   another nameR   s
   third name(	   t   objectR   R   R   R   R   R   R	   R
   (   R   t
   gc_currentt   c(    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyt   test_assert_deallocated4   s    	c       	   C` sE   d t  f d     Y}  t j t   t |    } Wd  QXWd  QXd  S(   NR   c           B` s   e  Z RS(    (   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyR   H   s   (   R   t   pytestt   raisesR   R   (   R   R!   (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyt   test_assert_deallocated_nodelF   s    c       	   C` sH   d t  f d     Y}  t j t   t |   
 } ~ Wd  QXWd  QXd  S(   NR   c           B` s   e  Z d    Z RS(   c         S` s   |  |  _  d  S(   N(   t	   _circular(   R   (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyR   S   s    (   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyR   R   s   (   R   R#   R$   R   R   (   R   R!   (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyt    test_assert_deallocated_circularP   s    c       	   C` sC   d t  f d     Y}  t j t   t |    Wd  QXWd  QXd  S(   NR   c           B` s   e  Z d    Z RS(   c         S` s   |  |  _  d  S(   N(   R&   (   R   (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyR   ^   s    (   R   R   R   (    (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyR   ]   s   (   R   R#   R$   R   R   (   R   (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyt!   test_assert_deallocated_circular2[   s    (   t   __doc__t
   __future__R    R   R   R	   t   scipy._lib._gcutilsR   R   R   R   R   t   numpy.testingR   R#   R   R   t   markt   skipifR"   R%   R'   R(   (    (    (    s=   lib/python2.7/site-packages/scipy/_lib/tests/test__gcutils.pyt   <module>   s   (		!!
!