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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
U
P±dK<ã@sÞddlZddlZddlmZmZmZddlmZm    Z    m
Z
m Z m Z m Z ddlmZddlmZGdd„dƒZGdd    „d    ƒZGd
d „d ƒZGd d „d ƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZdS)éN)ÚmatrixÚasmatrixÚbmat)Úassert_Ú assert_equalÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equalÚ assert_raises)Ú matrix_power)Úmatc@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestCtorc
    Cst ddgddgg¡}t|ƒ}tt |j|k¡ƒtdƒ}t||g||ggƒ}t ddddgddddgddddgddddgg¡}tt |j|k¡ƒtt |j|k¡ƒt ddgdd    gg¡}tddddgdddd    ggƒ}tt t||gƒ|k¡ƒt d¡}t|ƒ}    t|    jd
kƒdS) NééééúA,A;A,Aéééé)rr)    ÚnpÚarrayrrÚallÚArÚarangeÚshape)
ÚselfrÚmAÚBÚCÚDÚEZAEresultZvecZmvec©r#ú[d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/matrixlib/tests/test_defmatrix.pyÚ
test_basic s$
 
 
ý
zTestCtor.test_basiccCstttdƒdS)NÚinvalid)r
Ú
ValueErrorr©rr#r#r$Útest_exceptions#szTestCtor.test_exceptionsc    Cs,t ddgddgg¡}t ddgddgg¡}t ddddgddddgddddgddddgg¡}t ddddgddddgddddgddddgg¡}tt td    ƒ|k¡ƒtt td    d
|id |k¡ƒtttd    d
|id tt td    d
|id
|id |k¡ƒtd||dœ||dœd }tt ||k¡ƒdS)Nrrrrrrrrrr)Úldict)Úgdict)r*r+zA,B;C,D)rr)r r!)rrrrrr
Ú    TypeError)rrrZAresultZ    mixresultZb2r#r#r$Útest_bmat_nondefault_str's(
 
 
ý
 
 
ýÿz!TestCtor.test_bmat_nondefault_strN)Ú__name__Ú
__module__Ú __qualname__r%r)r-r#r#r#r$r sr c@steZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„ZdS)ÚTestPropertiescCsÄtddddgddddgddddgddddggƒ}tddddgƒ}tdd    dd
gƒj}d }t||jdd ƒt||jdd ƒt|| ¡ƒt|tj|dd ƒt|tj|dd ƒt|t |¡ƒd S)zeTest whether matrix.sum(axis=1) preserves orientation.
        Fails in NumPy <= 0.9.6.2127.
        rrrrrré rréé©ZaxisN)rÚTrÚsumrr)rÚMZsum0Zsum1Zsumallr#r#r$Útest_sum<s 
 
 
