ó
Ąź\c           @   sg   d  Z  d d l m Z d d l m Z m Z m Z m Z m Z d d l	 Z d d l
 m Z d   Z d S(   sL  
unit test describing the hyperbolic half-plane with the Poincare metric. This
is a basic model of hyperbolic geometry on the (positive) half-space

{(x,y) \in R^2 | y > 0}

with the Riemannian metric

ds^2 = (dx^2 + dy^2)/y^2

It has constant negative scalar curvature = -2

https://en.wikipedia.org/wiki/Poincare_half-plane_model
i˙˙˙˙(   t   diag(   t   twoform_to_matrixt   metric_to_Christoffel_1stt   metric_to_Christoffel_2ndt   metric_to_Riemann_componentst   metric_to_Ricci_componentsN(   t   ImmutableDenseNDimArrayc          C   s  t  j j }  t  j j j } | j } | j } | j } |  | |  |  | |  | d } t |  } t	 | d | d  } | | k s t
  t |  } | d d k są t
  | d | d k sĚ t
  | d	 | d k sç t
  | d
 d k sý t
  | d | d k st
  | d d k s.t
  | d d k sDt
  | d | d k s^t
  t |  }	 |	 d d k st
  |	 d | d k st
  |	 d | d k sśt
  |	 d d k sĚt
  |	 d | d k sçt
  |	 d d k sýt
  |	 d d k st
  |	 d | d k s-t
  t |  }
 |
 d d k sOt
  |
 d d k set
  |
 d d k s{t
  |
 d d k st
  |
 d d k s§t
  |
 d | d k sÂt
  |
 d | d k sÜt
  |
 d d k sňt
  |
 d d k st
  |
 d  | d k s"t
  |
 d! | d k s=t
  |
 d" d k sSt
  |
 d# d k sit
  |
 d$ d k st
  |
 d% d k st
  |
 d& d k sŤt
  t |  } | d' | d k sŇt
  | d( d k sčt
  | d) d k sţt
  | d* | d k st
  | t | d d d | d g d+  k sJt
  | d, | d- | d } | d k svt
  | d d k st
  d  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   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   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   (   t   sympyt   diffgeomt   TensorProductt   rnt   R2t   yt   dyt   dxR   R    t   AssertionErrorR   R   R   R   R   (   t   TPR   R   R   R   t   gt   automatt   matt   gamma1t   gamma2t   Rmt   Rict   R(    (    sI   lib/python2.7/site-packages/sympy/diffgeom/tests/test_hyperbolic_space.pyt   test_H2   sj    			$1(   t   __doc__R   R    t   sympy.diffgeomR   R   R   R   R   t   sympy.diffgeom.rnt   sympy.tensor.arrayR   R   (    (    (    sI   lib/python2.7/site-packages/sympy/diffgeom/tests/test_hyperbolic_space.pyt   <module>   s
   (