
    HR-e                        d Z ddlZddlZddlmZ ddlmZm	Z	 ddl
mZ  G d de          Z G d de          Zej                            e d	
          d             Zej                            e d	
          d             ZdS )z0Testing :mod:`astropy.cosmology.flrw.lambdacdm`.    N)FLRWwCDM)	HAS_SCIPYc                   (     e Zd ZdZ fdZd Z xZS )W1z_
    This class is to test whether the routines work correctly if one only overloads w(z).
    c                 b    t                                          ddddd           d| _        d S )N     Q@HzG?\(\?        test_cos)Tcmb0name)super__init___w0self	__class__s    Clib/python3.11/site-packages/astropy/cosmology/flrw/tests/test_w.pyr   zW1.__init__   s1    tT:FFF    c                 :    | j         t          j        |          z  S Nr   np	ones_liker   zs     r   wzW1.w       x",q//))r   __name__
__module____qualname____doc__r   r    __classcell__r   s   @r   r   r      sQ             * * * * * * *r   r   c                   (     e Zd ZdZ fdZd Z xZS )W1nuzSimilar, but with neutrinos.c                 ~    t                                          dddddt          j        z  d           d| _        d S )	Nr	   r
   r   g      @g?test_cos_nu)r   m_nur   g)r   r   ueVr   r   s    r   r   zW1nu.__init__#   sD    $CcADj} 	 	
 	
 	
 r   c                 :    | j         t          j        |          z  S r   r   r   s     r   r    zW1nu.w)   r!   r   r"   r(   s   @r   r*   r*       sM        &&    * * * * * * *r   r*   ztest requires scipy)reasonc                     g d} t          ddddd          }t          j        |                    |           g dt          j        z  d	
          sJ t                      }t          j        |                    |           g dt          j        z  d	
          sJ t          j        |                    d          dd
          sJ t          j        |                    ddg          ddgd
          sJ t          j        |                    ddg          ddgd
          sJ t          j        |                    d          dd
          sJ t          j        |                    ddg          ddgd
          sJ d S )N)g?g?g333333?g?F   r
   r   r   r   )H0Om0Ode0w0r   )g     |@gfffffܠ@gf@g@gMbP?)rtol      ?g	{ϗ?gh㈵>      ?gkWE?g,Q4J?gJL?gZ<'Ĳ?g-C6?g3?)	r   r.   allcloseluminosity_distanceMpcr   efunc	inv_efuncde_density_scale)r   cosmos     r   test_de_subclassrB   2   s   A BDtC@@@E:!!!$$&E&E&E&MTX     
 DDE:!!!$$&E&E&E&MTX      :ekk#&&4@@@@@@:ekk3*--
L/IPTUUUUUU:eoosCj11J
3KRVWWWWWW:e,,S11:DIIIIII:Sz**Z,D4       r   c                  n   d} t          j        g d          }t                      }t          j        |                    |           d|                    |           z            sJ t          j        |                    |          d|                    |          z            sJ t                      }t          j        |                    |           d|                    |           z            sJ t          j        |                    |          d|                    |          z            sJ dS )z1Test that efunc and inv_efunc give inverse valuesr:   )r:   r9   g       @g      @r9   N)r   arrayr   r.   r;   r>   r?   r*   )z0r   rA   s      r   test_efunc_vs_invefunc_flrwrF   M   s    
B
%%%&&A
 DDE:ekk"oosU__R-@-@'@AAAAA:ekk!nncEOOA,>,>&>?????FFE:ekk"oosU__R-@-@'@AAAAA:ekk!nncEOOA,>,>&>???????r   )r&   numpyr   pytestastropy.unitsunitsr.   astropy.cosmologyr   r   "astropy.utils.compat.optional_depsr   r   r*   markskipifrB   rF    r   r   <module>rP      s-   7 6
            ( ( ( ( ( ( ( ( 8 8 8 8 8 8
* 
* 
* 
* 
* 
* 
* 
*
* 
* 
* 
* 
*4 
* 
* 
*$ 	M*?@@  A@4 	M*?@@@ @ A@@ @ @r   