zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
U
­ý°dTãf@s    dZddlZddlmZddlZddlZddlmZddl    m
Z
ddl m Z m Z mZmZmZmZmZmZddlmZddlmZddlZdgd    d
„Zd d „Zej d dde d¡jddfde d¡jddfde d¡jddfde d¡jddfdde d¡j ddfde d¡j ddfde d¡j ddfde d¡j ddfdde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfdde d¡j ddfde d¡j ddfde d¡j ddfde d¡j ddfdde d¡jddfde d¡jddfde d¡jddfde d¡jddfdde d¡j ddfde d¡j ddfde d¡j ddfde d¡j ddfdde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfdde d¡j ddfde d¡j ddfde d¡j ddfde d¡j ddfd de d¡jddfde d¡jddfde d¡jddfde d¡jddfd!de d¡j ddfde d¡j ddfde d¡j ddfde d¡j ddfd"de d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfd#de d¡j ddfde d¡j ddfde d¡j ddfde d¡j ddfd$de d¡jddfde d¡jddfde d¡jddfde d¡jddfd%de d¡j ddfde d¡j ddfde d¡j ddfde d¡j ddfd&de d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfde d¡jddfd'de d¡j ddfde d¡j ddfde d¡j ddfde d¡j ddfg`¡d(d)„ƒZ!d*d+„Z"d,d-„Z#ej d d.d/e $d/¡jd0d1fd2d1e $d/¡jd0d1fd3d4e $d/¡jd0d5fd6d5e $d/¡jd0d5fd7d/e $d/¡jd8d5fd9d1e $d/¡jd8d5fd:d4e $d/¡jd8d5fd;d5e $d/¡jd8d5fg¡d<d=„ƒZ%d>d?„Z&d@dA„Z'dBdC„Z(dDdE„Z)dFdG„Z*ejjdHe +dI¡e ,dI¡ej -¡ej. /¡gdJdKdLdMgdNdOdP„ƒZ0ejjdHe +dI¡e ,dI¡ej -¡ej. /¡gdJdKdLdMgdNdQdR„ƒZ1dSdT„Z2ejjdHej3ddUe 4dVdW¡e 5d¡gdXdYdZgdNd[d\„ƒZ6d]d^„Z7d_d`„Z8dadb„Z9dcdd„Z:dedf„Z;dS)hz>
These test the method maybe_promote from core/dtypes/cast.py
éN)ÚDecimal)ÚNaT)Ú maybe_promote)Úis_complex_dtypeÚis_datetime64_dtypeÚis_datetime_or_timedelta_dtypeÚis_float_dtypeÚis_integer_dtypeÚis_object_dtypeÚ    is_scalarÚis_timedelta64_dtype)ÚDatetimeTZDtype)ÚisnacCs8t|ƒs t‚t||ƒ\}}|}||ks*t‚t||ƒdS)a|
    Auxiliary function to unify testing of scalar/array promotion.
 
    Parameters
    ----------
    dtype : dtype
        The value to pass on as the first argument to maybe_promote.
    fill_value : scalar
        The value to pass on as the second argument to maybe_promote as
        a scalar.
    expected_dtype : dtype
        The expected dtype returned by maybe_promote (by design this is the
        same regardless of whether fill_value was passed as a scalar or in an
        array!).
    exp_val_for_scalar : scalar
        The expected value for the (potentially upcast) fill_value returned by
        maybe_promote.
    N)r ÚAssertionErrorrÚ _assert_match)ÚdtypeÚ
fill_valueÚexpected_dtypeÚexp_val_for_scalarZ result_dtypeÚresult_fill_valueÚexpected_fill_value©rú\d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/dtypes/cast/test_promote.pyÚ_check_promotes
  rcCs’t|ƒ}t|ƒ}t|dƒrD|jj|jjks.t‚|jj|jjks\t‚n||ks\|j|jks\t‚||k}|tjkrrd}t    |ƒo€t    |ƒ}|sŽ|sŽt‚dS)NrF)
ÚtypeÚhasattrrÚkindrÚitemsizeÚ__name__ÚpdÚNAr)rrZres_typeZex_typeZ match_valueZ match_missingrrrr=s
 
rz!dtype, fill_value, expected_dtype)Úint8ér!r!r"Úint16Úint32Úint64Úobject)r!éÿÿÿÿr!)Úuint8r"r(r(Úuint16Úuint32Úuint64)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+r'r&cCs:t |¡}t |¡}tj|g|dd}t||||ƒdS©N©rr©ÚnprÚarrayr©rrrrrrrÚtest_maybe_promote_int_with_intXsl
 
r2cCsJt |¡}t |¡}tjdg|dd}tj}t |¡}t||||ƒdS©Nr"r-r)r/rr0Úfloat64r)Úany_int_numpy_dtypeÚfloat_numpy_dtyperÚ
fill_dtyperrrrrrÚ!test_maybe_promote_int_with_floatÍs 
 
 
r8cCsRt |¡}t |¡}tjdg|dd}|}tj|g|dd}t||||ƒdSr3r.)r6r5rr7rrrrrrÚ!test_maybe_promote_float_with_intÜs 
 