ýzTestProperties.test_sumcCsÐtdddgdddggƒ}t| ¡dƒt| d¡tdd    d
ggƒƒt| d¡tdgd ggƒƒtt |¡dƒttj|dd tdd    d
ggƒƒttj|dd tdgd ggƒƒtdddgƒ}t| ¡dkƒdS) NrrrrrriÐré
ééxr5)rrÚprodrr©rÚxÚyr#r#r$Ú    test_prodOs  zTestProperties.test_prodcCs²tdddgdddggƒ}t| ¡dƒt| d¡tdddggƒƒt| d¡tdgdggƒƒtt |¡dƒttj|ddtdddggƒƒttj|ddtdgdggƒƒdS©    Nrrrrrrrr5)rrÚmaxr©rr?r#r#r$Útest_max\s zTestProperties.test_maxcCs²tdddgdddggƒ}t| ¡dƒt| d¡tdddggƒƒt| d¡tdgdggƒƒtt |¡dƒttj|ddtdddggƒƒttj|ddtdgdggƒƒdSrB)rrÚminrrDr#r#r$Útest_minfs zTestProperties.test_mincCsht d¡ d¡}t| ¡dkƒtt | d¡t ddg¡k¡ƒtt | d¡t ddg¡k¡ƒdS)Nr)rrrrrr)rrÚreshaperÚptprrrDr#r#r$Útest_ptpps"zTestProperties.test_ptpcCsTt d¡ d¡}| tj¡}t|jdd|jddƒt|jdd|jddƒdS)Né    )rrr)Zddofr)rrrHÚviewrrÚvar)rr?Zmxr#r#r$Útest_varvs zTestProperties.test_varcCs
ddlm}t ddgddgg¡}t|ƒ}tt | |¡|j¡ƒtt     t t 
|¡|j k¡¡ƒtt     t t 
|¡|j k¡¡ƒtt     ||j k¡ƒ|d|}t|ƒ}tt | |¡|j¡ƒtt     t t 
|¡|j k¡¡ƒtt     t t 
|¡ ¡|j k¡¡ƒdS)Nrçð?ç@ç@ç@y@)Ú numpy.linalgÚlinalgrrrrÚallcloseÚinvÚIrZ    transposer6ÚHrZconj)rrTrrrÚmBr#r#r$r%|s 
ÿ    zTestProperties.test_basiccCs@tt d¡ dd¡ƒ}tddgddgdd    ggƒ}t|j|ƒdS)
Nrrrg·ù:Žãè¿gnó)tÇÑ?g#¬Çq¼¿g#¬Çq¼?gnó)tÇá?gç6ŸBÇq¬¿)rrrrHrrW)rr?Zxpinvr#r#r$Ú    test_pinvs þzTestProperties.test_pinvcCsrt d¡ dd¡}t|ƒ}t|ƒd}tt ||dk¡ƒtt |t|dƒk¡ƒtt |t|dƒk¡ ƒtt ||k¡ƒtt ||k¡ƒtt ||k¡ƒtt ||k¡ ƒtt ||k¡ ƒtt ||k¡ƒtt ||k¡ƒtt ||k¡ ƒtt ||k¡ƒtt ||k¡ ƒtt ||k¡ƒtt t|ƒdk¡ ƒtt t|dkƒ¡ƒdS)Nédr:皙™™™™¹?r)rrrHrrrÚanyÚabs)rrrrYr#r#r$Útest_comparisons”s& zTestProperties.test_comparisonscCs:t d¡ dd¡}t|ƒ}d|d<t|d|dkƒdS)Nr[r:iöÿÿÿ©rr)rrrHrr)rrrr#r#r$Ú test_asmatrix¬szTestProperties.test_asmatrixcCs@tddgddggƒ}t| ¡tdƒkƒt| ¡tdƒkƒdS)Nrrrçà?)rrr7Úmean©rrr#r#r$Ú test_noaxis²szTestProperties.test_noaxiscCs(tddgddggƒ}tt|ƒdkƒdS)Nrrz matrix([[1, 0],
        [0, 1]]))rrÚreprrdr#r#r$Ú    test_repr·szTestProperties.test_reprcCs*tdƒ}tdgdgdggƒ}t||ƒdS)NzTrue; True; FalseTF)rr)rrrr#r#r$Útest_make_bool_matrix_from_str»sz-TestProperties.test_make_bool_matrix_from_strN)r.r/r0r9rArErGrJrNr%rZr_rarergrhr#r#r#r$r1;s 
 
r1c@seZdZdd„ZdS)Ú TestCastingcCs¼t d¡ dd¡}t|ƒ}| ¡}t dtj¡d}||}t|jj    tjkƒtt 
||k¡ƒtt 
||dk¡ƒ| ¡}t dtj ¡}||}t|jj    tj kƒtt 
||k¡ƒdS)Nr[r:)r:r:r\) rrrHrÚcopyZonesÚfloat64rÚdtypeÚtyperZ
complex128)rrrrYÚOZmCr#r#r$r%ÁszTestCasting.test_basicN©r.r/r0r%r#r#r#r$riÀsric@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
Ú TestAlgebracCs&ddlm}t ddgddgg¡}t|ƒ}t d¡}tdƒD]&}tt ||j    |¡ƒt 
||¡}q<|  |¡}t d¡}tdƒD](}tt || j    |¡ƒt 
||¡}q€tt ||j    t 
||¡¡ƒtt ||j    ||¡ƒtt d|j    d|¡ƒt|ƒ}|d9}tt |j    d|¡ƒdS)    NrrOrPrQrRrrr) rSrTrrrÚidentityÚrangerrUrÚdotrV)rrTrrrÚiZAinvZmA2r#r#r$r%Ôs$ 
 
 
 zTestAlgebra.test_basiccCsttdƒ}| ¡}|dC}| ¡}|dC}| ¡}|dC}t||dƒt|t ||¡ƒtt ||¡t d¡ƒdS)z<Test raising a matrix to an integer power works as expected.z 1. 2.; 3. 4.réÿÿÿÿN)rrjr    rrsÚeye)rÚmÚm2ÚmiZm4r#r#r$Útest_powíszTestAlgebra.test_powcCsDtddgddggƒ}tjtjfD]}|dƒ}t|d||ƒq dS©Nrrrr)rrZint8Zuint8r    )rrwZscalar_tZtwor#r#r$Útest_scalar_type_powúsz TestAlgebra.test_scalar_type_powc    CsRtddgddggƒ}ttƒd|W5QRXttƒ|tƒW5QRXdS)z:Check that 'not implemented' operations produce a failure.rOrPrQrRN)rr
