
    tfoJ                     b   d dl Z d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 d dl2m3Z3m4Z4  e
 e	d	            Z5d
 Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd ZFd ZGd ZHd ZId ZJd ZKd  ZLd! ZMd" ZNd# ZOd$ ZPd% ZQd& ZRd' ZSd( ZTd) ZUd* ZVd+ ZWd, ZXd- ZYd. ZZd/ Z[d0 Z\d1 Z]d2 Z^d3 Z_d4 Z`d5 Zad6 Zbd7 Zcd8 Zdd9 Zed: Zfd; Zgd< Zhd= Zid> Zjd? Zkd@ Zly)A    N)starmap)raises)partial)Random)dumpsloads)&removegroupbymerge_sortedconcatconcatv
interleaveunique
isiterablegettermapcat
isdistinctfirstsecondnthtaketaildrop	interposegetrestlastconsfrequenciesreducebyiterate
accumulatesliding_windowcount	partitionpartition_alltake_nthpluckjoindifftopkpeekpeeknrandom_sample)addmul__no__default__c                     | S N xs    d/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/toolz/tests/test_itertoolz.pyidentityr8      s    H    c                     | dz  dk(  S N   r   r4   r5   s    r7   isevenr=          q5A:r9   c                     | dz  dk(  S )Nr<      r4   r5   s    r7   isoddrA       r>   r9   c                     | dz   S Nr@   r4   r5   s    r7   incrD   $       q5Lr9   c                     d| z  S )Nr<   r4   r5   s    r7   doublerG   (   rE   r9   c            	          t        t        t        d            } t        |       t        usJ t	        |       t	        t        t        t        d                  k(  sJ y )N   )r	   r=   rangetypelistfilterrA   )rs    r7   test_removerO   ,   sF    vuQx A7$7d6%q23333r9   c                  @    t        t        g d      ddgddgdk(  sJ y )Nr@   r<         r<   rS   r@   rR   TF)r
   r=   r4   r9   r7   test_groupbyrU   2   s$    6<(Aq61a&,IIIIr9   c                      t        dg d      ddgddgdk(  sJ t        dgg d      ddgddgdk(  sJ t        ddgg d      ddgddgdk(  sJ y )	Nr   )r@   r<   r@   rR   r<   r<   r<   rS   rW   rX   rY   rZ   )r@   )r<   ))r@   r@   rY   )r
   r4   r9   r7   test_groupby_non_callabler\   6   s    167VV	   A389	!! ! ! Aq6;<&!&!	## # #r9   c            	      X   t        t        g dg d            g dk(  sJ t        t        g dg d            g dk(  sJ t        t        dgddgd	gg             g d
