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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
U
P±d)ã@sRdZddlZddlZddlmZmZddlmmZddl    Zddl    m
Z
m Z m Z m Z mZddlmZmZmZmZmZmZddd    d
d d d dddddddgZddlmZdddddgZeeZd1dd„Zd2d d„Zd3d"d#„Zd$d„Zd4d%d„Zd5d&d'„ZeZ d6d)d    „Z!e!Z"d7d*d „Z#d8d+d „Z$d9d,d„Z%d:d-d „Z&d;d.d
„Z'd<d/d„Z(d=d0d„Z)dS)>zÌMiscellaneous functions for testing masked arrays and subclasses
 
:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
:version: $Id: testutils.py 3529 2007-11-13 08:01:14Z jarrod.millman $
 
éN)ÚndarrayÚfloat_)Úassert_Úassert_allcloseÚassert_array_almost_equal_nulpÚ assert_raisesÚ build_err_msgé)Úmask_orÚgetmaskÚ masked_arrayÚnomaskÚmaskedÚfilledÚalmostÚapproxÚassert_almost_equalÚassert_array_almost_equalÚassert_array_approx_equalÚassert_array_compareÚassert_array_equalÚassert_array_lessÚ assert_closeÚ assert_equalÚassert_equal_recordsÚassert_mask_equalÚassert_not_equalÚfail_if_array_equal)ÚTestCaserrrrrTçñh㈵øä>ç:Œ0âŽyE>c Csªtt|ƒt|ƒƒ}t|ƒ}t|ƒ}|jjdks:|jjdkrJt ||¡ ¡Stt|d|d|ƒ     t
¡}tt|d|ddƒ     t
¡}    t  t   ||    ¡||t   |    ¡¡}
|
 ¡S)a†
    Returns true if all components of a and b are equal to given tolerances.
 
    If fill_value is True, masked values considered equal. Otherwise,
    masked values are considered unequal.  The relative error rtol should
    be positive and << 1.0 The absolute error atol comes into play for
    those elements of b that are very small or zero; it says how small a
    must be also.
 
    ÚOF©ÚcopyÚmaskr    )r
r rÚdtypeÚcharÚnpÚequalÚravelr ÚastyperZ
less_equalÚumathÚabsolute) ÚaÚbÚ
fill_valueÚrtolZatolÚmÚd1Úd2ÚxÚyÚd©r7úId:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/ma/testutils.pyr)s $éc
Cs¦tt|ƒt|ƒƒ}t|ƒ}t|ƒ}|jjdks:|jjdkrJt ||¡ ¡Stt|d|d|ƒ     t
¡}tt|d|ddƒ     t
¡}t  t  ||¡|¡d| k}    |     ¡S)z³
    Returns True if a and b are equal up to decimal places.
 
    If fill_value is True, masked values considered equal. Otherwise,
    masked values are considered unequal.
 
    r!Fr"r    ç$@) r
r rr%r&r'r(r)r r*rZaroundÚabs)
r-r.Údecimalr/r1r2r3r4r5r6r7r7r8r?s ÚcCsJtt|ƒt|ƒ|ƒtt|ƒƒD]$}t||||d|›d|›ƒq dS)z;
    Asserts the equality of two non-array sequences.
 
    úitem=Ú
N)rÚlenÚrange)ÚactualÚdesiredÚerr_msgÚkr7r7r8Ú_assert_equal_on_sequencesRs"rFcCsdt|j|jƒ|jjD]H}t ||¡t ||¡}}|tk    r|tk    rtt ||¡t ||¡ƒqdS)zI
    Asserts that two records are equal.
 
    Pretty crude for now.
 
    N)rr%ÚnamesÚoperatorÚgetitemr)r-r.ÚfÚafZbfr7r7r8r]s  cCs†t|tƒrˆt|tƒs$ttt|ƒƒƒ‚tt|ƒt|ƒ|ƒ| ¡D]B\}}||krbt|›d|›ƒ‚t||||d|›d|›ƒq@dSt|tt    fƒr²t|tt    fƒr²t
||ddSt|t ƒsèt|t ƒsèt ||g|ƒ}||ksät|ƒ‚dS|t krú|t k    s|t kr*|t k    r*t ||g|ddd}t|ƒ‚t |¡}t |¡}|j|j}}|jd    krz|jd    krzt
| ¡| ¡ddSt|||ƒS)
z,
    Asserts that two items are equal.
 
    z not in úkey=r?Nr=©rD©r4r5)ÚheaderrGÚS)Ú