r,Úobjectrdr#r#r$Útest_notimplementedsÿ
 
zTestAlgebra.test_notimplementedN)r.r/r0r%rzr|r~r#r#r#r$rpÓs rpc@seZdZdd„ZdS)ÚTestMatrixReturnc
&Cs^tdgdd}dddgfdddt dg¡d    œ}d
d d d ddddddddddddddddddd d!d"d#d$d%d
d&d'd(d)d*d+d,d-d.g&}t|ƒD]x}| d/¡s†||kržq†t||ƒ}t|tjj    ƒr†| 
d¡|  d¡||krÜ||}nd0}||Ž}t t |ƒtkd1|ƒq†t t |jƒtkƒt t |jƒtkƒtd2gƒ ¡\}}    t t |ƒtjkƒt t |    ƒtjkƒdS)3NrOZf8)rl)Zintc)çrOr)rr`)ÚastypeZclipÚcompressÚrepeatrHZswapaxesrsZargminÚchooseÚdumpÚdumpsÚfillZgetfieldZgetAZgetA1ÚitemÚnonzeroÚputZputmaskÚresizeZ searchsortedZsetflagsZsetfieldÚsortÚ    partitionZ argpartitionZtakeZtofileÚtolistÚtostringÚtobytesrr]r7ZargmaxrFrCrcrMrIr=ZstdÚctypesZitemsetÚ_r#z%sr€)rrrÚdirÚ
startswithÚgetattrÚ
isinstanceÚ collectionsÚabcÚCallablerr‡rrmÚrealÚimagr‰Úndarray)
rÚaZ
methodargsZexcluded_methodsÚattribÚfÚargsÚbÚcÚdr#r#r$Útest_instance_methodss‚
ù
ù     
 
 
 
z&TestMatrixReturn.test_instance_methodsN)r.r/r0r¤r#r#r#r$rsrc@seZdZdd„ZdS)Ú TestIndexingcCsftt dt¡ƒ}t dt¡}dddg|dd…df<|dk|dd…df<t|ddgddgddggƒdS)    N©rr)rrgš™™™™™é?gš™™™™™É?g333333Ó?rrbr©rrÚzerosÚfloatrr>r#r#r$r%9s
 zTestIndexing.test_basicNror#r#r#r$r¥8sr¥c@sheZdZeddgddggƒZdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dS)ÚTestNewScalarIndexingrrrrcCs|j}|d}t|jdƒdS)Nrr)rrÚndim©rrr?r#r#r$Útest_dimesionsDsz$TestNewScalarIndexing.test_dimesionscCs*|j}t ||g¡}t|jdddgƒdS)Nr)rrrrrr¬r#r#r$Útest_array_from_matrix_listIsz1TestNewScalarIndexing.test_array_from_matrix_listcCs$|j}t| ¡ddgddggƒdSr{)rrrŽ©rrr#r#r$Útest_array_to_listNsz(TestNewScalarIndexing.test_array_to_listcCs¼|j}|ddddgf}tt|tƒƒt|tdddggƒƒ|ddg}tt|tƒƒt|tddgddggƒƒ|dgdggddgddggf}tt|tƒƒt|tddgddggƒƒdS)Nrrrrr)rrr–rrr¬r#r#r$Útest_fancy_indexingRs  z)TestNewScalarIndexing.test_fancy_indexingcCs´tdddgdddggƒ}t|ddtdddggƒƒt|ddjdƒt|djdƒt|dd…dfjd    ƒtdƒ}t|d
dƒt|ddƒt|dd…dfj|jƒdS) Nrrrrrrr)rr©rrr`)rrrrDr#r#r$Útest_matrix_element^sz)TestNewScalarIndexing.test_matrix_elementcCs*tt dt¡ƒ}t|d|ddƒdS)Nr¦r`rr§rDr#r#r$Útest_scalar_indexingjsz*TestNewScalarIndexing.test_scalar_indexingcCs†tt d¡ƒ}t|ddd…fddggƒt|ddd…fddggƒt|dd…dfdgdggƒt|dd…dfdgdggƒdS)Nrrr)rrrvrrDr#r#r$Útest_row_column_indexingns
z.TestNewScalarIndexing.test_row_column_indexingcCsvt d¡}d|_t|ƒ}t|dd…t ddg¡f|dd…dfƒt|t dddg¡dd…f|ddd…fƒdS)Nrr¦TFr)rrrrrr©rrr?r#r#r$Útest_boolean_indexingus
 
