
    DUf,                     x    d dl Z d dlZd dlZddlmZmZ d dlZd dlmZ d Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd ZdS )    N   )testdirtest_tempdir)Pathc                     d}|                                  D ][}|                                }t          |          dk    r*|                                }d                    |          dz   }||z  }\|S )z
    Replaces spaces with tabs, removes spurious newlines, and lstrip()s each
    line. Makes it really easy to create BED files on the fly for testing and
    checking.
     r   	
)
splitlinesstriplensplitjoin)xsis      Y/var/www/html/software/conda/lib/python3.11/site-packages/pybedtools/test/test_helpers.pyfixr   	   sp     	A\\^^  GGIIq66Q;;GGIIIIaLL4	QH    c                     t          j        d          } t          j        d          }t          dd                                           t           j                            |           sJ t           j                            |          rJ t           j                            d          rJ t          j        d           d S )Nzx.bama.bedztiny.txtw)
pybedtoolsexample_filenameopenclosehelpersisBAMosunlink)bamnotabams     r   
test_isBAMr#      s    

%g
.
.C)'22GS!!!##C(((((!''00000!''
33333Ijr   c                     t          j                     t          t                    dz  } | j                            dd           |                                  t          j        	                    |           sJ t          j
        t                     t          j        t          j                            t          dd                    }t          j        t          j                            t          dd                    }|                    |          }t          j        d           t          j        	                    |           sJ t          j        	                    |j                  rJ t          j        d           t          j        	                    |           rJ t          j        	                    |j                  sJ t          j        	                    |j                  sJ d	S )
z0
    make sure the tempdir and cleanup work
    zpybedtools.TESTING.tmpT)parentsexist_okdatar   zb.bed)verbose
remove_allN)r   cleanupr   r   parentmkdirtouchr   pathexistsset_tempdirBedToolr   r   	intersectfn)testfnabcs       r   test_cleanupr9   $   s    ,"::F
Mt444
LLNNN7>>&!!!!!<((( 	27<<AABBA27<<AABBA	AA t$$$$7>>&!!!!!w~~ad##### $''''w~~f%%%%% 7>>!$7>>!$r   c                      t           j                            ddd           t           j        j        ddgk    sJ t           j                            ddd           t           j        j        g dk    sJ d S )NTzbedtools v2.28)force_checkoverrider(         z#bedtools debian/2.28.0+dfsg-2-dirty)r=   r>   r   )r   r   _check_for_bedtoolssettingsbedtools_version r   r   test_version_checkrC   R   s    **#3T +    /Ar7::::**#HRV +    /:::======r   c                     t           j                            t          j                    d          } ddlm}m} t          j	        |          5   |dg| f  d d d            n# 1 swxY w Y   t          j
        d          }t          j        }t          |                                d          t          _        |t          _        t          j        d           t          j
        d          }t          j	        t                     5  |                    |           d d d            n# 1 swxY w Y   t          j                     t          j
        d          }|                    |d	          |k    sJ d S )
Nztest.outputr   )call_bedtoolsBEDToolsErrorintersectBer   r   nonexistentT)u)r   r/   r   r   get_tempdirpybedtools.helpersrE   rF   pytestraisesexample_bedtoolsysstderrr   _tmpset_bedtools_pathNotImplementedErrorr3   )tmprE   rF   r6   orig_stderrs        r   	test_callrV   ]   s   
',,z-//
?
?C????????	}	%	% / /-../ / / / / / / / / / / / / / / 	"7++A *Kaffhh$$CJCJ ///"7++A	*	+	+  	A               """"7++A;;qD;!!Q&&&&&&s$   	A##A'*A'D))D-0D-c            
         t          j        t                    5  t          j        ddd           d d d            n# 1 swxY w Y   t          j        t
                    5  t          j        dd           d d d            n# 1 swxY w Y   	 t          t          j        d                     t          t          j        d                     t          j        d          t          j        d          k    sJ t          j        d          } | d         d	k    sJ t          j        | d
          }d}t          |          
                                }t          |           ||k    sJ t          j        | d           }d}t          |          
                                }t          |           ||k    sJ t          j        t                    5  t          j        di t          ddd           d d d            n# 1 swxY w Y   t          j        d
           d S # t          $ r# t          j                            d           Y d S w xY w)Ndm3z
wrong pathwrongtoo)mysqlfetchchromsizesr   )timeouthg17chr1)r   iazhg17.genome)r4   zchr10	135413628
rH   missing)genomerZ   r[   z7mysql error -- test for chromsizes from UCSC didn't runrB   )rL   rM   OSErrorr   get_chromsizes_from_ucsc
ValueErrorprint
chromsizeschromsizes_to_filer   readlinedictr   r    rO   stdoutwrite)r]   r4   expectedresultss       r   test_chromsizesrm   u   s!   	w		 
 
+z	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
z	"	" > >+E1====> > > > > > > > > > > > > > > Tj#E**+++j1%88999$U++z/R0
 0
 
 
 
 
 $V,,F|~----*4MBBB'r((##%%g7"""" *4D999'r((##%%g7""""]7## 	 	/  fM9UUU  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 		-      T T T
RSSSSSSTsX   >AA"BB	B	E	H) "H<H) HH) HH) ))IIc                      ddl m}  t          j        d          }|                    | d          }t          d          }t          |          |k    sJ d S )Nr   )centerr   
   )widthzv
    chr1	45	55	feature1	0	+
    chr1	145	155	feature2	0	+
    chr1	320	330	feature3	0	-
    chr1	920	930	feature4	0	+)pybedtools.featurefuncsro   r   rN   eachr   str)ro   r6   r7   rk   s       r   test_ff_centerru      sl    ......"7++A	vR  A	! H q66Xr   c                     dt          j                    v sJ t          j        d          } | t          j                            t          dd          k    sJ t          j        d          }|j        t          j                            t          dd          k    sJ t          }t          j        |          5  t          j        d           d d d            n# 1 swxY w Y   t          j        |          5  t          j        d           d d d            n# 1 swxY w Y   t          j        |          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nr   r'   rH   )r   list_example_filesr   r   r/   r   r   rN   r4   FileNotFoundErrorrL   rM   r1   )a_fnr6   es      r   test_getting_example_bedsr{      s   j3555555&w//D27<<999999"7++A427<<999999 	A	q		 3 3#M2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	q		 2 2"=1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	q		 . .}---. . . . . . . . . . . . . . . . . .s6   8CC C8DD D8EE!Ec                  0    t          j        d           d S )NTr)   )r   r+   rB   r   r   teardownr}      s    $''''''r   )r   rO   r   tfuncsr   r   rL   pathlibr   r   r#   r9   rC   rV   rm   ru   r{   r}   rB   r   r   <module>r      s        



 				 ) ) ) ) ) ) ) )         "       \> > >' ' '0'T 'T 'TT  . . .&( ( ( ( (r   