B s$           z!TestRecFunctions.test_drop_fieldscCstjddddgffddddgffgd tfd d tfd tdffgfgd }t|ddd}dtfd d tfdtdffgfg}||}t|j|t||dS)Nrrg@g>@rrg@gN@rr r!r")rrBB)rr")r#r$r&r%r viewrr)r(rr3Znewdtyper5r-r-r.test_rename_fields\s"   z#TestRecFunctions.test_rename_fieldscCs\tddtfg}t|}t|dtdtfddtfdtfgfg}t|}t|ddS) N)rz|S3r)rrrr r!r")r)r )r!r")r#rr% get_namesrr&)r(ndtyper3r-r-r.test_get_namesgs  "zTestRecFunctions.test_get_namescCs\tddtfg}t|}t|dtdtfddtfdtfgfg}t|}t|ddS) N)rz|S3r)rrrr r!r")rr r!r")r#rr%get_names_flatrr&)r(r;r3r-r-r.test_get_names_flatqs  "z$TestRecFunctions.test_get_names_flatc Cstddtfg}t|}t|ggdtdtfddtfdgfg}t|}t|ggdgdgdtdtfddtfdd tfd tfgfgfg}t|}ggdgdgddgddgd }t||dS) N)rz|S3r)rrrBA)r7z|S1)rrr?r7r7BBABBB)rrr?r7r@rA)r#rr%r rr&)r(r;r3r5r-r-r.test_get_fieldstructure{s  z(TestRecFunctions.test_get_fieldstructurecCstjddddddgddddddgdtfd d tfd gfgd }t|d dd}ddg}tt|d|t|d||dt|ddd}dddddg}tt|d|t|d||dt|d dd}ddddg}tt|d|t|d||dt|d dd}ddddg}tt|d|t|d||dt|ddd}dddddg}tt|d|t|d||ddS)N)r)g@r)r)g@r)r)g?r)r)g@C)r)rr)r)rr)r)rrrrr?)r7z|S1)maskrFT) ignoremask return_indexrr)keyrFrrrr7)mar$r&r%rrsorted)r(rr3r5r-r-r.test_find_duplicatess2   z%TestRecFunctions.test_find_duplicatesc Csdtfg}tjdddddddgdddddddgd|}t|ddd}dddd g}tt|d |t|d||d t|d dd}ddddd d g}tt|d |t|d||d dS) NrrrrIr)rDT)rErFrrGF)r&rJr$r8rrrK)r(r;rr3r5r-r-r.test_find_duplicates_ignoremasks  z0TestRecFunctions.test_find_duplicates_ignoremaskN) __name__ __module__ __qualname__r/r4r6r9r<r>rBrLrNr-r-r-r.rs !   !rc@seZdZddZddZdS)TestRecursiveFillFieldscCsftjddgdtfdtfgd}tjd|jd}t||}tjdddgdtfdtfgd}t||dS)N)rg$@)rg4@rr)r)rI)rg)r#r$r&r%zerosrrr)r(rr r3r5r-r-r.test_simple_flexibles   z,TestRecursiveFillFields.test_simple_flexiblecCsttjddgddgdtfdtfgd}tjd|jd }t||}tjddd gddd gdtfdtfgd}t||dS) N)rg$@)rg4@)rr)rrrr)rDr)rI)r)rg)rr)rJr$r&r%rSrrr)r(rr r3r5r-r-r.test_masked_flexibles  z,TestRecursiveFillFields.test_masked_flexibleN)rOrPrQrTrUr-r-r-r.rRs rRc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)TestMergeArrayscCsttddg}tdddg}tjddgdd tfgd }tjd d gd tfddtfdtfgfgd }||||f|_dS)Nrrrrr)rg?)rg@)rz|S3r)r)r)rg@)r)rg@rr r!r")r#r$r%r&r')r(r)r*r+r,r-r-r.r/s zTestMergeArrays.setUpcCs||j\}}}}t|}tjddgdtfgd}t||t|f}t||t|dd}t||t|dd}t||dS)N)r)rf0)rF)r0T)r'rr#r$r&r)r(_r)r+r3r5r-r-r. test_solos      zTestMergeArrays.test_solocCs^|jd}t|dd}t||t|dd}tjddgdtfdtfd tfgd }t||dS) NrF)r0T)rrg@)rrg@rr!r")r)r'rrr#r$r&r%)r(r,r3r5r-r-r.test_solo_w_flattens     z#TestMergeArrays.test_solo_w_flattencCs|j\}}}}t||fdd}tjdddgdtfdtfgd}t||t||fd d}tjdddgd d d gdtfdtfgd }t||t|j|jdS) NF)usemask)rr)rr)rGrrWf1)rT)rr)rr)rDr)r'rr#r$r&rrJrD)r(rXr)r*r3r5r-r-r. test_standards    zTestMergeArrays.test_standardcCs|j\}}}}t||fdd}tjddgdtfddtfgd}t||t||fd d}tjd d gdtfd ddtfgfgd}t||dS) NT)r0)rrg?)rrg@rW)rz|S3r)rF)r)rg?)r)rg@r\)r'rr#r$r&r%r)r(rXr)r+r3r5r-r-r. test_flattens   zTestMergeArrays.test_flattencCs|j\}}}}t||fdd}tjddgdtfdtfdtfdtfgd }t||t||fd d}dtfd dtfd dtfdtfgfgfg}tjd dg|d }t||dS)NT)r0)rrrg@)rrrg@rWrr!r")rFr\r )g?)r)rg@)r)r)rg@)r'rr#r$r&r%r)r(r,r)rXr3r5Z controldtyper-r-r.test_flatten_wflexibles   z&TestMergeArrays.test_flatten_wflexiblecCs|j\}}}}tjdddgdddgd}t||fdd}tjdd d gd d d gdtfdtfgd}t||t||fddd}t||tt|tdS)NrrrIr)rDT)r[)rr)rr)rGrI)rr)rr)rrrWr\)rDr)r[Z asrecarray) r'rJr$rr&rr isinstancer)r(rXr)Zmxr3r5r-r-r.test_wmasked_arrays/s   z#TestMergeArrays.test_wmasked_arrayscCsdttddgdtfgtdddgf}tjddd gd d d gdtfd tfgd }t||dS)Nrrrg$@g4@g>@)rg$@)rg4@)rGg>@)rr)rrr\)rDr)rr#r$r8r&rJr%r)r(r3r5r-r-r.test_w_singlefield<s  z"TestMergeArrays.test_w_singlefieldcCsT|jd}t|tdddgdtfgftjdddgd d tfdtfgd dS) NrGrrrrC)rg?r)rg@r)z-1rGr)rz|S3r)r)r'rr#r$r8r&r%)r(r+r-r-r.test_w_shorter_flexEs $ z#TestMergeArrays.test_w_shorter_flexcCsd|j\}}}}t|d|d|dfdd}tjdgdtfdtfddd tfgfgd }t||dS) NrF)r[)rr)rrrWr\f2)rz|S3r)r)r'rr#r$r&r%r)r(rXr)r*r+r3r5r-r-r.test_singlerecordTsz!TestMergeArrays.test_singlerecordN) rOrPrQr/rYrZr]r^r_rarbrcrer-r-r-r.rVs    rVc@s4eZdZddZddZddZddZd d Zd S) TestAppendFieldscCsttddg}tdddg}tjddgdd tfgd }tjd d gd tfddtfdtfgfgd }||||f|_dS)Nrrrrr)rg?)rg@)rz|S3r)r)r)rg@)r)rg@rr r!r")r#r$r%r&r')r(r)r*r+r,r-r-r.r/as  zTestAppendFields.setUpcCsX|j\}}}}t|ddddgd}tjdddgd d d gd tfdtfgd }t||dS) Nrrrr)r')rr)rr)rGr)rr)rrrW)rDr)r'rrJr$r&r)r(rXr)r3r5r-r-r.test_append_singlejs  z#TestAppendFields.test_append_singlecCsf|j\}}}}t|ddddgddggd}tjdd d gd d d gd tfdtfdtfgd}t||dS)N)rrrrrd)r')rrrh)rrri)rGrrG)rrr)rrrrWrr)rDr)r'rrJr$r&r)r(rXr)r3r5r-r-r.test_append_doubless  z#TestAppendFields.test_append_doublecCsV|jd}t|ddddgd}tjddd gd d d gd d tfdtfgd}t||dS)NrGrCrrr)r')rg?r)rg@r)rGgr)rrr)rrr)rz|S3r)rDr)r'rrJr$r%r&r)r(r+r3r5r-r-r.test_append_on_flex|s   z$TestAppendFields.test_append_on_flexcCsf|jd}t|ddddgd}tjddd gd d d gd tfd dtfdtfgfdtfgd}t||dS)NrrCrrr)r')r)rg@r)r)rg@r)rG)rGgr)r)rrr)r)rrrrr r!r")rDr)r'rrJr$r&r%r)r(r,r3r5r-r-r.test_append_on_nesteds z&TestAppendFields.test_append_on_nestedN)rOrPrQr/rgrjrkrlr-r-r-r.rf^s     rfc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestStackArrayscCsttddg}tdddg}tjddgdd tfgd }tjd d gd tfddtfdtfgfgd }||||f|_dS)Nrrrrr)rg?)rg@)rz|S3r)r)r)rg@)r)rg@rr r!r")r#r$r%r&r')r(r)r*r+r,r-r-r.r/s  zTestStackArrays.setUpcCsT|j\}}}}t|f}t|||||kt|}t|||||kdS)N)r'rrZ assertTrue)r(rXr)r3r-r-r.rYs   zTestStackArrays.test_solocCs|j\}}}}t||fdd}tddddg}t||t||fdd}tdddddg}t||t||fdd}tdddddg}t||dS)NF)r[rrrrr)r'rr#r$r)r(rXr)r*r3r5r-r-r.test_unnamed_fieldss  z#TestStackArrays.test_unnamed_fieldscCs|j\}}}}t||f}tjddddgddddgdtfdd tfgd }t||t|j|jt||f}tjd d d dgddddgdd tfdtfgd }t||t|j|jt|||f}tjd d d d d dgddddddgdd tfdtfgd }t||dS)N)rrGrG)rrGrG)rGrr)rGrr)rrr)rrrrW)rz|S3r)rDr)rrrG)rrrG)rGrGr)rGrGr)rrr)rrrrd)r'rrJr$r&r%rrD)r(rXr)r+r3r5r-r-r.test_unnamed_and_named_fieldss4    z-TestStackArrays.test_unnamed_and_named_fieldsc Cs|j\}}}}tjdddgddtfdtfgd}t||f}tjdd dddgddtfdtfgd d d d d gd }t||t|j|jt|||f}ddtfdtfd tfg}tjdddddddg|dddddddgd }t||t|j|jdS)N)rg$@gY@)r g4@gi@)cg>@gr@)rz|S3rrC)r)rrrG)rrrG)rrr)rrr)rrDZf3)rrrGrG)rrrGrG)rg$@gY@rG)r g4@gi@rG)rpg>@gr@rG)rGrGrGr)rGrGrGr)rrrr)rrrr)rrrr) r'r#r$r%rrJrrDr&)r(rXr)r+zzr3r5r;r-r-r.test_matching_named_fieldss.     z*TestStackArrays.test_matching_named_fieldscCs|j\}}}}tjdddgddtfdtfgd}dd d d d }t||f|d }tjdddddgddtfdtfgdddddgd}t||t|j|jt|j|jdS)N)rg$@gY@)r g4@gi@)rpg>@gr@)rz|S3rrC)rz???g8ggi)rrrCD)defaults)rrg)rrg)rrr)rrr)rrD)r'r#r$r%rrJrrD)r(rXr+rqrtr3r5r-r-r. test_defaultss  zTestStackArrays.test_defaultscCsdtfdtfdtfg}tjdgdg|d}dtfdtfdtfg}tjdg|d}tjddgdd g|d}t||fd d }t||t|j|jyt||fd d }Wntk rYnXt dS) NrrrC)rrrI)rrr)rDr)rrrM)r)rrrT)Z autoconvertF) r&boolr%rJr$rrrD TypeErrorAssertionError)r(adtyperbdtyper r5r3r-r-r.test_autoconversions z#TestStackArrays.test_autoconversioncCsdtfdtfdtfg}tjdgdg|d}dtfdtfdtfg}tjdg|d}t||f}tjddgdd g|d}t||t|j|jdS) N)rr)r r)rprC)rrrI)rrr)rDr)rrrM)r)rrr)r&rvr%rJr$rrrD)r(ryrrzr r3r5r-r-r.test_checktitless  z TestStackArrays.test_checktitlesN) rOrPrQr/rYrnrorrrur{r|r-r-r-r.rms   rmc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestJoinByc Cstjtttdtddtdddtfdtfdtfgd |_tjtttd d td d tdddtfdtfdtfgd |_dS)Nr2<rhnrr rp)rrAKd)r#r$listziparanger&rr )r(r-r-r.r/'s zTestJoinBy.setUpcCsb|j|j}}td||dd}tjdddddgdtfd tfd tfd tfd tfgd }t||dS)Nrinner)jointype)r7rirh)rM8Bje)9Ckf):Dlg) ;Emhb1b2rpr)r)rr rr#r$r&r)r(rr r3r5r-r-r.test_inner_join/szTestJoinBy.test_inner_joincCsN|j|j}}td||tjdddddgdtfdtfd tfd tfgd dS) N)rr )rrrrh)rMrrr)rrrr)rrrr)rrrrrr rpr)r)rr rr#r$r&)r(rr r-r-r. test_join;s  zTestJoinBy.test_joincCs|j|j}}td||d}tjddddddd d d d d dddddddddgddddddddddddddddddddgdtfdtfdtfdtfgd}t||dS)N)rr Zouter)rr~rhrG)r3rrG)r4rrG)rI5rrG)r6rrG)rrrrG)rrrGrh)rMrrrG)rMrrGr)rrrrG)rrrGr)rrrrG)rrrGr)rrrrG)rrrGr)rFrGr) GrGr) HrGr) IrGr)JrGr)rrrr)rrrrrr rpr)rDr)rr rrJr$r&r)r(rr r3r5r-r-r.test_outer_joinOs2 zTestJoinBy.test_outer_joinc Csz|j|j}}td||d}tjddddddd d d d g d d d d d d d d d d g dtfdtfdtfdtfgd}t||dS)N)rr Z leftouter)rr~rhrG)rrrrG)rrrrG)rIrrrG)rrrrG)rrrrG)rMrrrG)rrrrG)rrrrG)rrrrG)rrrrrr rpr)rDr)rr rrJr$r&r)r(rr r3r5r-r-r.test_leftouter_joinks zTestJoinBy.test_leftouter_joincCsXtjddddgd}tjddddgd}tddg||dd d }t|jjddd d gdS) NrI)ri4)r f4)rpu1)rrpr rF)rr[Za1Za2)r#rSonesrrrnames)r(rr jr-r-r.test_different_field_order|sz%TestJoinBy.test_different_field_ordercCsBtjddddgd}tjddddgd}tttdddg||dS)NrI)rr)r r)rpr)rrr )r#rSrr ValueErrorr)r(rr r-r-r.test_duplicate_keysszTestJoinBy.test_duplicate_keysN) rOrPrQr/rrrrrrr-r-r-r.r}&s r}c@s8eZdZeddZddZddZddZd d Zd S) TestJoinBy2c Cstjtttdtddtdddtfdtfdtfgd |_tjtttdtd d tdddtfdtfd tfgd |_dS) Nrr~rrhrrr rp)rrrr)r#r$rrrr&rr )clsr-r-r.r/s zTestJoinBy2.setUpc Csp|j|j}}td||dddd}tjdddd d d d d ddg dtfdtfdtfdtfdtfgd}t||dS)Nrr12r) r1postfix r2postfixr)rr~rrhrh)rrrrr)rrrrr)rIrrrr)rrrrr)rrrrr)rMrrrr)rrrrr)rrrrr)rrrrrr rrpr)r)rr rr#r$r&r)r(rr r3r5r-r-r.test_no_r1postfixszTestJoinBy2.test_no_r1postfixc Cs |jttd|j|jddddS)Nrr1)rr)Z assertRaisesrrrr )r(r-r-r.test_no_postfixszTestJoinBy2.test_no_postfixc Csp|j|j}}td||dddd}tjdddd d d d d ddg dtfdtfdtfdtfdtfgd}t||dS)Nr1r1r)rrr)rr~rrhrh)rrrrr)rrrrr)rIrrrr)rrrrr)rrrrr)rMrrrr)rrrrr)rrrrr)rrrrrrr rpr)r)rr rr#r$r&r)r(rr r3r5r-r-r.test_no_r2postfixszTestJoinBy2.test_no_r2postfixc Cs6tjtttddgdttddtddtdddtfd tfd tfd tfgd }tjtttddgdttddtd dtdddtfd tfd tfd tfgd }tjddddddddddg dtfd tfdtfdtfdtfdtfgd }td dg||ddd d!}t |j |j t ||dS)"Nrrrrr~rrkrr rp)rrrr)rrr~rrr)rrrrrr)rrrrrr)rrrrrrI)rrrrrr)rrrrrr)rrIrrrM)rrIrrr)rrrrr)rrrrrrrZc1Zc2rrr)rrr) r#r$rrZtilerepeatrr&rrr)r(rr r5r3r-r-r.test_two_keys_two_varss"& & z"TestJoinBy2.test_two_keys_two_varsN) rOrPrQ classmethodr/rrrrr-r-r-r.rs  rc@s eZdZdZddZddZdS)TestAppendFieldsObjz; Test append_fields with arrays containing objects cCs$ddlm}t|dddd|_dS)Nr)dateir)obj)Zdatetimerdictr')r(rr-r-r.r/s zTestAppendFieldsObj.setUpcCs|jd}tj|df|dfgdtfdtfgd}tjddgtd}t|d |d d }tj|ddf|ddfgdtfdtfd tfgd}t||d S) z7Test append_fields when the base array contains objectsrg?g@rr)rrrrCF)r'r[N)r'r#r$objectr%r&rr)r(rr)r*r3r5r-r-r.test_append_to_objectss z*TestAppendFieldsObj.test_append_to_objectsN)rOrPrQ__doc__r/rr-r-r-r.rsr__main__))Z __future__rrrZnumpyr#Znumpy.marJZnumpy.ma.mrecordsrZnumpy.ma.testutilsrZ numpy.testingrrr r Znumpy.lib.recfunctionsr r r rrrrrrlibZ recfunctionsr:r=r2rrRrVrfrmr}rrrOr-r-r-r.s,   ,   26dA