isinstanceÚdictÚAssertionErrorÚreprÚtyperr@ÚitemsÚlistÚtuplerFrrrÚ
ValueErrorr'Z
asanyarrayr%r&Útolistr)rBrCrDrEÚiÚmsgZ actual_dtypeZ desired_dtyper7r7r8rlsH
 
"ÿÿÿ
 
þcCs4t|tƒr‚t|tƒs$ttt|ƒƒƒ‚tt|ƒt|ƒ|ƒ| ¡D]<\}}||kr\tt|ƒƒ‚t||||d|›d|›ƒq@dSt|tt    fƒrèt|tt    fƒrètt|ƒt|ƒ|ƒt
t|ƒƒD]$}t||||d|›d|›ƒq¾dSt|t j ƒst|t j ƒrt |||ƒSt||g|ƒ}||ks0t|ƒ‚dS)z<
    Raises an assertion error if two items are equal.
 
    rLr?Nr>)rQrRrSrTrUÚ fail_if_equalr@rVrWrXrAr'rrr)rBrCrDrEr[r\r7r7r8r]“s&
 
 "" 
r]écCs^t|tjƒst|tjƒr*t|||||dSt||g||d}tt||ƒ|ƒdksZt|ƒ‚dS)z~
    Asserts that two items are almost equal.
 
    The test is equivalent to abs(desired-actual) < 0.5 * 10**(-decimal).
 
    )r<rDÚverbose)rDr_rN)rQr'rrrÚroundr;rS)rBrCr<rDr_r\r7r7r8r°sÿÿc    Cs˜tt|ƒt|ƒƒ}t|d|ddd}t|d|ddd}|tkrF|tk    sV|tkrt|tk    rtt||g|||dd}t|ƒ‚tjj||     |¡|     |¡|||dS)zn
    Asserts that comparison between two masked arrays is satisfied.
 
    The comparison is elementwise.
 
    F)r#r$Z    keep_maskZsubokrN)rDr_rOrG©rDr_rO)
r
r r rrrYr'Ztestingrr)    Z
comparisonr4r5rDr_rOr/r1r\r7r7r8rÃs(    ÿÿ ÿücCsttj||||dddS)z@
    Checks the elementwise equality of two masked arrays.
 
    úArrays are not equalraN)rrHÚ__eq__©r4r5rDr_r7r7r8rÜs
 
þcCs dd„}t|||||dddS)zT
    Raises an assertion error if two masked arrays are not equal elementwise.
 
    cSst t||ƒ¡ S)N)r'ZalltruerrNr7r7r8Úcompareësz$fail_if_array_equal.<locals>.comparerbraN©r)r4r5rDr_rer7r7r8ræs ÿcs$‡fdd„}t|||||dddS)ú|
    Checks the equality of two masked arrays, up to given number odecimals.
 
    The equality is checked elementwise.
 
    cst||dˆ dS)ú<Returns the result of the loose comparison between x and y).r:)r0)rrN©r<r7r8reøsz*assert_array_approx_equal.<locals>.compareúArrays are not almost equalraNrf©r4r5r<rDr_rer7rir8rñs  ÿcs$‡fdd„}t|||||dddS)rgcs t||ˆƒS)rh)rrNrir7r8resz*assert_array_almost_equal.<locals>.comparerjraNrfrkr7rir8rÿs  ÿcCsttj||||dddS)z7
    Checks that x is smaller than y elementwise.
 
    zArrays are not less-orderedraN)rrHÚ__lt__rdr7r7r8r s
 
þcCs:|tkrt|tkƒ|tkr(t|tkƒt|||ddS)z-
    Asserts the equality of two masks.
 
    rMN)r rr)Úm1Úm2rDr7r7r8rs
  )Trr )r9T)r=)r=)r=)r^r=T)r=Tr=T)r=T)r=T)r9r=T)r9r=T)r=T)r=)*Ú__doc__rHÚnumpyr'rrZnumpy.core.umathÚcorer+Z numpy.testingrrrrrr
r r r rrZ __all__maskedZunittestrZ__some__from_testingÚ__all__rrrFrrr]rrrrrrrrrrr7r7r7r8Ú<module>s` û þ
 
 
 
'
 
ÿ