
    瞤d                         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Z	 G d dej
                  Zed	k    r ej                     dS dS )
    )absolute_importN   )	PhyloTreeNCBITaxa)	ncbiqueryztest_tmp/testdb.sqlitec                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )Test_ncbiqueryc                     t           j                            t                    st	          j        t                     d S d S N)ospathexistsDATABASE_PATHr   	update_db)selfs    8lib/python3.11/site-packages/ete3/test/test_ncbiquery.pytest_00_update_databasez&Test_ncbiquery.test_00_update_database   s9    7>>-(( )-((((() )    c                    t          dd           }|                    t                     |                     |j        d           |dz  j        }|                     |j        d           |                     |j        d           |                     |j        d	           |                     |j        g d
           |                     |j	        g d           |dz  }|                     |j        d           |                     |j        d           |                     |j        d           |                     |j        g d           |                     |j	        g d           d S )Nz((9598, 9606), 10090);c                     | S r    names    r   <lambda>z7Test_ncbiquery.test_01tree_annotation.<locals>.<lambda>   s    T r   sp_naming_functiondbfileEuarchontoglires9606	Homininae* 	subfamily)rootcellular organisms	EukaryotaOpisthokontaMetazoa	Eumetazoa	BilateriaDeuterostomiaChordataCraniata
VertebrataGnathostomata
TeleostomiEuteleostomiSarcopterygiiDipnotetrapodomorpha	TetrapodaAmniotaMammaliaTheriaEutheriaBoreoeutheriar   PrimatesHaplorrhiniSimiiformes
Catarrhini
Hominoidea	Hominidaer!   )    
  邁  鸁    齁      ] >  `  B C _   l         $  R " $  Q  6%   %  r"   Homo sapiens%  species) r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r   r:   r;   r<   r=   r>   r?   r!   Homor]   ) r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r"   i%  r^   )
r   annotate_ncbi_taxar   assertEqualsci_nameuptaxidranknamed_lineagelineage)r   thomihumans       r   test_01tree_annotationz%Test_ncbiquery.test_01tree_annotation   s   +@Q@QRRRA...QZ!3444fH=DT]K000TZ(((TY,,,T'  *v  *v  *v  w  w  wT\  $t  $t  $t  v  v  vfHEU^^444U[$'''UZ+++U(  +Q  +Q  +Q  R  R  RU]  %A  %A  %A  B  B  B  B  Br   c                 `    t          dd           }|                    t                     d S )Nz((9606, (9598, 9606)), 10090);c                     | j         S r   r   )xs    r   r   z2Test_ncbiquery.test_ncbi_compare.<locals>.<lambda>&   s
    RSRX r   r   r   )r   ra   r   )r   ri   s     r   test_ncbi_comparez Test_ncbiquery.test_ncbi_compare%   s6    3HXHXZZZA.....r   c                    t          t                    }|                    ddg          }|                     |d         d           |                     |d         d           |                    ddg          }|                     |d         dg           |                     |d         dg           |                    d	g          }|                     t          |d	                   t          d
g                     |                    dd          }|                     t          |          t          g d                     |                    dd          }|                     t          |          t          g d                     |                    ddd          }|                     t          |          t          ddg                     d S )Nr   r    7507S  zMantis religiosar^   r]   zhomo sapiensBacteriar   9605T)intermediate_nodes)r^     &O i( (  i* * F)rw   rx   ry   rz   r{   9596r_   )rv   
rank_limiti}%  i~%  )r   r   get_taxid_translatorrb   get_name_translatorsetget_descendant_taxa)r   ncbiid2namename2idouts        r   test_ncbiqueryzTest_ncbiquery.test_ncbiquery*   s   =)))D''(899GWT]$6777WT]N333&&(:N'KLLGW/04&999W^,tf555&&
|44G 	S,--sA3xx888

"
"6d
"
C
CC 	SXXs#e#e#effggg

"
"6e
"
D
DCSXXs#M#M#MNNOOO

"
"6ePY
"
Z
ZCSXXsD$<0011111r   c                 V   t          t                    }|                    g d          }|                    g d          }|                     t	          |                                          ddg           |                     t	          |                                          g d           |                     |                    dg                              d	          d
           dD ]5}|                    |d          }|                    |g          }|                    |                    |                    }|                    t          t          t          |                    |                                        }|                     t          |                                          t          |                                                     |                     t          |                                          t          |                                                     |                     t          |                                          t          |                                                     |                    |d          }|                    |d          }|                    |d          }	|                     |d         d           |                     |d         d           |                     |	d         d           7d S )Nr   )r^   rs   r\   )r^   rs   i  rr   r    )678rr   r    42099   )formatz
1223560:1;)r\   rW   9443T)return_tree)unrootedrfg        )r   r   get_topologyrb   sortedget_leaf_nameswriter   listmapstrr   compare)
r   r   t1t2targett3t4diffs1diffs2diffs3s
             r   test_get_topologyz Test_ncbiquery.test_get_topologyG   s   =)))D			---	.	.B			,,,	-	-BVB--//00662BCCCVB--//002I2I2IJJJ 	T&&y1177q7AA<PPP ' * *##F#==bfX&&bT55f==>>bT#c4+C+CF+K+K"L"LMMNNb
s2,,..//R5F5F5H5H1I1IJJJ
s2,,..//R5F5F5H5H1I1IJJJ
s2,,..//R5F5F5H5H1I1IJJJzz"tz,,fzz"tz,,fzz"tz,,f
vd|S)))
vd|S)))
vd|S))))* *r   c                     t          t                    }|                    d          }|                     |g d           |                    d          }|                     |g d           d S )Nr   i )
r@   rA   r   i5 i  i i i i) i	 245018)r   r   get_lineagerb   )r   r   r   r   s       r   test_merged_idzTest_ncbiquery.test_merged_idc   sx    =)))D			&	!	!BR^^^___			(	#	#BR^^^_____r   N)	__name__
__module____qualname__r   rl   rp   r   r   r   r   r   r   r	   r	   
   sv        ) ) )B B B&/ / /
2 2 2:* * *8` ` ` ` `r   r	   __main__)
__future__r   r   unittest r   r   ncbi_taxonomyr   r   TestCaser	   r   mainr   r   r   <module>r      s    & & & & & & 				  " " " " " " " " % % % % % %(^` ^` ^` ^` ^`X& ^` ^` ^`@ z(-///// r   