@@ -12,7 +12,7 @@ def test_jsonio():
12
12
o = pe .pseudo_Obs (1.0 , .2 , 'one' )
13
13
o2 = pe .pseudo_Obs (0.5 , .1 , 'two|r1' )
14
14
o3 = pe .pseudo_Obs (0.5 , .1 , 'two|r2' )
15
- o4 = pe .merge_obs ([o2 , o3 ])
15
+ o4 = pe .merge_obs ([o2 , o3 , pe . pseudo_Obs ( 0.5 , .1 , 'two|r3' , samples = 3221 ) ])
16
16
otag = 'This has been merged!'
17
17
o4 .tag = otag
18
18
do = o - .2 * o4
@@ -101,8 +101,8 @@ def test_json_string_reconstruction():
101
101
102
102
103
103
def test_json_corr_io ():
104
- my_list = [pe .Obs ([np .random .normal (1.0 , 0.1 , 100 )], ['ens1' ]) for o in range (8 )]
105
- rw_list = pe .reweight (pe .Obs ([np .random .normal (1.0 , 0.1 , 100 )], ['ens1' ]), my_list )
104
+ my_list = [pe .Obs ([np .random .normal (1.0 , 0.1 , 100 ), np . random . normal ( 1.0 , 0.1 , 321 ) ], ['ens1|r1' , 'ens1|r2' ], idl = [ range ( 1 , 201 , 2 ), range ( 321 ) ]) for o in range (8 )]
105
+ rw_list = pe .reweight (pe .Obs ([np .random .normal (1.0 , 0.1 , 100 ), np . random . normal ( 1.0 , 0.1 , 321 ) ], ['ens1|r1' , 'ens1|r2' ], idl = [ range ( 1 , 201 , 2 ), range ( 321 ) ]), my_list )
106
106
107
107
for obs_list in [my_list , rw_list ]:
108
108
for tag in [None , "test" ]:
@@ -111,40 +111,51 @@ def test_json_corr_io():
111
111
for corr_tag in [None , 'my_Corr_tag' ]:
112
112
for prange in [None , [3 , 6 ]]:
113
113
for gap in [False , True ]:
114
- my_corr = pe .Corr (obs_list , padding = [pad , pad ], prange = prange )
115
- my_corr .tag = corr_tag
116
- if gap :
117
- my_corr .content [4 ] = None
118
- pe .input .json .dump_to_json (my_corr , 'corr' )
119
- recover = pe .input .json .load_json ('corr' )
120
- os .remove ('corr.json.gz' )
121
- assert np .all ([o .is_zero () for o in [x for x in (my_corr - recover ) if x is not None ]])
122
- for index , entry in enumerate (my_corr ):
123
- if entry is None :
124
- assert recover [index ] is None
125
- assert my_corr .tag == recover .tag
126
- assert my_corr .prange == recover .prange
127
- assert my_corr .reweighted == recover .reweighted
114
+ for mult in [1. , pe .cov_Obs ([12.22 , 1.21 ], [.212 ** 2 , .11 ** 2 ], 'renorm' )[0 ]]:
115
+ my_corr = mult * pe .Corr (obs_list , padding = [pad , pad ], prange = prange )
116
+ my_corr .tag = corr_tag
117
+ if gap :
118
+ my_corr .content [4 ] = None
119
+ pe .input .json .dump_to_json (my_corr , 'corr' )
120
+ recover = pe .input .json .load_json ('corr' )
121
+ os .remove ('corr.json.gz' )
122
+ assert np .all ([o .is_zero () for o in [x for x in (my_corr - recover ) if x is not None ]])
123
+ for index , entry in enumerate (my_corr ):
124
+ if entry is None :
125
+ assert recover [index ] is None
126
+ assert my_corr .tag == recover .tag
127
+ assert my_corr .prange == recover .prange
128
+ assert my_corr .reweighted == recover .reweighted
128
129
129
130
130
131
def test_json_corr_2d_io ():
131
- obs_list = [np .array ([[pe .pseudo_Obs (1.0 + i , 0.1 * i , 'test' ), pe .pseudo_Obs (0.0 , 0.1 * i , 'test' )], [pe .pseudo_Obs (0.0 , 0.1 * i , 'test' ), pe .pseudo_Obs (1.0 + i , 0.1 * i , 'test' )]]) for i in range (4 )]
132
+ obs_list = [np .array ([
133
+ [
134
+ pe .merge_obs ([pe .pseudo_Obs (1.0 + i , 0.1 * i , 'test|r2' ), pe .pseudo_Obs (1.0 + i , 0.1 * i , 'test|r1' , samples = 321 )]),
135
+ pe .merge_obs ([pe .pseudo_Obs (0.0 , 0.1 * i , 'test|r2' ), pe .pseudo_Obs (0.0 , 0.1 * i , 'test|r1' , samples = 321 )]),
136
+ ],
137
+ [
138
+ pe .merge_obs ([pe .pseudo_Obs (0.0 , 0.1 * i , 'test|r2' ), pe .pseudo_Obs (0.0 , 0.1 * i , 'test|r1' , samples = 321 ),]),
139
+ pe .merge_obs ([pe .pseudo_Obs (1.0 + i , 0.1 * i , 'test|r2' ), pe .pseudo_Obs (1.0 + i , 0.1 * i , 'test|r1' , samples = 321 )]),
140
+ ],
141
+ ]) for i in range (4 )]
132
142
133
143
for tag in [None , "test" ]:
134
144
obs_list [3 ][0 , 1 ].tag = tag
135
145
for padding in [0 , 1 ]:
136
146
for prange in [None , [3 , 6 ]]:
137
- my_corr = pe .Corr (obs_list , padding = [padding , padding ], prange = prange )
138
- my_corr .tag = tag
139
- pe .input .json .dump_to_json (my_corr , 'corr' )
140
- recover = pe .input .json .load_json ('corr' )
141
- os .remove ('corr.json.gz' )
142
- assert np .all ([np .all ([o .is_zero () for o in q ]) for q in [x .ravel () for x in (my_corr - recover ) if x is not None ]])
143
- for index , entry in enumerate (my_corr ):
144
- if entry is None :
145
- assert recover [index ] is None
146
- assert my_corr .tag == recover .tag
147
- assert my_corr .prange == recover .prange
147
+ for mult in [1. , pe .cov_Obs ([12.22 , 1.21 ], [.212 ** 2 , .11 ** 2 ], 'renorm' )[0 ]]:
148
+ my_corr = mult * pe .Corr (obs_list , padding = [padding , padding ], prange = prange )
149
+ my_corr .tag = tag
150
+ pe .input .json .dump_to_json (my_corr , 'corr' )
151
+ recover = pe .input .json .load_json ('corr' )
152
+ os .remove ('corr.json.gz' )
153
+ assert np .all ([np .all ([o .is_zero () for o in q ]) for q in [x .ravel () for x in (my_corr - recover ) if x is not None ]])
154
+ for index , entry in enumerate (my_corr ):
155
+ if entry is None :
156
+ assert recover [index ] is None
157
+ assert my_corr .tag == recover .tag
158
+ assert my_corr .prange == recover .prange
148
159
149
160
150
161
def test_json_dict_io ():
@@ -211,6 +222,7 @@ def list_check_obs(l1, l2):
211
222
'd' : pe .pseudo_Obs (.01 , .001 , 'testd' , samples = 10 ) * pe .cov_Obs (1 , .01 , 'cov1' ),
212
223
'se' : None ,
213
224
'sf' : 1.2 ,
225
+ 'k' : pe .cov_Obs (.1 , .001 ** 2 , 'cov' ) * pe .merge_obs ([pe .pseudo_Obs (1.0 , 0.1 , 'test|r2' ), pe .pseudo_Obs (1.0 , 0.1 , 'test|r1' , samples = 321 )]),
214
226
}
215
227
}
216
228
@@ -314,7 +326,7 @@ def test_dobsio():
314
326
315
327
o2 = pe .pseudo_Obs (0.5 , .1 , 'two|r1' )
316
328
o3 = pe .pseudo_Obs (0.5 , .1 , 'two|r2' )
317
- o4 = pe .merge_obs ([o2 , o3 ])
329
+ o4 = pe .merge_obs ([o2 , o3 , pe . pseudo_Obs ( 0.5 , .1 , 'two|r3' , samples = 3221 ) ])
318
330
otag = 'This has been merged!'
319
331
o4 .tag = otag
320
332
do = o - .2 * o4
@@ -328,7 +340,7 @@ def test_dobsio():
328
340
o5 /= co2 [0 ]
329
341
o5 .tag = 2 * otag
330
342
331
- tt1 = pe .Obs ([np .random .rand (100 ), np .random .rand (100 )], ['t|r1' , 't|r2' ], idl = [range (2 , 202 , 2 ), range (22 , 222 , 2 )])
343
+ tt1 = pe .Obs ([np .random .rand (100 ), np .random .rand (102 )], ['t|r1' , 't|r2' ], idl = [range (2 , 202 , 2 ), range (22 , 226 , 2 )])
332
344
tt3 = pe .Obs ([np .random .rand (102 )], ['qe|r1' ])
333
345
334
346
tt = tt1 + tt3
@@ -337,7 +349,7 @@ def test_dobsio():
337
349
338
350
tt4 = pe .Obs ([np .random .rand (100 ), np .random .rand (100 )], ['t|r1' , 't|r2' ], idl = [range (1 , 101 , 1 ), range (2 , 202 , 2 )])
339
351
340
- ol = [o2 , o3 , o4 , do , o5 , tt , tt4 , np .log (tt4 / o5 ** 2 ), np .exp (o5 + np .log (co3 / tt3 + o4 ) / tt )]
352
+ ol = [o2 , o3 , o4 , do , o5 , tt , tt4 , np .log (tt4 / o5 ** 2 ), np .exp (o5 + np .log (co3 / tt3 + o4 ) / tt ), o4 . reweight ( o4 ) ]
341
353
print (ol )
342
354
fname = 'test_rw'
343
355
@@ -362,19 +374,25 @@ def test_dobsio():
362
374
363
375
364
376
def test_reconstruct_non_linear_r_obs (tmp_path ):
365
- to = pe .Obs ([np .random .rand (500 ), np .random .rand (500 ), np .random .rand (111 )],
366
- ["e|r1" , "e|r2" , "my_new_ensemble_54^£$|8'[@124435%6^7&()~#" ],
367
- idl = [range (1 , 501 ), range (0 , 500 ), range (1 , 999 , 9 )])
377
+ to = (
378
+ pe .Obs ([np .random .rand (500 ), np .random .rand (1200 )],
379
+ ["e|r1" , "e|r2" , ],
380
+ idl = [range (1 , 501 ), range (0 , 1200 )])
381
+ + pe .Obs ([np .random .rand (111 )], ["my_new_ensemble_54^£$|8'[@124435%6^7&()~#" ], idl = [range (1 , 999 , 9 )])
382
+ )
368
383
to = np .log (to ** 2 ) / to
369
384
to .dump ((tmp_path / "test_equality" ).as_posix ())
370
385
ro = pe .input .json .load_json ((tmp_path / "test_equality" ).as_posix ())
371
386
assert assert_equal_Obs (to , ro )
372
387
373
388
374
389
def test_reconstruct_non_linear_r_obs_list (tmp_path ):
375
- to = pe .Obs ([np .random .rand (500 ), np .random .rand (500 ), np .random .rand (111 )],
376
- ["e|r1" , "e|r2" , "my_new_ensemble_54^£$|8'[@124435%6^7&()~#" ],
377
- idl = [range (1 , 501 ), range (0 , 500 ), range (1 , 999 , 9 )])
390
+ to = (
391
+ pe .Obs ([np .random .rand (500 ), np .random .rand (1200 )],
392
+ ["e|r1" , "e|r2" , ],
393
+ idl = [range (1 , 501 ), range (0 , 1200 )])
394
+ + pe .Obs ([np .random .rand (111 )], ["my_new_ensemble_54^£$|8'[@124435%6^7&()~#" ], idl = [range (1 , 999 , 9 )])
395
+ )
378
396
to = np .log (to ** 2 ) / to
379
397
for to_list in [[to , to , to ], np .array ([to , to , to ])]:
380
398
pe .input .json .dump_to_json (to_list , (tmp_path / "test_equality_list" ).as_posix ())
0 commit comments