
[c           @` s  d  d l  m Z m Z m Z m Z d  d l m Z d  d l Z d  d l Z	 d d l
 m Z m Z d d l m Z d d l m Z d d	 l
 m Z y d  d l Z Wn e k
 r e Z n Xe Z d
   Z d   Z e j j d  d    Z e j j d  d    Z e j j d  d    Z d   Z  d   Z! e j j d  d    Z" d   Z# d e j$ f d     YZ% d e j$ f d     YZ& e j j d  d    Z' e j j d  d    Z( e j j d  d    Z) e j j d  d    Z* e j j d  d    Z+ e j j d  d    Z, e j j d  d    Z- e j j d  d    Z. d    Z/ e j j d  d!    Z0 e j j d  d"    Z1 e j j d  d#    Z2 e j j d  d$    Z3 e j j d  d%    Z4 e j j d  d&    Z5 d'   Z6 e j j d  d(    Z7 e j j d  d)    Z8 e j j d  d*    Z9 e j j d  d+    Z: e j j d  d,    Z; e j j d  d-    Z< e j j d  d.    Z= e j j d  d/    Z> e j j d  d0    Z? e j j d  d1    Z@ e j j d  d2    ZA e j j d  d3    ZB e j j d  d4    ZC e j j d  d5    ZD d S(6   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literals(   t   StringIONi   (   t   coret   funcsi   (   t   quantity_allclose(   t   NUMPY_LT_1_14(   t   unitsc          C` sO  t  j t   t j d d d d  }  Wd QXt  j t  # t j d d d d d d  }  Wd QXt  j t  8 t j d d d d d	 t j d
 d g t j   }  Wd QXt  j t  F t j d d g t j t j	 t j
  } t j d | d d  }  Wd QXt  j t  ) t j d d d d d	 d d d  }  Wd QXt  j t  G t j d d d g t j  } t j d d d d d	 d d |  }  Wd QXt  j t  M t j d d d g t j  } t j d d d d d	 d d d d |  }  Wd QXt  j t  D t j d d g t j  } t j d d d d d	 d d |  }  Wd QXt  j t  # t j d d d d d d  }  Wd QXt  j t  # t j d d d d d d  }  Wd QXt  j t  * t j d d d d  }  |  j d  Wd QXt  j t  * t j d d d d  }  |  j d  Wd QXt  j t   t j j d  Wd QXd S(   u=    Tests to make sure the code refuses inputs it is supposed tot   H0iF   t   Om0gHzGѿNgHzG?t   Neffit   Tcmb0g        i   id   g?i   t   m_nug      ?g333333ӿg?g333333?t   Ob0g{Gzg?i   i   (   t   pytestt   raisest
   ValueErrorR   t   FlatLambdaCDMt   ut   Quantityt   Kt   kmt   st   Mpct   eVt   Obt   Odmt	   TypeErrort   default_cosmologyt   validate(   t   cosmot   h0badt   bad_mnu(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt	   test_init   sB    $$)**0*$$c          C` sB  t  j d d d d d d d d d	 d
  }  t |  j d  sB t  t |  j d d d s` t  t |  j d
  sx t  t |  j d  s t  t |  j d d d s t  t |  j	 d d d s t  t |  j
 d  s t  t |  j |  j |  j |  j	 d d d st  t |  j d  |  j d  |  j d  |  j d  d d d sbt  t |  j d t j  st  t |  j d t j d d st  t |  j d  st  t |  j d  st  t |  j d t j t j t j  st  t j d t j t j t j  } t j d t j  } t  j d | d d d | d d d	 d
  }  t |  j d  s}t  t |  j d d d st  t |  j d
  st  t |  j d  st  t |  j d d d st  t |  j	 d d d st  t |  j
 d  st  t |  j |  j |  j |  j	 d d d sRt  t |  j d  |  j d  |  j d  |  j d  d d d st  t |  j d t j  st  t |  j d t j d d st  t |  j d  st  t |  j d  st  t |  j d t j t j t j  s>t  d  S(   NR
   iF   R   gHzG?R   g       @R   gRQ@R   g?g$[?t   rtolg-C6?g>gDv/>g        g      ?gư>i   gsz+?gh㈵>gffffff?g     Q@g*\(?g*\(?(   R   R   t   allcloseR   t   AssertionErrort   Ode0R   t   Odm0t   Ogamma0t   Onu0t   Ok0t   Omt   Odet   Ogammat   OnuR   R   R   t   Tnu0R   t   hR
   R   R   R   R   (   R    R
   t   T(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt
   test_basic<   sJ    !	)"%-#*)"%u   not HAS_SCIPYc          C` s  t  j d d d d d d  }  |  j d  j t j k s? t  |  j d d  j t j k sc t  |  j d  j t j k s t  |  j	 d d  j t j k s t  |  j
 d  j t j k s t  |  j d d  j t j k s t  |  j d  j t j k st  |  j d  j t j k s/t  |  j d  j t j k sPt  |  j j t j t j t j k syt  |  j d  j t j t j t j k st  |  j j t j k st  |  j d  j t j k st  |  j d d g  j t j k st  |  j j t j k s&t  |  j d  j t j k sGt  |  j d d g  j t j k snt  |  j d  j t j t j k st  |  j d  j t j t j k st  |  j d  j t j t j k st  |  j d  j t j t j k st  |  j  d  j t j! t j" d	 k s:t  |  j# d  j t j d	 k s_t  |  j$ d  j t j k st  |  j% d  j t j& k st  d
 S(   u+    Test if the right units are being returnedR
   iF   R   gHzG?R   g       @g      ?g        i   N('   R   R   t   comoving_distancet   unitR   R   R&   t   _comoving_distance_z1z2t   comoving_transverse_distancet"   _comoving_transverse_distance_z1z2t   angular_diameter_distancet   angular_diameter_distance_z1z2t   luminosity_distancet   lookback_timet   Gyrt   lookback_distanceR
   R   R   t   HR   R   t   TcmbR0   t   Tnut   arcsec_per_kpc_comovingt   arcsect   kpct   arcsec_per_kpc_propert   kpc_comoving_per_arcmint   arcmint   kpc_proper_per_arcmint   critical_densityt   gt   cmt   comoving_volumet   aget   distmodt   mag(   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt
   test_unitsh   s4    !$!$!$!!!)/!'!'((((,%!c          C` s  t  j d d d d d t j d d d g t j   }  t j d d	 d
  } | j d d  } | j d d d	  } d d d d d d d d d d g
 } x | D] } t |  |  } | |  } | j	 | j	 k s t
  | |  } | j	 | j	 k s t
  | |  }	 |	 j	 | j	 k st
  | j | j k s6t
  | j |	 j k sNt
  t | | j    sit
  t | |	 j    s t
  q Wd d d d d d d d d d  g
 } x | D] } t |  |  } | |  } | j	 | j	 k st
  | |  } | j	 | j	 k st
  | |  }	 |	 j	 | j	 k s4t
  t | | j    sOt
  t | |	 j    st
  qWd d d d g } xt  j d d d d d! d"  t  j d d d d d! d" d# d$  t  j d d d d d! d" d# d$ d% d&  t  j d d d d d! d" d' d$ d% d& d( d)  t  j d d d d d! d" d# d$ d* d  g D] }
 x | D] } t |  |  } | |  } | j	 | j	 k st
  | |  } | j	 | j	 k st
  | |  }	 |	 j	 | j	 k st
  t | | j    st
  t | |	 j    sKt
  qKWq>Wd+ S(,   uL    Test array shape broadcasting for functions with single
    redshift inputsR
   iF   R   gHzG?R   g        g?gI+?i   i   i   i   u   comoving_distanceu   luminosity_distanceu   comoving_transverse_distanceu   angular_diameter_distanceu   distmodu   lookback_timeu   ageu   comoving_volumeu   differential_comoving_volumeu   kpc_comoving_per_arcminu   absorption_distanceu   Omu   Odeu   Oku   Hu   wu   de_density_scaleu   Onuu   Ogammau   nu_relative_densityR'   g      ?t   w0g333333t   wagɿt   wpt   zpg?t   wzN(   R   R   R   R   R   t   npt   linspacet   reshapet   getattrt   shapeR&   R5   R%   t   flattent	   LambdaCDMt   wCDMt   w0waCDMt   wpwaCDMt   w0wzCDM(   R    t   zt   z_reshape2dt   z_reshape3dt   methodst   methodRJ   t
   value_flatt   value_2dt   value_3dt   tcosmo(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_distance_broadcast   sf    !	!'1c          C` s  t  j d d t j t j t j d d d d t j  }  t j d d d	  } |  j	   } | |  k sm t
  |  j	 d d
 t j t j t j  } | |  k	 s t
  | j |  j k s t
  | j |  j k s t
  t | j j |  j j  s t
  t | j d t j t j t j  s%t
  t | j |  j  s@t
  t | j |  j  s[t
  t | j |  j  swt
  t | j |  j  st
  t | j |  j  st
  t | j |  j  st
  t | j |  j  st
  t  j d d
 t j t j t j d d d d t j  } | j | j k s6t
  | j | j k sNt
  t | j | j  sit
  t | j | j  st
  t | j | j  st
  t | j | j  st
  t | j | j  st
  t | j | j  st
  t | j | j  st
  t | j | j  s&t
  t | j | j  sAt
  t | j |  | j |   sht
  t | j |  | j |   st
  t | j |  | j |   st
  |  j	 d d d d t j t j t j d d t j  } | j |  j k st
  | j |  j k s!t
  t | j j |  j j  sCt
  t | j d t j t j t j  spt
  t | j |  j  st
  t | j |  j  st
  t | j |  j  st
  t | j |  j  st
  t | j j |  j j  s t
  t | j d t j  st
  t | j |  j  s:t
  t | j |  j  sUt
  t  j d d d d t j t j t j d d d d t j  } | j | j k st
  | j | j k st
  t | j | j  st
  t | j | j  st
  t | j | j  st
  t | j | j  s1t
  t | j | j  sLt
  t | j | j  sgt
  t | j | j  st
  t | j | j  st
  t | j | j  st
  t | j |  | j |   st
  t | j |  | j |   st
  t | j |  | j |   s-t
  t  j d d d d t j t j t j d d d d d d d d t j  }  |  j	 d d d d  } | j |  j k st
  | j |  j k st
  t | j |  j  st
  t | j |  j  st
  t | j |  j  st
  t | j |  j  s-t
  t | j |  j  sIt
  t | j d  sat
  t | j |  j  s}t
  t | j d  st
  t j t    |  j	 d d  } Wd QXd S(   u    Test clone operationR
   iF   R   gHzG?R   g      @g?i   i   i<   g      N@t   nameu   New nameiA   gffffff@g     @P@u	   test w0waR'   g      ?RR   g      @RQ   gg?t
   not_an_argi   N(!   R   R   R   R   R   R   R   RV   RW   t   cloneR&   t	   __class__Rk   R%   R
   t   valueR   R+   R)   R*   R   R   R   R'   R,   R?   R;   R^   RQ   RR   R   R   t   AttributeError(   R    Ra   t   newclonet   cmp(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt
   test_clone   s    *'"-*''*"-"*''*"c          C` s   t  j d d d d d }  t j d d g  } t |  j d  d	 d
 d sT t  t |  j |  d d g d
 d s~ t  t |  j d  d d
 d s t  t |  j |  d d g d
 d s t  d S(   u*    Test of absorption and lookback integrandiF   g333333?g      ?R   g@g       @g	@i   ggr?R$   g-C6?gfs?gYǧ?ggr
@gQ@g C@N(   R   R\   RV   t   arrayR%   t   lookback_time_integrandR&   t   abs_distance_integrand(   R    Ra   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_xtfuncs-  s    c          C` s  t  j d d d d d }  d j t r- d n d  } t |   | k sN t  t  j d d d d d d	 t j d
 t j  }  d j t r d n d  } t |   | k s t  t  j	 d d d d d d }  d j t r d n d  } t |   | k st  t  j
 d d d d d d d d d }  d j t r;d n d  } t |   | k s\t  t  j d d d d d d }  d } t |   | k st  t  j d d d d d d d d  d! d d" }  d# j t rd n d  } t |   | k st  t  j d$ d% d d& d  d' d d( d d) }  d* } t |   | k s@t  t  j d d d d+ d& d  d' d, d d d- }  d. } t |   | k st  t  j d$ d d/ d d0 d1 d' d d d	 t j d2 d
 d3 g t j  }  d4 j t rd5 n d6  } t |   | k st  d7 S(8   u/    Test string representation of built in classesiF   g333333?g      ?R   g@ub   LambdaCDM(H0=70 km / (Mpc s), Om0=0.3, Ode0=0.5, Tcmb0=2.725 K, Neff=3.04, m_nu=[{}] eV, Ob0=None)u    0.  0.  0.u   0. 0. 0.R   g{Gz?u    0.01  0.01  0.01u   0.01 0.01 0.01g      I@gHzG?i   R   g?uY   FlatLambdaCDM(H0=50 km / (Mpc s), Om0=0.27, Tcmb0=3 K, Neff=3.04, m_nu=[{}] eV, Ob0=0.05)g      N@g333333?RQ   gRk   u   test1uu   wCDM(name="test1", H0=60 km / (Mpc s), Om0=0.27, Ode0=0.6, w0=-0.8, Tcmb0=2.725 K, Neff=3.04, m_nu=[{}] eV, Ob0=None)g     @P@g333333u   test2uh   FlatwCDM(name="test2", H0=65 km / (Mpc s), Om0=0.27, w0=-0.6, Tcmb0=0 K, Neff=3.04, m_nu=None, Ob0=None)g      ?g?RR   g?u   test3u   w0waCDM(name="test3", H0=60 km / (Mpc s), Om0=0.25, Ode0=0.4, w0=-0.6, wa=0.1, Tcmb0=2.725 K, Neff=3.04, m_nu=[{}] eV, Ob0=None)g     K@gffffff?ggɿu   test4g<9c?um   Flatw0waCDM(name="test4", H0=55 km / (Mpc s), Om0=0.35, w0=-0.9, Tcmb0=0 K, Neff=3.04, m_nu=None, Ob0=0.0457)RS   RT   u   test5u   wpwaCDM(name="test5", H0=50 km / (Mpc s), Om0=0.3, Ode0=0.3, wp=-0.9, wa=-0.2, zp=0.3, Tcmb0=0 K, Neff=3.04, m_nu=None, Ob0=None)g?gRU   gMbP?gQ?ur   w0wzCDM(H0=55 km / (Mpc s), Om0=0.4, Ode0=0.8, w0=-1.05, wz=-0.2 Tcmb0=2.725 K, Neff=3.04, m_nu=[{}] eV, Ob0=None)u    0.001  0.01   0.015u   0.001 0.01  0.015N(   R   R\   t   formatR   t   strR&   R   R   R   R   R]   t   FlatwCDMR^   t   Flatw0waCDMR_   R`   (   R    t   expected(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt	   test_repr;  sN    	0	'-!	$!	c          C` s,  t  j d d d d d d  }  d } t |  j |  d d	 d
 g t j d d sX t  t |  j |  d d d g t j d d s t  t |  j |  d d d g t j d d s t  t |  j	 |  d d d g t j
 d d s t  t |  j |  d d d g t j d d s(t  d S(   uQ    Test a flat cosmology at z=1 against several other on-line
    calculators.
    R
   iF   R   gHzG?R   g        i   g     I@gI@gHPI@R$   g-C6?g33333I@gI@gHPI@g33333I@gI@gHPI@gw/]@g ]@gZd;_@gMbP?g     Ȣ@gGzȢ@gȢ@N(   R   R   R%   R4   R   R   R&   R9   R;   R<   R=   R>   (   R    Ra   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_flat_z1|  s    %%%%c       	   C` s  t  j d d d d d d  }  t |  j d d d	 d
 g  d d d d g  sT t  t |  j d  d  sr t  t  j d d d d d d  }  t |  j d  d d d d g  s t  t |  j d d d	 d
 g  d d d d g  s t  t |  j d  d d d d g  st  t |  j d d d	 d
 g  d d d d g  sPt  t  j d d d d d d d d  }  t |  j d d d	 d
 g  d d d d g  st  d S(   u3    Tests if setting params to 0s always respects thatR
   iF   R   gHzG?R'   g        i    i   i   i   R   g      ?g\(\?R   N(	   R   R\   R%   R-   R&   R   R.   R/   R   (   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_zeroing  s    6*6*6$t   test_cos_subc           B` s   e  Z d    Z d   Z RS(   c      	   C` s2   t  j j |  d d d d d d d d |  _ d  S(	   Ng     Q@gHzG?g\(\?R   g        Rk   u   test_cosg(   R   t   FLRWt   __init__t   _w0(   t   self(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s    c         C` s   |  j  t j |  S(   N(   R   RV   t	   ones_like(   R   Ra   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   w  s    (   t   __name__t
   __module__R   R   (    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s   	t   test_cos_subnuc           B` s   e  Z d    Z d   Z RS(   c         C` s?   t  j j |  d d d d d d d t j d d	 d
 |  _ d  S(   Ng     Q@gHzG?g\(\?R   g      @R   g?Rk   u   test_cos_nug(   R   R   R   R   R   R   (   R   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s    c         C` s   |  j  t j |  S(   N(   R   RV   R   (   R   Ra   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s    (   R   R   R   R   (    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s   	c          C` s  d d d d g }  t  j d d d d d	 d
 d d d d  } t | j |   d d d d g t j d d ss t  t   } t | j |   d d d d g t j d d s t  t | j d  d d d s t  t | j d d g  d d g d d st  t | j	 d d g  d d g d d s7t  t | j
 d  d d d s[t  t | j
 d d g  d d g d d st  d  S(   Ng?g?g333333?g?R
   iF   R   gHzG?R'   g\(\?RQ   gR   g        g     |@gfffffܠ@gf@g@R$   gMbP?g      ?g	{ϗ?gh㈵>g      ?gkWE?g,Q4J?gJL?gZ<'Ĳ?g-C6?g3?(   R   R]   R%   R;   R   R   R&   R   t   efunct	   inv_efunct   de_density_scale(   Ra   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_de_subclass  s    *(	($$c          C` sB  t  j d d d d g  }  t j d d d d d d	 d
 d d d d d  } t | j d  sc t  t | j d  s{ t  t | j |   d d d d g t	 j
 d d s t  t | j d  d d d s t  t | j d d d g  d d d g  st  t j d d d d d d d
 d d d d d  } t | j |   d d d  d! g t	 j
 d d smt  t j d d d d d d d
 d d d" d d  } t | j |   d# d$ d% d& g t	 j
 d d st  t j d d d d d d	 d' d d d d( d d d  } t | j d  s"t  t | j d  s:t  t | j d  sRt  t | j |   d) d* d+ d, g t	 j
 d d st  t j d d d d d d	 d' d d d d( d d d  } t | j d  st  t | j d  st  t | j d  st  t | j |   d- d. d/ d0 g t	 j
 d d s>t  d1 S(2   uP   Tests a few varying dark energy EOS models against a mathematica
    computationg?g?g?g333333?R
   iF   R   R'   g?RQ   gRR   R   g        g     `@g
ףp=@g(\y@gR@R$   g-C6?g      ?gh㈵>g      ?g      ?g-䓖?g
_c?g333333?gffffff?gguV]@gp=
W@g)\5@g\h@g      gV-p@g\(ڠ@gR뗶@gףp=
)@RS   RT   gGz@gffff@g3333s@gy@g=
ףp@g@gQ^@gףp=!@N(   RV   Rt   R   R^   R%   RQ   R&   RR   R;   R   R   R   R_   RS   RT   (   Ra   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_varyde_lumdist_mathematica  s<    0($0('	(-	(-	c          C` s|  t  j d d d d }  t |  j d  s0 t  t |  j d t j t j t j	  s] t  t |  j
 d  d  s{ t  t |  j d  d  s t  t j d d d d	 g  } t |  j
 |  d d
 d d g d d s t  t |  j |  d d d d g d d st  t |  j |  d d d d g d d sDt  t |  j |  |  j |  |  j
 |   sxt  d  S(   Ng     Q@g333333?R   g
ףp=
?i    g        g      ?g      ?g       @gxuq?g@1?gk]t?R$   g-C6?g6t["?gYѡ?gU7?gRQ?g9?gS?g*O	?(   R   R   R%   R   R&   R
   R   R   R   R   R,   R   RV   Rt   R   (   t   tcosRa   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_matter  s    -!!!c          C` sq  t  j d d  }  t |  j d  s* t  t |  j d  d  sH t  t j d d d d g  } t |  j |  d d d d g d d	 s t  t  j d d d d
 t	 j
 d t	 j  }  t |  j d  s t  t |  j d  d  s t  t |  j |  d d d d g d d s#t  t |  j |  |  j |  |  j |  d d d d g d d smt  d  S(   Ng     Q@g333333?g        i    g      ?g      ?g       @R$   gư>R   g?g*rY?g	?g	ԋob'?g-C6?gh㈵>(   R   R   R%   R+   R&   t   OkRV   Rt   R\   R   R   R   R,   R-   (   R   Ra   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt
   test_ocurv  s    !*!)c          C` s   t  j d d d d }  t |  j d  s0 t  t |  j d  d  sN t  t j d d d d	 g  } t |  j |  d d
 d d g d d s t  d  S(   Ng     Q@g333333?R   i    gffffff?g        g      ?g      ?g       @g<)?g_\6:?gK2]?R$   gh㈵>(   R   R   R%   R'   R&   R-   RV   Rt   (   R   Ra   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_ode2  s    !c       	   C` s  t  j d d d d g  }  t j d d d d d	 d
 d d  } t | j |   d d d d g t j d d sv t  t j d d d d d	 d d d  } t | j |   d d d d g t j d d s t  t j d d d d d	 d d d  } t | j |   d d d d g t j d d s,t  t j d d d d d	 d
 d d  } t | j |   d d d  d! g t j d d" st  t j d d d d d	 d d d  } t | j |   d# d$ d% d& g t j d d" st  t j d d d d d	 d d d  } t | j |   d' d( d) d* g t j d d" s=t  d9 d: d; d. } | d/ d0 d< d= d } | | d> } d | } d? t j } t j d d d | d	 d d d  } d7 | t  j	 d | |  d |   d | d } t | j
 |   | d d" s	t  t | j
 |  j t  j   | d d" s9t  | dA 9} d | } t j d d d | d	 d d d  } d7 | t  j	 d | |  d |   d | d } t | j
 |   | d d" st  d8 S(B   u8   Tests the effects of changing the temperature of the CMBg      ?g      $@g     @@g     @@R
   iF   R   g333333?R   i    R   i   gϙ@gъ@g{G:@gbX9H+@R$   gMb@?g@g33333ϙ@g33333ϊ@g1Z:@gDl)+@g      @g͙@gĊ@gw/}:@g(\*@gRQ@gq=
ףϙ@gq=
ףъ@gyX5:@gz6K+@gh㈵>gףp=
ϙ@gK7Ί@g0*:@g/'++@gp=
̙@g?5^IÊ@gy&1|:@gX5;*@i   g@ט"Mqn>g   JxޱAgT@:g      @g       @g      &@g      @gffffff?i   gALAg     Q@g       @Ng@ט"Mq>g=LI6Eg#uK@gF]tE?gUUUUUU?g[(\?gؿ@gw z|?gS>)@(   RV   Rt   R   R   R%   R9   R   R   R&   t   sqrtR4   t   astypet   int(   Ra   R    t	   Ogamma0h2t   Onu0h2t   Or0R   t   hubdist   targvals(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_ogamma=  sD    $($($($($($(
$3$

$3c          C` s   t  j d d d d }  t |  j d t j  s7 t  t |  j d  d t j  s\ t  d d d	 d
 d g } t |  j |  d d d d d g t j d d s t  d d d d d g } t |  j |  d d d d d g t j d d s t  d  S(   NgQ@g rh?R   g      @i   g      @g        g      ?g       @g      @g      "@g      @g      $@g      9@R$   gư>i    i   i   i	   (   R   R   R%   R   R   R   R&   R@   (   R    Ra   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt	   test_tcmb  s    %+c          C` s   t  j d d d d }  t |  j d t j d d s= t  t |  j d  d	 t j d d sh t  d
 d d d g } d d d d g t j } t |  j |  | d d s t  d d d d g } t |  j |  | d d s t  d  S(   NgQ@g rh?R   g      @gXY`!@R$   gư>i   gA@g        g      ?g       @g;ў`!@g{o%`!@gt@gU{`!!@i    i   i   (   R   R   R%   R0   R   R   R&   RA   (   R    Ra   R|   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_tnu  s    %+$c       
   C` s6  d }  t  j d d d d g  } t j d d d  } t | j |   d | j |    sa t  t | j |  d | j |   s t  t j d d d d t j	 d t j
  } t | j |   d | j |    s t  t | j |  d | j |   st  t j d	 d
  } t | j |   d | j |    sIt  t | j |  d | j |   stt  t j d d
 d d d } t | j |   d | j |    st  t | j |  d | j |   st  t j d d
 d d } t | j |   d | j |    s(t  t | j |  d | j |   sSt  t j d d d d d d d } t | j |   d | j |    st  t | j |  d | j |   st  t j d d d d d d } t | j |   d | j |    st  t | j |  d | j |   s>t  t j d	 d d d d d d d d } t | j |   d | j |    st  t | j |  d | j |   st  t j d d d d d d d } t | j |   d | j |    st  t | j |  d | j |   s2t  d S(   u2    Test that efunc and inv_efunc give inverse valuesg      ?g      ?g       @g      @iF   g333333?R   g{Gz?g      I@gHzG?g      N@g333333?RQ   gg     @P@g333333g      ?g?RR   g?g     K@gffffff?ggɿRS   RT   g?gRU   N(   RV   Rt   R   R\   R%   R   R   R&   R   R   R   R   R]   Rz   R^   R{   R_   R`   (   t   z0Ra   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_efunc_vs_invefunc  s:    ++*++++++++!++++'++!+c          C` s   d }  t  j d d d d g  } t   } t | j |   d | j |    sU t  t | j |  d | j |   s t  t   } t | j |   d | j |    s t  t | j |  d | j |   s t  d S(   u2    Test that efunc and inv_efunc give inverse valuesg      ?g      ?g       @g      @N(   RV   Rt   R   R%   R   R   R&   R   (   R   Ra   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_efunc_vs_invefunc_flrw  s    	++	+c          C` s   t  j d d d d }  t |  j d  d t j t j  sD t  t |  j d  d t j t j  sp t  t |  j	 d  d t j t j
  s t  t |  j d  d	 t j t j
  s t  d  S(
   NgQ@g rh?R   g        i   gحT=?gحT=?gOn%@gc*}@(   R   R   R%   RB   R   RC   RD   R&   RE   RF   RG   RH   (   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_kpc_methods  s    c       	   C` s  t  j d d d d d d d d  }  t  j d d d d d d d d  } t  j d d d d	 d d d d  } t j d
 d d	 d d d g  } t j d d d d d d g  t j d } t j d d d d d d g  t j d } t j d d d d d d  g  t j d } t |  j |  | d! d" s5t  t | j |  | d! d" sYt  t | j |  | d! d" s}t  d  S(#   NR
   iF   R   gHzG?R'   g\(\?R   g        i   g      ?i   i   i   i	   gsh|=@grhc@g#~j@gvj@gQ
@gv@gK7A4@gK7X@g rw@gZdX@gˡEsY@g㥛Ġg@grh<)@gvZF@g`"۹\@g e@gQ-p@gZd;ov@R$   g{Gz?(	   R   R\   RV   Rt   R   t   GpcR%   RL   R&   (   t   c_flatt   c_opent   c_closedt	   redshiftst   wright_flatt   wright_opent   wright_closed(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_comoving_volume  s     $$$!c    	   	   ` si  d d l  m }  t j d d d d d d d	 d
   t j d d d d d d
 d	 d
   t j d d d d d d
 d	 d
    t j d d d d d d g  } t j d d d d d d g  t j d } t j d d d d d d g  t j d } t j d d d d  d! d" g  t j d }  f d#   }  f d$   }   f d%   } t t j g  | D]' } d& t j	 |  | d |  d ^ q^ t j
 d | d' d( st  t t j g  | D]' } d& t j	 |  | d |  d ^ q t j
 d | d' d( st  t t j g  | D]' } d& t j	 |  | d |  d ^ q t j
 d | d' d( set  d  S()   Ni    (   t   quadR
   iF   R   gHzG?R'   g\(\?R   g        i   g      ?i   i   i   i	   gsh|=@grhc@g#~j@gvj@gQ
@gv@gK7A4@gK7X@g rw@gZdX@gˡEsY@g㥛Ġg@grh<)@gvZF@g`"۹\@g e@gQ-p@gZd;ov@c         ` s     j  |   j S(   N(   t   differential_comoving_volumeRo   (   t   x(   R   (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   <lambda>  s    c         ` s     j  |   j S(   N(   R   Ro   (   R   (   R   (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s    c         ` s     j  |   j S(   N(   R   Ro   (   R   (   R   (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s    g      @R$   g{Gz?(   t   scipy.integrateR   R   R\   RV   Rt   R   R   R%   t   piR   R&   (	   R   R   R   R   R   t   ftempt   otempt   ctempt   redshift(    (   R   R   R   sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt!   test_differential_comoving_volume  s.    $$$!<<<c       	   C` sz  d }  d } d } t  j t |   d d \ } } } } | t j } | t j } | t j } t j d d d d	 d
 d d d  } t | j |  |  s t	  t | j
 |  |  s t	  t | j |  |  s t	  t  j t |  d d \ } } } } | t j } | t j } | t j } t j d d d d	 d
 d d d  } t | j |  |  snt	  t | j
 |  |  st	  t | j |  |  st	  t  j t |  d d \ } } } } | t j } | t j } | t j } t j d d d d d
 d d d  } t | j |  |  s:t	  t | j
 |  |  sXt	  t | j |  |  svt	  d S(   u}    Test against the tabulated values generated from icosmo.org
    with three example cosmologies (flat, open and closed).
    u  # from icosmo (icosmo.org)
# Om 0.3 w -1 h 0.7 Ol 0.7
# z     comoving_transvers_dist   angular_diameter_dist  luminosity_dist
       0.0000000       0.0000000       0.0000000         0.0000000
      0.16250000       669.77536       576.15085         778.61386
      0.32500000       1285.5964       970.26143         1703.4152
      0.50000000       1888.6254       1259.0836         2832.9381
      0.66250000       2395.5489       1440.9317         3982.6000
      0.82500000       2855.5732       1564.6976         5211.4210
       1.0000000       3303.8288       1651.9144         6607.6577
       1.1625000       3681.1867       1702.2829         7960.5663
       1.3250000       4025.5229       1731.4077         9359.3408
       1.5000000       4363.8558       1745.5423         10909.640
       1.6625000       4651.4830       1747.0359         12384.573
       1.8250000       4916.5970       1740.3883         13889.387
       2.0000000       5179.8621       1726.6207         15539.586
       2.1625000       5406.0204       1709.4136         17096.540
       2.3250000       5616.5075       1689.1752         18674.888
       2.5000000       5827.5418       1665.0120         20396.396
       2.6625000       6010.4886       1641.0890         22013.414
       2.8250000       6182.1688       1616.2533         23646.796
       3.0000000       6355.6855       1588.9214         25422.742
       3.1625000       6507.2491       1563.3031         27086.425
       3.3250000       6650.4520       1537.6768         28763.205
       3.5000000       6796.1499       1510.2555         30582.674
       3.6625000       6924.2096       1485.0852         32284.127
       3.8250000       7045.8876       1460.2876         33996.408
       4.0000000       7170.3664       1434.0733         35851.832
       4.1625000       7280.3423       1410.2358         37584.767
       4.3250000       7385.3277       1386.9160         39326.870
       4.5000000       7493.2222       1362.4040         41212.722
       4.6625000       7588.9589       1340.2135         42972.480
u  # from icosmo (icosmo.org)
# Om 0.3 w -1 h 0.7 Ol 0.1
# z     comoving_transvers_dist   angular_diameter_dist  luminosity_dist
       0.0000000       0.0000000       0.0000000       0.0000000
      0.16250000       643.08185       553.18868       747.58265
      0.32500000       1200.9858       906.40441       1591.3062
      0.50000000       1731.6262       1154.4175       2597.4393
      0.66250000       2174.3252       1307.8648       3614.8157
      0.82500000       2578.7616       1413.0201       4706.2399
       1.0000000       2979.3460       1489.6730       5958.6920
       1.1625000       3324.2002       1537.2024       7188.5829
       1.3250000       3646.8432       1568.5347       8478.9104
       1.5000000       3972.8407       1589.1363       9932.1017
       1.6625000       4258.1131       1599.2913       11337.226
       1.8250000       4528.5346       1603.0211       12793.110
       2.0000000       4804.9314       1601.6438       14414.794
       2.1625000       5049.2007       1596.5852       15968.097
       2.3250000       5282.6693       1588.7727       17564.875
       2.5000000       5523.0914       1578.0261       19330.820
       2.6625000       5736.9813       1566.4113       21011.694
       2.8250000       5942.5803       1553.6158       22730.370
       3.0000000       6155.4289       1538.8572       24621.716
       3.1625000       6345.6997       1524.4924       26413.975
       3.3250000       6529.3655       1509.6799       28239.506
       3.5000000       6720.2676       1493.3928       30241.204
       3.6625000       6891.5474       1478.0799       32131.840
       3.8250000       7057.4213       1462.6780       34052.058
       4.0000000       7230.3723       1446.0745       36151.862
       4.1625000       7385.9998       1430.7021       38130.224
       4.3250000       7537.1112       1415.4199       40135.117
       4.5000000       7695.0718       1399.1040       42322.895
       4.6625000       7837.5510       1384.1150       44380.133
u  # from icosmo (icosmo.org)
# Om 2 w -1 h 0.7 Ol 0.1
# z     comoving_transvers_dist   angular_diameter_dist  luminosity_dist
       0.0000000       0.0000000       0.0000000       0.0000000
      0.16250000       601.80160       517.67879       699.59436
      0.32500000       1057.9502       798.45297       1401.7840
      0.50000000       1438.2161       958.81076       2157.3242
      0.66250000       1718.6778       1033.7912       2857.3019
      0.82500000       1948.2400       1067.5288       3555.5381
       1.0000000       2152.7954       1076.3977       4305.5908
       1.1625000       2312.3427       1069.2914       5000.4410
       1.3250000       2448.9755       1053.3228       5693.8681
       1.5000000       2575.6795       1030.2718       6439.1988
       1.6625000       2677.9671       1005.8092       7130.0873
       1.8250000       2768.1157       979.86398       7819.9270
       2.0000000       2853.9222       951.30739       8561.7665
       2.1625000       2924.8116       924.84161       9249.7167
       2.3250000       2988.5333       898.80701       9936.8732
       2.5000000       3050.3065       871.51614       10676.073
       2.6625000       3102.1909       847.01459       11361.774
       2.8250000       3149.5043       823.39982       12046.854
       3.0000000       3195.9966       798.99915       12783.986
       3.1625000       3235.5334       777.30533       13467.908
       3.3250000       3271.9832       756.52790       14151.327
       3.5000000       3308.1758       735.15017       14886.791
       3.6625000       3339.2521       716.19347       15569.263
       3.8250000       3368.1489       698.06195       16251.319
       4.0000000       3397.0803       679.41605       16985.401
       4.1625000       3422.1142       662.87926       17666.664
       4.3250000       3445.5542       647.05243       18347.576
       4.5000000       3469.1805       630.76008       19080.493
       4.6625000       3489.7534       616.29199       19760.729
t   unpacki   R
   iF   R   g333333?R'   gffffff?R   g        g?i   N(   RV   t   loadtxtR   R   R   R   R\   R%   R7   R&   R9   R;   (   t
   cosmo_flatt
   cosmo_opent   cosmo_closedR   t   dmt   dat   dlR    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_flat_open_closed_icosmo   s6    '##'$'$'$c          C` s?  t  j d d d d d d  }  t |  j d  |  j d  d	 d
 sK t  t |  j d d d d g  |  j d d d d g  d	 d
 s t  t |  j d  |  j d  d	 d
 s t  t |  j d d d g  |  j d d d g  d	 d
 s t  t |  j d d d g  |  j d d d g  d	 d
 s;t  d  S(   NR
   gLR@R   g333333?R'   g      ?i   g      @R$   gHz>i   i   i   g      ?g       @g      @i   g      @(   R   R\   R%   R4   R&   R   R   (   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_integral  s    -'c          C` s^  t  j d d d d d d  }  t |  j d  d  s< t  t |  j d	 d
 d d d d g  d d d d d d g  s~ t  t  j d d d d d d d d  }  t |  j d  d  s t  t |  j d	 d
 d d d d g  d d d d d d g  st  t |  j d  st  t  j d d d d d d d d d d  }  t |  j d  d  sbt  t |  j d d d d d g  d d d d d g  st  t |  j d  st  t |  j d  st  t  j	 d d d d d d d d d d  }  t |  j d  st  t |  j
 d  s(t  t |  j d  d  sFt  t |  j d d d d d g  d d d d d g  st  t  j d d d d d d d d d d
 d d  }  t |  j d  st  t |  j
 d
  st  t |  j d  st  t |  j d  d  st  t |  j d	 d
 d d d d g  d  d! d d" d# d$ g  sZt  d  S(%   NR
   iF   R   g333333?R'   gffffff?g      ?g      g?g?g      ?g      ?g      @g      '@iRQ   g      RU   g        gffffff@g      g      пg333333?RR   g      gIgggldRS   gRT   gpYggUlHgQȥ\g7(   R   R\   R%   R   R&   R]   RQ   R`   RU   R^   RR   R_   RS   RT   (   R    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_wz  s<    !!$!!**!!c          C` s  t  j d d d d d d  }  t j d d d	 d
 d g  } t |  j |  d d d d d g  si t  t |  j d  |  j d  d d s t  t |  j d d d g  |  j d d d g  d d s t  t  j d d d d d d d d  }  t |  j |  d d d d d g d d s,t  t |  j d  |  j d  d d sYt  t |  j d d d g  |  j d d d g  d d st  t  j d d d d d d	 d d d d	  }  t |  j |  d d  d! d" d# g d d st  t |  j d  |  j d  d d s"t  t |  j d d d g  |  j d d d g  d d sat  t  j	 d d d d d d d d d$ d  }  t |  j |  d% d& d' d( d) g d d st  t |  j d  |  j d  d d st  t |  j d d d g  |  j d d d g  d d s*t  t  j
 d d d d d d d* d+ d$ d d, d	  }  t |  j |  d- d. d/ d0 d1 g d d st  t |  j d  |  j d  d d st  t |  j d d d g  |  j d d d g  d d st  d  S(2   NR
   iF   R   g333333?R'   gffffff?g?g?g      ?g      ?g      @g      ?i   g      @R$   gHz>i   i   g       @g333333?RQ   g      gL;u?g*P?g=d?go@g镲1@g-C6?iRU   g'?g4?gLt?g hM?gn:lm?RR   g?g`A?gGr?gxx[?g08?RS   gRT   g٤z(2?gMEҺr?gQo&f?gz&3?g-|}K?(   R   R\   RV   Rt   R%   R   R&   R]   R`   R^   R_   (   R    Ra   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_de_densityscale  sR    '$'*'*	'!	c          C` s  t  j d d d d }  t |  j d t j  s7 t  t |  j d  d t j  s\ t  t |  j d d	 g  d
 d g t j  s t  t |  j d d g  d
 d g t j  s t  t  j d d d d }  t |  j d  d t j  s t  t |  j d d g  d d g t j  s,t  t  j d d d d d d t j }  t |  j d  d t j  svt  t |  j d d g  d d g t j  st  d  S(   NgQ@g rh?R   g        g V7+@i   g;XYQ?g      ?g      @g2Νhp@gѬ-I?i   i   g      @gP^2R<?g, |@gÏ.7?R   g?g&?gC	@g5M?(	   R   R   R%   t   hubble_timeR   R=   R&   RM   R   (   R   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_age  s    %1%1%c          C` s   t  j d d d d }  t |  j d t j  s7 t  t |  j d d g  d d	 g t j  sh t  t |  j d
 d g  d d	 g t j  s t  d  S(   NgQ@g rh?R   g        gIƉdj@i   i   gmPF@gefj3H@g      ?g      @(	   R   R   R%   t   hubble_distanceR   R   R&   RN   RO   (   R   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_distmod(  s    c          C` s   t  j d d d d d }  t |  j d d g  d d	 g t j  sL t  t |  j d d g  d
 d g t j  s} t  d  S(   NiF   g?g?R   i    i2   id   g+09@g<OYgXG@gK~-H@(	   R   R\   R%   R;   R   R   R&   RN   RO   (   R   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_neg_distmod3  s
    c          C` s   t  j d d d d }  t |  j d t j t j d  sB t  t |  j |  j d   sc t  t |  j d d	 g  d
 d g t j t j d  s t  t |  j d d g  d
 d g t j t j d  s t  d  S(   NgQ@g rh?R   g        g.Q9i   i    i   i   gc֟z":gהE:g      ?g      @(	   R   R   R%   t   critical_density0R   RJ   RK   R&   RI   (   R   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_critical_density>  s    	!	'c       	   C` s   t  j d d d d d }  t j t   |  j d d  Wd  QXt |  j d d  |  j d d   so t  d } d } d t j	 } t |  j | |  |  s t  d  S(   Nid   g333333?g?R   g        i   i   i   i   i   i    g      ?g      @g?g	o@g%@gyg`K<@gE3e@(   i   i   (   i   i   i   (   i    i    i   g      ?i   (   i   i   i   g      @g?(   g	o@g%@gyg`K<@gE3e@(
   R   R\   R   R   R   R6   R%   R&   R   R   (   R   t   z1t   z2t   results(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_comoving_distance_z1z2N  s        c       	   C` sA  t  j d d d d }  t j t   |  j d d  Wd  QXt |  j d d  d
 t j  sf t	  d } d } t |  j
 | |  |  j | |   s t	  t  j d d d d d }  d  t j } t |  j | |  |  s t	  t  j d d d d d }  d } d! } d" t j } t |  j | |  |  s=t	  d  S(#   Nid   g333333?R   g        i   i   i   i   i   g꥓䄔@i    g      ?g      @g?gDܟ@g/d@gd(g~"G@ghb@g      ?g?g?gqqg}Z	o@g/w_@g֖&qJ@g]c: ߡ@(   i   i   (   i   i   i   (   i    i    i   g      ?i   (   i   i   i   g      @g?(   gDܟ@g/d@gd(g~"G@ghb@(   i    g?g?g      ?g?i   (   gqqg        g}Z	o@g/w_@g֖&qJ@g]c: ߡ@(   R   R   R   R   R   R8   R%   R   R   R&   R6   R\   (   R   R   R   R   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt&   test_comoving_transverse_distance_z1z2c  s8             c       
   C` s  t  j d d d d }  t j t  $ |  j d d g d d d	 g  Wd  QXt |  j d d  d
 t j  su t	  d  } d! } d" t j } t |  j | |  |  s t	  d } d# } d$ t j } t |  j d |  |  s t	  t  j
 d d d d d d d d  }  t |  j d d  d t j  s5t	  t  j
 d d d d d d d d  }  t |  j d d  d t j  st	  d  S(%   NgQ@g rh?R   g        i   i   i   i   i   gFde1@i    g      ?g      @g?g\_@@g]ޕ@gXJg-tkc@gV\@g?g?g0p9t@gcҎ@g,z@gHQT@R
   R   R'   gX`@id   gyl@(   i    i    i   g      ?i   (   i   i   i   g      @g?(   g\_@@g]ޕ@gXJg-tkc@gV\@(   g?g?g      ?g?i   (   g        g0p9t@gcҎ@g,z@gHQT@(   R   R   R   R   R   R:   R%   R   R   R&   R\   (   R   R   R   R   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt#   test_angular_diameter_distance_z1z2  s:    %        $$c          C` s   t  j d d d d }  t |  j d d g  d d g  sB t  t |  j d	 d
 g  d d g  sl t  t |  j d  d  s t  t |  j d
  d  s t  d  S(   NgQ@g rh?R   g        i   i   g-?g
@g      ?g      @(   R   R   R%   t   absorption_distanceR&   (   R   (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_absorption_distance  s    c          C` s  t  j d d d d d d t j d t j d t j  }  t |  j d  sR t  |  j	 sb t  |  j
 } t |  d	 k s t  | j t j k s t  t | d
 d
 d
 d
 g t j  s t  t |  j d  d d d s t  t |  j d  d d d st  t  j d d d d t j d t j d t j  }  |  j	 sOt  |  j
 d  k sdt  t  j d d d d t j d t j d
 d d g t j  }  |  j	 st  |  j
 } t |  d k st  | j t j k st  t | d
 d d g t j  st  t  j d d d d d t j d t j  d d }  t |  j d  sYt  |  j	 sht  |  j
 } t |  d k st  | j t j k st  t | d d d g t j  st  d  S(   NgQ@g rh?R   g333333@R   g@R   i    i   g        g      ?gC?R$   gư>i   g?g{Gz?g{Gz?i   g?g@gTX0n?gTX0n?(   R   R   R   R   R   R   R%   R   R&   t   has_massive_nuR   t   lenR5   t   nu_relative_densityt   None(   R   t   mnu(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_massivenu_basic  s>    %	(!	%	c          C` s  t  j d d d d g  }  t j d d d d d	 } t | j |   d
 d d d g t j d d sm t  t j d d d d d d d d t j	 d	 t j
  } t | j |   d d d d g t j d d s t  t j d d d d d d d d t j	 d t j
  } t | j |   d d d d g t j d d sGt  t j d d d d	 } t | j |   d d  d! d" g t j d d st  t j d d d d d d d t j	 d	 t j
  } t | j |   d# d$ d% d& g t j d d s t  t j d d d d d d d t j	 d t j
  } t | j |   d' d( d) d* g t j d d sjt  t j d d d+ d, d d	 } t | j |   d- d. d/ d0 g t j d d st  t j d d d+ d1 d d d d d t j	 d	 t j
  } t | j |   d2 d3 d4 d5 g t j d d s/t  t j d d d+ d6 d d d d d t j	 d t j
  } t | j |   d7 d8 d9 d: g t j d d st  t j d d d d+ d6 d d	 } t | j |   d; d< d= d> g t j d d st  t j d d d d+ d? d d d d d t j	 d	 t j
  } t | j |   d@ dA dB dC g t j d d sjt  t j d d d d+ d6 d d d d d t j	 d t j
  } t | j |   dD dE dF dG g t j d d st  t j d d d d+ d6 dH dI d d	 } t | j |   dJ dK dL dM g t j d d s;t  t j d d d d+ d6 dH dI d d d d d t j	 d	 t j
  } t | j |   dN dO dP dQ g t j d d st  t j d d d d+ d6 dH dI d d d d d t j	 d t j
  } t | j |   dR dS dT dU g t j d d s-t  t j d d d+ d1 dH dV d d	 } t | j |   dW dX dY dZ g t j d d st  t j d d d+ d1 dH dV d d d d d t j	 d	 t j
  } t | j |   d[ d\ d] d^ g t j d d st  t j d d d+ d1 dH dV d d d d d t j	 d t j
  } t | j |   d_ d` da db g t j d d stt  t j d d d dc d6 dd d dH dI d d	 } t | j |   de df dg dh g t j d d st  t j d d d dc d6 dd d dH dI d d d d d t j	 d	 t j
  } t | j |   di dj dk dl g t j d d sWt  t j d d d dc d6 dd d dH dI d d d dm d t j	 dn t j
  } t | j |   do dp dq dr g t j d d st  t j d d d d+ d6 ds dI d d	 } t | j |   dt du dv dw g t j d d s4	t  t j d d d d+ d6 ds dI d d d d d t j	 d	 t j
  } t | j |   dx dy dz d{ g t j d d s	t  t j d d d d+ d6 ds dI d d d dm d t j	 dn t j
  } t | j |   d| d} d~ d g t j d d s&
t  t j d d d d d t j	 d d d g t j
  } t | j |   d d d d g t j d d s
t  t j d d d d d t j	 d d d g t j
  } t | j |   d d d d g t j d d s t  t j d d d d d t j	 d d d g t j
  } t | j |   d d d d g t j d d smt  t j d d d d d d d t j	 d d d d g t j
  } t | j |   d d d d g t j d d st  d  S(   Ng      ?g       @g      @g      @g     R@g      ?g      ?R   g        gs+@g[
@g5@g](@R$   g-C6?g333333?R   i   R   gՖם@@gܨ@g̗8@gʱ@g333333?g?g      $@g50ϜO@gLiaޫ@g~(o@g)k4@ghv٨@g
ĳ@gm@ga:@g_oب@gó@gdk@g@gjC@gvW@gp(@gK9@RQ   ggͨ!@gֲ5@ggj+Y@gb*@gffffffg+y!@gWKlR@gnUL(@gda9a@ggMC@g]dX@gt_m)@gtr}h9@gV;C@gtL@gYJ@g߷^#@ggɾ+@g>]@g:o@g냸@g!2R@g#@gwj@gF
?@RR   g?gE@g}lyܱ@gH`9@g9ø@g:BǱ@gPi@gٵ@g;RƸ@gN]@gPr%b@gAWrİ@g^ȢZ@g333333?gf@g|J&\@g]'@g6.C$@gvze@g	[@gєA@gHZ!@gΰfC@g?FX@gRpP)@g>Z9@RS   RT   gvM'a@gT!@gyfF
@gu\@gH7\Φ@g'}α@gh@g,޸@i   g      @gD@gtDD@gP@gi@RU   gc0`ק@gGY-@g~a@gpo@g#|k@g4g\tN@g<@g,|@gc'x@gE(ɮ@g}lyN@gf@G@i    g_\n@g>Z@gʲ@g@i   gY^@g3H@gM>QL@gUNX]@i	   gc@g	iD@g՚@gh@g@g)@gc@gD@@g`}y%@(   RV   Rt   R   R\   R%   R4   R   R   R&   R   R   R   Rz   R]   R^   R{   R_   R`   (   Ra   t   cos(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_distances  s
   							!	!	!	$	$	'	*	*	$	'	'	-	$$	*	'	$	$	!	!	!	$	c          C` s  t  j d d d d d g  }  dA dB dC } t j d d d d
 d d d t j d t j  } | j sn t  | j	 d k s t  | | j	 t  j d d d d d g  } t
 | j |   | d d s t  t
 | j d d g  d d g d d s t  t j d d d d
 d d d t j d t j  } | | j	 t  j d d d d d g  } t
 | j |   | d d st  t  j d d  d! d" d# g  } t
 | j |   | d d st  t j d$ d% d d
 d d d t j d& t j  } | | j	 t  j d' d( d) d* d+ g  } t
 | j |   | d d sBt  t  j d, d- d. d/ d0 g  } t
 | j |   | d d st  t
 | j d d g  d1 d2 g d d3 st  t
 | j d d g  d4 d5 g d d3 st  t j d$ d% d d
 d d6 d t j d d& d g t j  } | | j	 t  j d7 d8 d9 d: d; g  } t
 | j |   | d d smt  t  j d< d= d> d? d@ g  } t
 | j |   | d d st  |  j t  j  }  t
 | j |   | d d st  t
 | j |   | d d s	t  d  S(D   Ng        g      ?g       @g      $@g     @@g      @g       @g      @g      &@g      @g     R@g      ?R   R   i   R   g      Y@i g    @i  g    @gʡye@R$   g{Gzt?g묈@gX9z@g+j@gDla@g/݌C@g"?gq'[?gguNڪ?g9RV?g5LT?gr"7?g      T@g333333?g{Gz?g_L<1@g:pX!@g R8_@gnLOX?gTr3 ?g}E?g5_+J\?gV`?gO e?g3qx?gyvk62?gL|@g-C6?g>(?gܪ?gRQ@gZN\b@gё\CR@gfaI@gL:,@gϟxƥ?g.[w?g0D]?g6\[%?gJ?g>M.?g      ?gF]tE?gUUUUUU?(   RV   Rt   R   R   R   R   R   R   R&   R   R%   R   R   R/   R   R   R   (   t   ztestt   nuprefacR   t	   nurel_expt   onu_exp(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_massivenu_density  s\    	$0$$!!!
$c       
   C` s  t  j }  t j } | j d  } t |  | j |  d d d sH t  t |  | j d t j	  d d d sv t  t |  | j d t j
  d d d s t  t |  | j d	 t j	  d
 d d s t  t |  | j d t j
 d d d d d st  t |  | j d t j
 d d d d d s:t  t |  | j d t j  d d d sht  t j t j  " |  | j d t j
 d d Wd  QXt j t j  " |  | j d t j
 d d Wd  QXd  S(   Ni   R$   g:0yE>i   g<X	@gư>g     @g|)?i   g]Cr?i  t   zmaxg?t   zming      @g7I!T@i.   gd?g      ?g      @(   R   t
   z_at_valueR   t   Planck13R;   R%   R&   RM   R   R=   R   R<   R9   RN   RO   R   R   t   CosmologyError(   R   R    t   d(    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_z_at_value  s*    		#c          ` s5  d }  d } d d l  } | j t j d	 | j } x | D]y \ } } | j d
  s: | | k rg q: n  t d j |   | |   } t |  t	 j
 | | d d d d s: t  q: Wd     f d     f d     f d   g } xG | D]? } | |   } t |  t	 j
 | | d d d d s t  q Wd S(   un   
    Calculate values from a known redshift, and then check that
    z_at_value returns the right answer.
    g      ?u   Oku   angular_diameter_distance_z1z2u   cloneu   de_density_scaleu   wi    Nt	   predicateu   _u   Round-trip testing {0}R   g      ?R$   g:0yU>g       @c         ` s   t  j j |     S(   N(   R   R   R6   (   R   (   R   (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s    c         ` s   t  j j |     S(   N(   R   R   R8   (   R   (   R   (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s    c         ` s   t  j j |     S(   N(   R   R   R:   (   R   (   R   (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyR     s    (   u   Oku   angular_diameter_distance_z1z2u   cloneu   de_density_scaleu   w(   t   inspectt
   getmembersR   R   t   ismethodt
   startswitht   printRx   R%   R   R   R&   (   Ra   t   skipR   Rd   Rk   t   funct   fvalt	   func_z1z2(    (   R   sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   test_z_at_value_roundtrip  s,       (E   t
   __future__R    R   R   R   t   ioR   R   t   numpyRV   t    R   R   t   tests.helperR   R%   t   utils.compatR   R	   R   t   scipyt   ImportErrort   Falset	   HAS_SCIPYt   TrueR#   R3   t   markt   skipifRP   Rj   Rs   Rw   R}   R~   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sE   lib/python2.7/site-packages/astropy/cosmology/tests/test_cosmology.pyt   <module>   sj   "
	%	, ?f		A	
+C	*"	%2.(*F"