r9)Úfloat32r"r:r:gš™™™™™ñ?r4)r4r"r4)Ú    complex64r"r;r;Ú
complex128)r<r"r<)r:ùð?ð?r;yš™™™™™ñ?ð?)r4r=r<)r;r=r;)r<r=r<cCs:t |¡}t |¡}tj|g|dd}t||||ƒdSr,r.r1rrrÚ#test_maybe_promote_float_with_floatìs
 
r>cCsTt t¡}t |¡}tjdg|dd}|tkr:t t¡n|}|}t||||ƒdSr3)r/rÚboolr0r&r)Úany_numpy_dtyperr7rrrrrrÚ test_maybe_promote_bool_with_anys 
 
rAcCsJt |¡}d}|tkr t t¡n|}tj|g|dd}t||||ƒdS)NTr-r)r/rr?r&r0r©r@rrrrrrrÚ test_maybe_promote_any_with_bools
 
rCcCsJt |¡}t |¡}tjdg|dd}t tj¡}|}t||||ƒdSr3)r/rr0Úobject_r)Z bytes_dtyper@rr7rrrrrrÚ!test_maybe_promote_bytes_with_any)s 
 
 rEcCs@t |¡}d}t tj¡}tj|g|dd}t||||ƒdS)Nsabcr-r)r/rrDr0rrBrrrÚ!test_maybe_promote_any_with_bytes7s
 
 rFcCsdt |¡}t |¡}tjdg|dd}t|ƒrD|}t |¡ ¡}nt t¡}|}t||||ƒdSr3)    r/rr0rrÚ    TimestampÚ to_datetime64r&r)Zdatetime64_dtyper@rr7rrrrrrÚ&test_maybe_promote_datetime64_with_anyEs
 
 
rIrÚnowz pd.Timestampz np.datetime64zdatetime.datetimez datetime.date)ÚidscCslt |¡}t|ƒr&|}t |¡ ¡}nt t¡}|}t|ƒtj    krZ|j
dkrZt t¡}|}t ||||ƒdS)NÚM) r/rrrrGrHr&rÚdatetimeÚdaterr)r@rrrrrrrÚ&test_maybe_promote_any_with_datetime64Xs
 
 
rOcCsHt |¡}t|d}tj|g|dd}t t¡}|}t||||ƒdS)N)Útzr-r)r/rr rZSeriesr&r)r@Ztz_aware_fixturerrr7rrrrrÚ2test_maybe_promote_any_numpy_dtype_with_datetimetzvs
 
 
rQcCsdt |¡}t |¡}tjdg|dd}t|ƒrD|}t |¡ ¡}nt t¡}|}t||||ƒdSr3)    r/rr0r rÚ    TimedeltaÚto_timedelta64r&r)Ztimedelta64_dtyper@rr7rrrrrrÚ'test_maybe_promote_timedelta64_with_anys
 
 
rT)ÚdayséÚhz pd.Timedeltaznp.timedelta64zdatetime.timedeltacCsFt |¡}t|ƒr&|}t |¡ ¡}nt t¡}|}t||||ƒdS)N)r/rr rrRrSr&r)r@rÚrequestrrrrrrÚ'test_maybe_promote_any_with_timedelta64¢s
 
rYcCsHt |¡}t |¡}tjdg|dd}t t¡}|}t||||ƒdSr3©r/rr0r&r)Z string_dtyper@rr7rrrrrrÚ"test_maybe_promote_string_with_any¶s 
 
 
r[cCs.t |¡}d}t t¡}|}t||||ƒdS)NÚabc)r/rr&rrBrrrÚ"test_maybe_promote_any_with_stringÄs
 
 
r]cCsHt |¡}t |¡}tjdg|dd}t t¡}|}t||||ƒdSr3rZ)Z object_dtyper@rr7rrrrrrÚ"test_maybe_promote_object_with_anyÑs 
 
 
r^cCs4t |¡}t d¡}t t¡}|}t||||ƒdS)Nr")r/rrZ
DateOffsetr&rrBrrrÚ"test_maybe_promote_any_with_objectßs
 
 
 
r_cCs|}t |¡}t|tƒrV|jdkrF|jdkr:t tj¡}n|}tj}nt t¡}|}n®t|ƒrt|t    k    rttj}tj}nt
|ƒr”|t    kr”t t¡}|}npt |ƒr®|}|  dd¡}nV|t    krÆt t¡}t    }n>t |ƒsÖt|ƒrâ|}tj}n"t t¡}|tjkrþtj}ntj}t||||ƒdS)N)ÚiÚuÚfÚc)r`rarÚns)r/rÚ
isinstancerrr4Únanr&r    rr
rrrrrr r)r@Z nulls_fixturerrrrrrrÚ*test_maybe_promote_any_numpy_dtype_with_naís<
 
 
 
 
 
 
 
 
rg)N)<Ú__doc__rMÚdecimalrÚnumpyr/ZpytestZpandas._libs.tslibsrZpandas.core.dtypes.castrZpandas.core.dtypes.commonrrrrr    r
r r Zpandas.core.dtypes.dtypesr Zpandas.core.dtypes.missingrZpandasrrrÚmarkZ parametrizeZiinfoÚmaxÚminr2r8r9Zfinfor>rArCrErFrIrGZ
datetime64rJrNÚtodayrOrQrTrRZ timedelta64Ú    timedeltarYr[r]r^r_rgrrrrÚ<module>sZ   (
 
šþk
 
ìþ
 
 ü
ø
 
ü
ø
 
ý