k(  sJ t        t        g dg dg d             g dk(  sJ t        t        g dg dd             g dk(  sJ t        t        dd	gdd	gd             g dk(  sJ dj                  t        ddd            dk(  sJ dj                  t        dddt                    dk(  sJ dj                  t        dddd             dk(  sJ t        t        dgg dt                    g d
k(  sJ g dg dg dg} t        t        | dd  i      g d!k(  sJ t        t                     g k(  sJ t        t        g d            g dk(  sJ t        t        g d"dd	g            g d#k(  sJ t        t        g d"dd	gt                    g d#k(  sJ t        t        dd$gdgdd%gd	d&gt                    g d'k(  sJ y )(Nr@   r<   rR   )r@   r@   r<   r<   rR   rR   )r@   rR   rI   )r<   rS      r@   r<   rR   rS   rI   r_   r@   r<   rS   rR   rQ   )rI   rR   r@   )r_   rS   rR   c                     |  S r3   r4   r5   s    r7   <lambda>z#test_merge_sorted.<locals>.<lambda>I   s    A2 r9   key)r_   rI   rS   rR   rR   r@   )r<   r@   rR   c                     | dz  S NrR   r4   r5   s    r7   rb   z#test_merge_sorted.<locals>.<lambda>K   
    16 r9   )r<   r@   r@   r<   rR   rR   c                     | dz  S rf   r4   r5   s    r7   rb   z#test_merge_sorted.<locals>.<lambda>M   rg   r9   )r<   r@   rR   rR    abc	aaabbbccccbac                     t        |        S r3   )ordr5   s    r7   rb   z#test_merge_sorted.<locals>.<lambda>Q   s    s1vg r9   	cccbbbaaar<   rR   rS   )rW   r   rS   rR   r_   )rI   rR   r_   rI      rv   )	   r@   rx   rv   rx   rx   rd   c                     | d   S rC   r4   r5   s    r7   rb   z#test_merge_sorted.<locals>.<lambda>V   s
    !A$ r9   )	rw   rW   rs   rq   rt   rr   ru   ry   rz   )r@   rS   rI   r@   r<   rR   rS   rI   rI      r_   )r@   r<   rR   rS   rI   r_   r}   )rL   r   r)   rn   r8   datas    r7   test_merge_sortedr   D   sa   Y	237IIIIY	237IIIIaS1a&1#r23|CCCY	2!-/ 03EF F FY	!13 47IJ J JaVaV!13 47CD D D77<ue45DDD77<ue=>+MMM77<ue$57 8;FG G GaS):;|KKK$&>$&Dd778 =P P P P2%%%Y'(I555YA/0OCCCYAH=> C   aVaS1a&1a&hGH M   r9   c                      dj                  t        d            dk(  sJ dj                  t        d            dk(  sJ y )Nri   )ABC123A1B2C3)r   1A1BC)r)   r   r4   r9   r7   test_interleaver   a   s:    77:n-.(:::77:l+,666r9   c                      t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        dt                    dk(  sJ y )Nr^   )r@   r<   r@   rR   rc   rW   )tupler   r=   r4   r9   r7   test_uniquer   f   sL    	"#y000%&)333	v./6999r9   c                  R    G d d      }  G d d      } G d d      } G d d      }t        g d	      d
u sJ t        d      d
u sJ t         |              d
u sJ t         |             d
u sJ t        d      du sJ t         |             du sJ t         |             du sJ y )Nc                       e Zd Zd Zy)%test_isiterable.<locals>.IterIterablec                     t        g d      S Nabc)iter)selfs    r7   __iter__z.test_isiterable.<locals>.IterIterable.__iter__p   s    ((r9   N__name__
__module____qualname__r   r4   r9   r7   IterIterabler   o       	)r9   r   c                       e Zd Zd Zy)(test_isiterable.<locals>.GetItemIterablec                     g d|   S r   r4   r   items     r7   __getitem__z4test_isiterable.<locals>.GetItemIterable.__getitem__t       "4((r9   N)r   r   r   r   r4   r9   r7   GetItemIterabler   s   r   r9   r   c                       e Zd ZdZy)$test_isiterable.<locals>.NotIterableNr   r4   r9   r7   NotIterabler   y   s    r9   r   c                       e Zd ZdZd Zy)3test_isiterable.<locals>.NotIterableEvenWithGetItemNc                     g d|   S r   r4   r   s     r7   r   z?test_isiterable.<locals>.NotIterableEvenWithGetItem.__getitem__   r   r9   )r   r   r   r   r   r4   r9   r7   NotIterableEvenWithGetItemr   |   s    	)r9   r   r^   Trj   rI   F)r   )r   r   r   r   s       r7   test_isiterabler   l   s    ) )) ) ) ) i D(((e$$$ln%---o'(D000a=E!!!km$---023u<<<r9   c                      t        g d      du sJ t        g d      du sJ t        d      du sJ t        d      du sJ t        t        g d            du sJ t        t        g d            du sJ y )Nr^   T)r@   r<   r@   FHelloWorld)r   r   r4   r9   r7   test_isdistinctr      s|    i D(((i E)))g%'''g$&&&d9o&$...d9o&%///r9   c                     t        dd      dk(  sJ t        dt        d            dk(  sJ t        dd      dk(  sJ t        dddi      dk(  sJ t        t        d	       sJ t        d
d      dk(  sJ t        t        d       sJ y )Nr<   ABCDECr@   rR   r<   r@   r   foobarc                      t        dddi      S )N
   r   )r   r4   r9   r7   rb   ztest_nth.<locals>.<lambda>   s    R"e)= r9   Dc                  ,    t        dt        d            S )Nr   r   )r   r   r4   r9   r7   rb   ztest_nth.<locals>.<lambda>   s    c"d7m&< r9   )r   r   r   StopIteration
