zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
U
­ý°dã @sèddlmZddlZddlZddlmZddlmZddl    m
Z dd„Z ej ddd    gd
d d „ƒZej e d ƒe dƒdgd
dd„ƒZej ejdddejdd    dejdddejdd dddejgddgd
dd„ƒZGdd„dƒZdS)é)Ú permutationsN)Ú IntervalTree)ÚIS64cCs tjjt dd}tj||dS)z‰
    Skip parameters in a parametrize on 32bit systems. Specifically used
    here to skip leaf_size parameters related to GH 23440.
    z$GH 23440: int type mismatch on 32bit©Úreason)Úmarks)ÚpytestÚmarkÚskipifrÚparam)r r©r úgd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexes/interval/test_interval_tree.pyÚ skipif_32bit srÚint64Úfloat64Úuint64)ÚparamscCs|jS©N©r ©Úrequestr r r Údtypesrééé
cCs|jS)zd
    Fixture to specify IntervalTree leaf_size parameter; to be used with the
    tree fixture.
    rrr r r Ú    leaf_sizesré©réécCs|j}t||d|dS)Nr)r)r r)rrÚleftr r r Útree#s    r!c @s¬eZdZdd„Zej dddg¡dd„ƒZdd    „Zej dddg¡d
d „ƒZ    d d „Z
ej de dƒe dƒe dƒdg¡dd„ƒZ ej de jdddgdde  dddg¡dfe jdddgdde  dddg¡dfe  dde jg¡e  dde jg¡dfe jdddgdde  dddg¡dfe  dde jg¡e  dde jg¡dfg¡ej dd d!„eedƒƒDƒ¡d"d#„ƒƒZej dd$d!„eedƒƒDƒ¡d%d&„ƒZej d'e jgdde jgddfe jdgdde jdgddfe  e jg¡e  e jg¡fe  e jgd¡e  e jgd¡fg¡d(d)„ƒZejje d*d+d,d-„ƒZejje d*d+ej de j d.gd.d/gd0fe j d1gd1d2gd1fd1d2gd2e jgd0fd.d/gd/e jgd/fg¡d3d4„ƒƒZd5S)6ÚTestIntervalTreec    Csf| t dddg¡¡}tjdddgdd}t ||¡tjtd    d
| t d g¡¡W5QRXdS) Nçð?g@ç@rréÿÿÿÿÚintprú6'indexer does not intersect a unique set of intervals'©Úmatchg@)Ú get_indexerÚnpÚarrayÚtmÚassert_numpy_array_equalrÚraisesÚKeyError)Úselfr!ÚresultÚexpectedr r r Útest_get_indexer1s ÿz!TestIntervalTree.test_get_indexerz!dtype, target_value, target_dtype)rlr)rr%rc    Csftjddg|dtjddg|d}}t||ƒ}| tj|g|d¡}tjdgdd}t ||¡dS)Nrrrrr%r&)r+r,rr*r-r.)    r1rÚ target_valueÚ target_dtyper Úrightr!r2r3r r r Útest_get_indexer_overflow;s
&
z*TestIntervalTree.test_get_indexer_overflowcCsÄ| t dddg¡¡\}}|dd…}tjdgdd}t ||¡t |dd…¡}tjddgdd}t ||¡t |dd…¡}tjd    gdd}t ||¡|}tjd
gdd}t ||¡dS) Nr#ç@r$rrr&rrr%r)Úget_indexer_non_uniquer+r,r-r.Úsort)r1r!ÚindexerÚmissingr2r3r r r Útest_get_indexer_non_uniqueGs    z,TestIntervalTree.test_get_indexer_non_uniquec CsŠtjddg|dtjddg|d}}t||ƒ}tj|g|d}| |¡\}}    tjdgdd}
t ||
¡tjdgdd} t |    | ¡dS)Nrrrrrr%r&)r+r,rr:r-r.) r1rr5r6r r7r!ÚtargetZresult_indexerZresult_missingZexpected_indexerZexpected_missingr r r Ú$test_get_indexer_non_unique_overflowZs&
 z5TestIntervalTree.test_get_indexer_non_unique_overflowc    Cs°tjdddg|d}t||dƒ}tjtdd| t dg¡¡W5QRX| t dg¡¡\}}t |¡}tjdddgdd}t     
||¡|}tjgdd}t     
||¡dS)    Nrrrr'r(çà?rr&) r+r,rrr/r0r*r:r;r-r.)r1rr r!r<r=r2r3r r r Útest_duplicatesjsÿ
 z TestIntervalTree.test_duplicatesrrrédi'cCs¢tjddd}| d¡}dt d¡ d¡}t||d||d}t || |d¡¡|jr`|n|}t || |d    ¡¡|j    r„|n|}t || |d¡¡dS)
Nièrrr&r%rA)ÚclosedrgÐ?ç)
r+ÚarangeZastypeZonesrr-r.r*Z closed_leftZ closed_right)r1rDrÚxÚfoundÚ    not_foundr!r3r r r Útest_get_indexer_closed|s
z(TestIntervalTree.test_get_indexer_closedzleft, right, expectedrrrrrrrTFÚorderccs|]}t|ƒVqdSr©Úlist©Ú.0rGr r r Ú    <genexpr>—szTestIntervalTree.<genexpr>cCs,t|||||d}|j}||ks(t‚dS)N©rD©rÚis_overlappingÚAssertionError)r1rDrKr r7r3r!r2r r r Útest_is_overlappings z$TestIntervalTree.test_is_overlappingccs|]}t|ƒVqdSrrLrNr r r rPžscCsPtjdddt dd¡}}t|||||d}|j}|dk}||ksLt‚dS)    z*shared endpoints are marked as overlappingrrrrrrQZbothN)r+rFrrSrT)r1rDrKr r7r!r2r3r r r Útest_is_overlapping_endpointsžs
z.TestIntervalTree.test_is_overlapping_endpointsz left, rightcCs t|||d}|jdkst‚dS)NrQFrR)r1rDr r7r!r r r Útest_is_overlapping_trivial¨s z,TestIntervalTree.test_is_overlapping_trivialzGH 23440rcCs\tjdddt tj¡jgd}}t||ƒ}|jj}dt tj¡jd}||ksXt‚dS)Néerré2r)    r+rFZiinforÚmaxrÚrootÚpivotrT)r1r r7r!r2r3r r r Útest_construction_overflow¶s
$
z+TestIntervalTree.test_construction_overflowr#r9rEgÀgð¿cCs*t|d|dƒ}|jj}||ks&t‚dS)NrX)rr[r\rT)r1r r7r3r!r2r r r Ú!test_inf_bound_infinite_recursionÁs z2TestIntervalTree.test_inf_bound_infinite_recursionN)Ú__name__Ú
__module__Ú __qualname__r4rr    Z parametrizer8r>r@rBrrJr+r,ÚnanrÚrangerUrVrWr
rr]ZxfailÚinfr^r r r r r"0sh
þ
þ
ÿ
$$$$$ûþ
 
    "üþ    
 
 
üþ    r")Ú    itertoolsrÚnumpyr+rZpandas._libs.intervalrZ pandas.compatrZpandas._testingZ_testingr-rZfixturerrrFr,rbr!r"r r r r Ú<module>s&        
 
   üÿ