,z+TestNewScalarIndexing.test_boolean_indexingcCsvt d¡}d|_t|ƒ}t|dd…ddgf|dd…ddd…fƒt|dddgdd…f|ddd…dd…fƒdS)Nrr¦rrrur)rrrrrr¶r#r#r$Útest_list_indexing|s
 
,z(TestNewScalarIndexing.test_list_indexingN)r.r/r0rrr­r®r°r±r³r´rµr·r¸r#r#r#r$rªAs  rªc@seZdZdd„Zdd„ZdS)Ú    TestPowercCsPt ddgddgg¡}ttt|dƒƒtjkƒt|ƒ}ttt|dƒƒtkƒdS©Nrrr)rrrrmr rœr rr¯r#r#r$Útest_returntype…szTestPower.test_returntypecCs,ttddgddggdƒddgddggƒdSrº)rr r(r#r#r$Ú    test_list‹szTestPower.test_listN)r.r/r0r»r¼r#r#r#r$r¹„sr¹c@sveZdZe dgdgg¡ZedgdggƒZdd„Zdd„Z    dd„Z
d    d
„Z d d „Z d d„Z dd„Zdd„Zdd„ZdS)Ú    TestShaperrcCs t|jjdƒt|jjdƒdS)Nr²)rrrrwr(r#r#r$Ú
test_shape”szTestShape.test_shapecCs,tt |j¡jdƒtt |j¡jdƒdS)N©r)rrÚravelrrrwr(r#r#r$Útest_numpy_ravel˜szTestShape.test_numpy_ravelcCs(t|j ¡jdƒt|j ¡jdƒdS©Nr¿)rr)rrrÀrrwr(r#r#r$Útest_member_ravelœszTestShape.test_member_ravelcCs(t|j ¡jdƒt|j ¡jdƒdSrÂ)rrÚflattenrrwr(r#r#r$Útest_member_flatten szTestShape.test_member_flattencCs.t dddgdddgg¡}tt |¡ddddddgƒttj|ddddddddgƒtt |j¡ddddddgƒttj|jd    dddddddgƒtdddgdddggƒ}tt |¡ddddddgƒttj|ddddddddgƒtt |j¡ddddddgƒttj|jd    dddddddgƒdS©
NrrrrrrÚF)Úorderr)rrrrÀr6rrDr#r#r$Útest_numpy_ravel_order¤s " z TestShape.test_numpy_ravel_ordercCs˜tdddgdddggƒ}t| ¡ddddddggƒt|jddddddddggƒt|j ¡ddddddggƒt|jjd    dddddddggƒdSrÆ)rrrÀr6rDr#r#r$Útest_matrix_ravel_order°s
 z!TestShape.test_matrix_ravel_ordercCs6tt |j|j ¡¡ƒtt |j|j ¡¡ ƒdS©N)rrÚmay_share_memoryrrÀrÄr(r#r#r$Útest_array_memory_sharing·sz#TestShape.test_array_memory_sharingcCs6tt |j|j ¡¡ƒtt |j|j ¡¡ ƒdSrË)rrrÌrwrÀrÄr(r#r#r$Útest_matrix_memory_sharing»sz$TestShape.test_matrix_memory_sharingcCsHt d¡ d¡ tj¡}tj|dd}t|jdƒtt    |tjƒ ƒdS)Nr:)rrrr5r)
rrrHrLrZ expand_dimsrr«rr–)rrÚexpandedr#r#r$Útest_expand_dims_matrix¿s z!TestShape.test_expand_dims_matrixN)r.r/r0rrrrrwr¾rÁrÃrÅrÉrÊrÍrÎrÐr#r#r#r$r½s r½)Úcollections.abcr—ÚnumpyrrrrZ numpy.testingrrrrr    r
rSr Znumpy.matrixlibr r r1rirprr¥rªr¹r½r#r#r#r$Ú<module>s   /;*    C