ValueErrorr4   r9   r7   test_nthr      s    q'?c!!!q$w- C'''q)!!!q5%.!U***-!=>>>r7s"""*<===r9   c                      t        d      dk(  sJ t        d      dk(  sJ t        t        ddd      t              sJ y )Nr   Ar   rR   zerooner   r@   )r   
isinstanceintr4   r9   r7   
test_firstr      sA    >S   q   e512C888r9   c                      t        d      dk(  sJ t        d      dk(  sJ t        t        ddd      t              sJ y )Nr   Br   r<   r   r   r   )r   r   r   r4   r9   r7   test_secondr      sA    '?c!!!)!!!fE23S999r9   c                      t        d      dk(  sJ t        d      dk(  sJ t        t        ddd      t              sJ y )Nr   Er   r@   r   r   r   )r   r   r   r4   r9   r7   	test_lastr      s@    =C	?adv%013777r9   c                      t        t        d            t        d      k(  sJ t        t        d            t        d      k(  sJ y )Nr   BCDEr   r<   r@   )rL   r   r4   r9   r7   	test_restr      s8    W$v,...Y DL000r9   c                      t        t        dd            t        d      k(  sJ t        t        dd            t        d      k(  sJ y )NrR   r   r   r<   r   )rR   r<   )rL   r   r4   r9   r7   	test_taker      s>    Q !T%[000Q	"#tF|333r9   c                      t        t        dd            t        d      k(  sJ t        t        dt        d                  t        d      k(  sJ t        t        dd            t        d      k(  sJ y )NrR   r   CDEr<   r   r   )rL   r   r   r4   r9   r7   	test_tailr      s`    Q !T%[000QW&'4;666Q	"#tF|333r9   c                      t        t        dd            t        d      k(  sJ t        t        dd            t        d      k(  sJ y )NrR   r   DEr@   r   r   )rL   r   r4   r9   r7   	test_dropr      s>    Q !T$Z///Q	"#tF|333r9   c                  J    t        t        dd            t        d      k(  sJ y )Nr<   r   ACE)rL   r'   r4   r9   r7   test_take_nthr      s     G$%e444r9   c                  D   t        dd      dk(  sJ t        t        ddgd            t        d      k(  sJ t        ddddd      dk(  sJ t        dd	gdddd      d
k(  sJ t        di d      dk(  sJ t        i g dd      dk(  sJ t        ddgdd      dk(  sJ t        dgd      dk(  sJ t        g d      dk(  sJ t        t        d       sJ t        t        d       sJ t        t
        d       sJ t        t
        d       sJ t        t        d       sJ y )Nr@   r   r   rR   BDr   r<   r   r   rW   r   r   defaultr^   r   ABr   )r   r   r   r4   c                      t        dd      S )Nr   r   r   r4   r9   r7   rb   ztest_get.<locals>.<lambda>   s    c"en r9   c                      t        dddi      S )Nr   r   r@   r   r4   r9   r7   rb   ztest_get.<locals>.<lambda>   s    CS!H$5 r9   c                      t        i g d      S )Nr^   r   r4   r9   r7   rb   ztest_get.<locals>.<lambda>   s    SY%7 r9   c                       t        g ddd       S )Nr^   r@   r   r4   r9   r7   rb   ztest_get.<locals>.<lambda>   s    SAt%< r9   c                  &    t        di t              S )Nr   r   )r   no_default2r4   r9   r7   rb   ztest_get.<locals>.<lambda>   s    Cr;$G r9   )r   rL   r   
IndexErrorKeyError	TypeErrorr4   r9   r7   test_getr      s<   q'?c!!!QFG$%d333s!!!,-222Sz34>>>ub%(E111r9e,5551vtS!Z///sD>V###r4=B*4555(5666)7888)<===(GHHHr9   c            	      (   t        t        t        g dg dg            g dk(  sJ t        t        t        g dg dg dg            t        t	        d            k(  sJ d } g d	t        t        t        t        |       g d
g dg            k(  sJ y )Nr^   )rS   rI   r_   r`   )rR   r<   r@   r   )r_   rI   rS   )rx   rv   r}   r   c                     | dz   S rC   r4   )is    r7   rb   ztest_mapcat.<locals>.<lambda>   s
    AE r9   )rS   rI   r_   r}   rv   rx   rR   rS   rI   )r_   r}   rv   )rL   r   r8   reversedrJ   r   map)rD   s    r7   test_mapcatr      s    9i"89:    <I"FGHrO   CS)Iy+ABCD E Dr9   c                  @    t        t        dddg            g dk(  sJ y )Nr@   r<   rR   r^   )rL   r   r4   r9   r7   	test_consr      s    QA I---r9   c                      t        t        g g g g            g k(  sJ t        t        dt        ddgt        d      g                  g dk(  sJ y NrI   r   r    ʚ;)r   r   r   r@   r<   )rL   r   r   rJ   r4   r9   r7   test_concatr      sT    B|$%+++a#sU:-> ?@AB  !  r9   c                      t        t        g g g             g k(  sJ t        t        dt        ddgt        d                        g dk(  sJ y r   )rL   r   r   rJ   r4   r9   r7   test_concatvr      sO    B#$***a#sU:->?@A  !  r9   c                  8   dt        t        t        dt        d                        k(  sJ ddj	                  t        dd            k(  sJ t        t        dt        j                  dd	                  g d
k(  sJ t        t        dg d            g dk(  sJ y )Nr   r   tXaXrXzXaXnri   Xtarzanr   r@   rS   )r@   r   r@   r   r@   r   r@   .r   )r   r   r   r   r   )r   r   r   rJ   r)   rL   	itertoolsrepeatr4   r9   r7   test_interposer     s    %YsE*,=>?@@@@BGGIc8$<====	!Y--a3459NNNN	#/04MMMMr9   c            
          t        g d      dddddk(  sJ t        g       i k(  sJ t        d      dddddddddk(  sJ y )	N)catpigr  eelr  dogr  r  r<   r@   rR   )r  r  r  r  onomatopoeiarS   )r   er   monpt)r   r4   r9   r7   test_frequenciesr    so     4 5a!45 6 5 r?b   ~&01+K K K Kr9   c                     g d} d }t        |t        | d      dddk(  sJ t        |t        | d      dd	dk(  sJ d
dddddddddddddddg}t        d d |d      dddk(  sJ t        dd |d      dddk(  sJ y )Nr|   c                     | dz  dk(  S r;   r4   r5   s    r7   rb   ztest_reduceby.<locals>.<lambda>  s    q1uz r9   r   rx   r_   )FTr@      rv   zbuild roadsCAi@B )namestatecostzfight crimeILi zhelp farmersi i@ c                     | d   S )Nr  r4   r5   s    r7   rb   ztest_reduceby.<locals>.<lambda>  s
    aj r9   c                     | |d   z   S Nr  r4   accr6   s     r7   rb   ztest_reduceby.<locals>.<lambda>      36? r9   iO i   )r  r  r  c                     | |d   z   S r  r4   r  s     r7   rb   ztest_reduceby.<locals>.<lambda>  r  r9   )r    r/   r0   )r   r=   projectss      r7   test_reducebyr!    s    D!FFCq)Qa-@@@@FCq)Rq-AAAA&wG&vF'$H'$GIH (2a!+2'$BC C C G2a!+2'$BC C Cr9   c                      t        t        t        g d      dddk(  sJ t        t        t        g dt              dddk(  sJ y )NrQ   r_   rS   rT   )r    r=   r/   r   r4   r9   r7   test_reduce_by_initr#    sJ    FC.u2MMMMFC{;eGL@N N N Nr9   c                  R    d } t        t        | g dt              ddhddhdk(  sJ y )Nc                 (    | j                  |       | S r3   )r/   )sr   s     r7   set_addz0test_reduce_by_callable_default.<locals>.set_add%  s    	ar9   )r@   r<   rR   rS   r@   r<   r<   rS   r@   rR   rT   )r    r=   set)r'  s    r7   test_reduce_by_callable_defaultr)  $  s7     FG%7=1vq!f%& & &r9   c            	          t        t        j                  t        t        d      dd            g dk(  sJ t        t        dt        t        d                  g dk(  sJ y )Nr   rI   )r   r@   r<   rR   rS   rS   r@   )r@   r<   rS   rv   )rL   r  islicer!   rD   r   rG   r4   r9   r7   test_iterater,  -  sK    	  a!Q78OKKKQ*+,<<<r9   c                     t        t        t        g d            g dk(  sJ t        t        t        g d            g dk(  sJ t        t        t        g dd            g dk(  sJ d } t	               }t        t        | g |            |gk(  sJ t        t        | g             g k(  sJ t        t        t        g dt
                    g dk(  sJ y )	Nr|   )r@   rR   r_   r   r  )r@   r<   r_      x   )r0  r   r<   rI   rx      c                     t        d      )Nzbinop should not be called)AssertionErrorr   r   s     r7   binopztest_accumulate.<locals>.binop7  s    9::r9   r^   r@   rR   r_   )rL   r"   r/   r0   objectr   )r5  starts     r7   test_accumulater9  2  s    
3015FFFF
3015GGGG
3459MMMM; HE
5"e,-%888
5"%&",,,
3	;78IEEEr9   c                  V    t        t        t        t        d                  g dk(  sJ y )Nr^   r6  )rL   r"   r/   r   r4   r9   r7   -test_accumulate_works_on_consumable_iterablesr;  @  s     
3Y01Y>>>r9   c                  |    t        t        dg d            g dk(  sJ t        t        dg d            ddgk(  sJ y )Nr<   rQ   )rW   r<   rR   rR   rS   rR   r^   rp   rL   r#   r4   r9   r7   test_sliding_windowr@  D  s<    q,/04LLLLq,/0Y	4JJJJr9   c                  t    t        t        dddg            g k(  sJ t        t        dddg            g k(  sJ y )NrR   r@   r<   r}   r?  r4   r9   r7   %test_sliding_window_of_short_iteratorrB  I  s>    q1a&)*b000q1a&)*b000r9   c                     t        t        dg d            ddgk(  sJ t        t        dt        d                  ddgk(  sJ t        t        dt        d	      d
            ddgk(  sJ t        t        dg             g k(  sJ y )Nr<   rQ   rW   r>  rR   r}   r   r@   r<   r   rS   r0  )pad)rR   r0  r0  )rL   r%   rJ   r4   r9   r7   test_partitionrF  N  s    	!\*+/????	!U1X&'Iy+AAAA	!U1X2./I4?4A A A A	!R !R'''r9   c            	         t        t        dg d            ddgk(  sJ t        t        dt        d                  ddgk(  sJ t        t        dg             g k(  sJ  G d d	t              }  |        }||||f|||fg}t        t        d
|gdz              |k(  sJ t        t        d
t	        |gdz                    |k(  sJ y )Nr<   rQ   rW   r>  rR   rI   rD  c                       e Zd Zd Zy)%test_partition_all.<locals>.NoComparec                 J    | j                   |j                   k(  ryt               )NT)	__class__r   )r   others     r7   __eq__z,test_partition_all.<locals>.NoCompare.__eq__]  s    ~~0,r9   N)r   r   r   rM  r4   r9   r7   	NoComparerI  \  s    	r9   rN  rS   r}   )rL   r&   rJ   r7  r   )rN  objresults      r7   test_partition_allrQ  V  s    a./FF3CCCCaq*+	6/BBBBa$%+++F 
 +CCc"S#sO4Fa#q)*f444aseAg/0F:::r9   c                      t        d      dk(  sJ t        g       dk(  sJ t        t        d            dk(  sJ t        d      dk(  sJ t        t        d            dk(  sJ y )Nr^   rR   r   rQ   rS   hellorI   )r$   r   r4   r9   r7   
test_countrT  g  sf    q   9>>l#$)))>Qg1$$$r9   c            	         t        t        dddgddgddgg            g dk(  sJ t        t        ddgg dg d	g            d
dgk(  sJ t        t        ddgddggd             d dgk(  sJ dddddddg} t        t        d|             ddgk(  sJ t        t        d| d            ddgk(  sJ t        t        ddg|             ddgk(  sJ t        t        dg|             ddgk(  sJ t        t        ddg| d            ddgk(  sJ t        t        d       sJ t        t        d       sJ t        t        dddgddgddggt
                    g dk(  sJ t        t        d       sJ y )Nr   r@   r<   rR   rS   rI   )r   r<   rS   rD  r   r   r>  cheese)idr  pies)rW  r  pricerW  rY  r  )r@   rV  )r<   rX  )rV  )rX  rL  )r   r   )r@   r   c                  0    t        t        ddgg            S Nr@   r   rL   r(   r4   r9   r7   rb   ztest_pluck.<locals>.<lambda>|  s    d5aSE?&; r9   c                  2    t        t        dddig            S )Nr  rW  r@   r\  r4   r9   r7   rb   ztest_pluck.<locals>.<lambda>}  s    Dvq	{)C$D r9   c                  :    t        t        ddggt                    S r[  )rL   r(   r   r4   r9   r7   rb   ztest_pluck.<locals>.<lambda>  s    d5aSE;+G&H r9   )rL   r(   r   r   r   r   r~   s    r7   
test_pluckr_  p  s   a1a&1a&1a&123y@@@q!fy)45666:JJJJa1#1v-.4);;;h'6A)NODdD!"q!f,,,gtQ'(QF222tVnd+,0LLLLvh%&;	*BBBBw($237GGGG*;<<<(DEEEa1a&1a&1a&1;?@IMMM*HIIIr9   c                     g d} g d}d }t        t        t        t        t        | t
        |                  }h d}||k(  sJ t        t        t        t        t        | t
        |t        t                          }||k(  sJ y )Nr@   r   r<   tworR   three)appler@   oranger@   )bananar<   )coconutr<   c                     | d   | d   z   S Nr   r@   r4   )pairs    r7   addpairztest_join.<locals>.addpair  s    Awa  r9   >   r@   r   rh  r@   r@   r   rj  r@   r<   rd  rk  r<   r<   rd  rl  r<   left_defaultright_default)r(  r   r/   r)   r   r   r   )namesfruitrp  rP  expecteds        r7   	test_joinr{    s    2EHE! d5%?@AF.H
 Xd5%0;1<> ? @F Xr9   c                       t        d      d      dk(  sJ  t        dg      d      dk(  sJ  t        g       d      dk(  sJ y )Nr   Alicer   r   r4   )r   r4   r9   r7   test_getterr~    sO    6!9W$$$61#;w6)))6":g"$$$r9   c            	         t        d      D  cg c]	  } | | dz  f }} t        d      D  cg c]  } | | dz  | dz  f }} t        t        d|d|            t        t        d |d |            k(  sJ d }t        t        ddg|ddg|            t        t        ||||            k(  sJ d	 }t        t        dg|dg|            t        t        ||||            k(  sJ y c c} w c c} w )
NrI   r<   rR   r   c                     | d   S Nr   r4   r5   s    r7   rb   z$test_key_as_getter.<locals>.<lambda>  
    ! r9   c                     | d   S r  r4   r5   s    r7   rb   z$test_key_as_getter.<locals>.<lambda>  r  r9   c                     | d   | d   fS rn  r4   r5   s    r7   rb   z$test_key_as_getter.<locals>.<lambda>  s    QqT1Q4L r9   r@   c                     | d   fS r  r4   r5   s    r7   rb   z$test_key_as_getter.<locals>.<lambda>  s    QqTG r9   )rJ   r(  r)   )r   squarespowsr   s       r7   test_key_as_getterr    s"   "'(+Q1a4y+G+%*1X.Q1adO.D.tAw4()Sng6Dd2L .M M M M !CtQFGaVT23s4W@CT<K 8L L L L CtQC1#t,-T#w:=t6E 2F F F F ,.s
   C!C&c                      g d} g d}t        t        t        t        t        | t
        |                  }h d}||k(  sJ y )N)rb  rc  re  )r@   uno)r<   dosrg  >   r@   r  rh  r@   r@   r  rj  r@   r<   r  rk  r<   r<   r  rl  r<   rq  rr  rs  rt  r(  r   r/   r)   r   r   rx  ry  rP  rz  s       r7   test_join_double_repeatsr    s?    JEHEd5%?@AF.H Xr9   c                      g d} ddg}t        t        t        t        t        | t
        |                  }dh}||k(  sJ y )Nra  )rh  rI   ri  rr  r  r  s       r7   test_join_missing_elementr    sC    2E=)Ed5%?@AF'(HXr9   c            	      d    t        t        t        ddgt        ddgd             } ddh}| |k(  sJ y )Nr@   r<   rR   )rv  rY   rf   r(  r)   r8   rP  rz  s     r7   test_left_outer_joinr    s9    hA1a&tLMF	"HXr9   c            	      d    t        t        t        ddgt        ddgd             } ddh}| |k(  sJ y )Nr@   r<   rR   )rw  rY   r@   Nr  r  s     r7   test_right_outer_joinr    s9    hA1a&MNF	"HXr9   c            
      f    t        t        t        ddgt        ddgd d             } h d}| |k(  sJ y )Nr@   r<   rR   ru  >   rf   r  rY   r  r  s     r7   test_outer_joinr    s;    hA1a&#'t= >F-HXr9   c            
         t        t        d       sJ t        t        d       sJ t        t        d       sJ t        t        ddgdt	        ddg                  g k(  sJ t        t        g ddt	        g d	                  d
dgk(  sJ t        t        ddgdg            dgk(  sJ t        t        ddgdgd             ddgk(  sJ t        t        d       sJ t        t        d       sJ t        t        d       sJ t        t        d       sJ t        t        ddg            dgk(  sJ ddddddg} ddddddg}dddfd}t        t        | ||            ddddddfgk(   y )Nc                  (    t        t                     S r3   rL   r*   r4   r9   r7   rb   ztest_diff.<locals>.<lambda>  s    T$&\ r9   c                  .    t        t        ddg            S Nr@   r<   r  r4   r9   r7   rb   ztest_diff.<locals>.<lambda>  s    T$1v,%7 r9   c                  0    t        t        ddgd            S Nr@   r<   rR   r  r4   r9   r7   rb   ztest_diff.<locals>.<lambda>  s    T$1vq/%: r9   r@   r<   rW   r^   )r@   r   rR   )r@   r<   r   )r<   r   r<   )rR   rR   r   r   )r@   r   r   )r<   Nc                  *    t        t        g             S r3   r  r4   r9   r7   rb   ztest_diff.<locals>.<lambda>  s    T$r(^ r9   c                  ,    t        t        g g            S r3   r  r4   r9   r7   rb   ztest_diff.<locals>.<lambda>  s    T$t*%5 r9   c                  0    t        t        ddgg            S r  r  r4   r9   r7   rb   ztest_diff.<locals>.<lambda>  s    T$Ax.%9 r9   c                  2    t        t        ddgdg            S r  r  r4   r9   r7   rb   ztest_diff.<locals>.<lambda>  s    T$A{*;%< r9   rX   r=  dollar)r  currencyd   yeni,  g{Gz?)r  r  c                      | d      | d   z  S )Nr  r  r4   )r   conversionss    r7   	indollarsztest_diff.<locals>.indollars  s    4
+,tF|;;r9   rc   )r   r   rL   r*   r   )data1data2r  r  s      @r7   	test_diffr    s   )1222)7888):;;;aVVT1a&\23r999Y
D,<=>JC       aVbT"#y000aVbT401gy5IIII)3444)5666)9:::)<===ff%&'F8333X.X.0E u-u-/E t,K< 	eU		*+	*Se,LM0O Or9   c            	      h   t        dg d      dk(  sJ t        dg dd       dk(  sJ t        dt        g d      d       dk(  sJ t        dd	d
ddddd
d	ddddgd      d
d	ddddfk(  sJ t        dd	d
ddddd
d	ddddgd      d	d
ddddfk(  sJ t        dg dd      dk(  sJ y )Nr<   )rS   r@   rI   r<   )rI   rS   c                     |  S r3   r4   r5   s    r7   rb   ztest_topk.<locals>.<lambda>  s    r r9   rc   rW   )rI   r@   rS   r<   c                     |  S r3   r4   r5   s    r7   rb   ztest_topk.<locals>.<lambda>  s    aR r9   r@   r   r4  rx   r   r   )rq   rX   rY   rR   r@   rS   r   r   )r  r  )r+   r   r4   r9   r7   	test_topkr    s   < F***<\2f<<<4%<8FBBB!"%QQ'71%QQ'79>AC	!!,-. . . !"%QQ'71%QQ'79>ACr	!!,-. . . ;Q?  r9   c                  0    t        dg dd       dk(  sJ y )NrS   )rI   rx   r<   r@   rI   rR   c                      yrC   r4   r5   s    r7   rb   z%test_topk_is_stable.<locals>.<lambda>  s    r9   rc   )rI   rx   r<   r@   )r+   r4   r9   r7   test_topk_is_stabler    s    %;7<GGGr9   c                      g d} t        |       \  }}|| d   k(  sJ t        |      | k(  sJ t        t        d       sJ y )Nr}  BobCarolr   c                      t        g       S r3   )r,   r4   r9   r7   rb   ztest_peek.<locals>.<lambda>  s
    b r9   )r,   rL   r   r   )alistelementblists      r7   	test_peekr    sI    %E%[NGUeAh;%-!1222r9   c                      d} t        d|       \  }}|| d d k(  sJ t        |      | k(  sJ t        t        |       dz  |       \  }}|| k(  sJ t        |      | k(  sJ y )Nr  r<   rS   )r-   r   len)r  elementsr  s      r7   
test_peeknr    st    %EAuoOHeuRay   <5   CJNE2OHeu<5   r9   c                     t        t        d            t        t        dd            k(  sJ d
fd	        } |         k(  sJ  d      }t        d      }| |      k(  sJ | |k7  sJ  t	        t
                     t	        t
                    k(  sJ  t	        t
                     t	        t                           k7  sJ  d       d      k(  sJ t        t        fd	      sJ y )Nr  r@   i  probseqrandom_statec                 2    t        t        d|             S )Ng?r  )rL   r.   )rsr  s    r7   rb   z$test_random_sample.<locals>.<lambda>.  s    d=c5:>@$B C r9   i     ar   c                        g       S r3   r4   )
mk_rsamples   r7   rb   z$test_random_sample.<locals>.<lambda>>  s    Z^ r9   r[   )rL   rJ   r.   r   hashr7  r   r   )rsample1rsample2randobjr  r  s      @@r7   test_random_sampler  )  s    sE1%dCDMMMCJ |Hz|###$HTlGz'****xd6l#z$v,'????d6l#z$vx.'AAAAdz$////)3444r9   )mr  r   toolz.utilsr   	functoolsr   randomr   pickler   r   toolz.itertoolzr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   operatorr/   r0   r   r8   r=   rA   rD   rG   rO   rU   r\   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r!  r#  r)  r,  r9  r;  r@  rB  rF  rQ  rT  r_  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r4   r9   r7   <module>r     s        	E 	E 	E 	E 	E 	E 	E 	E 	E 	E  E+,-4J#:7
:=>0>9:81
4
44
5I(	E.!!NKC&N&=
F?K
1
(;"%J&,%F $O> H3!5r9   