
    j                         d dl Zd dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZmZmZmZ ej                   j#                  dddddd	 ej$                  g d
      d
fg      d        Zd Zd Zd Zd Zy)    N)
MouseEvent)get_dir_vectorLine3DCollectionPoly3DCollection_all_points_on_planezzdir, expected)x   r   r   )yr   r
   r   )zr   r   r
   )Nr   r   r   )r
         r   )         c                 ~    t        |       }t        |t        j                        sJ t	        j
                  ||       y )N)r   
isinstancenpndarraynptestassert_array_equal)zdirexpectedress      ^/var/www/kinometric/venv/lib/python3.12/site-packages/mpl_toolkits/mplot3d/tests/test_art3d.pytest_get_dir_vectorr       s2     
Cc2::&&&
c8,    c            	      n   t        j                         } | j                  d      }d|_        d|_        d|_        d|_        g d}|j                  |||      }| j                  j                          |j                         }|j                  j                  |      }dD ]  }||_        d|_        | j                  j                          t        d      D ]Z  }t        d	| j                  g||d d f    }|j                  |      \  }	}
|	du sJ t!        |
d
         dk(  sJ |
d
   d   |k(  rZJ   y )N3d
projectionr   iT)r   r
   r   r   r   )iir   button_press_eventindr
   )pltfigureadd_subplotrollelevazimstalescattercanvas	draw_idleget_offsets	transData	transformranger   containslen)figaxr   scatter_collectionscatter_offsetscatter_locationr-   ieventr6   r'   s              r   'test_scatter_3d_projection_conservationr?      s<   
**,C	D	)BBGBGBGBHAAq!,JJ (335N||--n=  &

q 	&A 3SZZ 8 0A 68E.77>MHct###s5z?a'''u:a=A%%%	&&r!   c                     t        j                  g dd      t        j                  g dd      fg} t        j                  ddgd      t        j                  ddgd      t        j                  ddgd      g}t        j                         }|j	                  d      }|j                  t        |               |j                  |d	d
i t        j                          y )N)        rA   rA   float)dtype)      ?rD   rD   rA   rD   r#   r$   visibleF)	r   fromiterr(   r)   r*   add_collectionr   r/   draw)lcpcr8   r9   s       r   test_zordered_errorrK   A   s    ;;g6;;g68 
9B
++sCj
0
++sCj
0
++sCj
0
2B **,C	D	)B&r*+BJJ"E"HHJr!   c            	         t        j                  g dg dg dg dg      } t        | j                   rJ t        j                  g dg dg dg dg      } t        | j                   sJ t        j                  g dg dg dddt         j                  gg      } t        | j                   sJ t        j                  g dg dg dg      } t        | j                   sJ t        j                  g dg dg dg dg      } t        | j                   sJ t        j                  g dg d	g d
g dg dg dg      } t        | j                   sJ t        j                  g dg dg dg dg dg      } t        | j                   sJ y )Nr   r	   r   r   r   )r   r   r   )r   r   r   )r   r   )r
   r   )r
   rN   r   )r   r   r   )r
   r
   r   )r
   r   r   )r   arrayr   Tnan)pointss    r   test_all_points_on_planerS   P   s@   XXy)Y	BCF#VXX... XXy)Y	BCF*** XXy)YArvvGHF*** XXy)Y78F*** XXy)Y	BCF*** XXz:z )Y8 9F*** XXy)Y	9MNF***r!   c                      d} t        | gdd      }t        j                         }|j                  d      }|j	                  |       t        j
                          y )N)r   )r   r   r   )r   r   r   )r   r   r   rT)
edgecolorsshader#   r$   )r   r(   r)   r*   add_collection3drH   )verticesshaper8   r9   s       r   test_generate_normalsr[   o   sI    ;HhZCtDE
**,C	D	)BHHJr!   )numpyr   numpy.testingtestingr   pytestmatplotlib.pyplotpyplotr(   matplotlib.backend_basesr   mpl_toolkits.mplot3d.art3dr   r   r   r   markparametrizerO   r    r?   rK   rS   r[    r!   r   <module>rg      s        /  )RXXi)$, -- &F+>r!   