@@ -12,7 +12,7 @@ def test_jsonio():
1212 o = pe .pseudo_Obs (1.0 , .2 , 'one' )
1313 o2 = pe .pseudo_Obs (0.5 , .1 , 'two|r1' )
1414 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 ) ])
1616 otag = 'This has been merged!'
1717 o4 .tag = otag
1818 do = o - .2 * o4
@@ -101,8 +101,8 @@ def test_json_string_reconstruction():
101101
102102
103103def 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 )
106106
107107 for obs_list in [my_list , rw_list ]:
108108 for tag in [None , "test" ]:
@@ -111,40 +111,51 @@ def test_json_corr_io():
111111 for corr_tag in [None , 'my_Corr_tag' ]:
112112 for prange in [None , [3 , 6 ]]:
113113 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
128129
129130
130131def 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 )]
132142
133143 for tag in [None , "test" ]:
134144 obs_list [3 ][0 , 1 ].tag = tag
135145 for padding in [0 , 1 ]:
136146 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
148159
149160
150161def test_json_dict_io ():
@@ -211,6 +222,7 @@ def list_check_obs(l1, l2):
211222 'd' : pe .pseudo_Obs (.01 , .001 , 'testd' , samples = 10 ) * pe .cov_Obs (1 , .01 , 'cov1' ),
212223 'se' : None ,
213224 '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 )]),
214226 }
215227 }
216228
@@ -314,7 +326,7 @@ def test_dobsio():
314326
315327 o2 = pe .pseudo_Obs (0.5 , .1 , 'two|r1' )
316328 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 ) ])
318330 otag = 'This has been merged!'
319331 o4 .tag = otag
320332 do = o - .2 * o4
@@ -328,7 +340,7 @@ def test_dobsio():
328340 o5 /= co2 [0 ]
329341 o5 .tag = 2 * otag
330342
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 )])
332344 tt3 = pe .Obs ([np .random .rand (102 )], ['qe|r1' ])
333345
334346 tt = tt1 + tt3
@@ -337,7 +349,7 @@ def test_dobsio():
337349
338350 tt4 = pe .Obs ([np .random .rand (100 ), np .random .rand (100 )], ['t|r1' , 't|r2' ], idl = [range (1 , 101 , 1 ), range (2 , 202 , 2 )])
339351
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 ) ]
341353 print (ol )
342354 fname = 'test_rw'
343355
@@ -362,19 +374,25 @@ def test_dobsio():
362374
363375
364376def 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+ )
368383 to = np .log (to ** 2 ) / to
369384 to .dump ((tmp_path / "test_equality" ).as_posix ())
370385 ro = pe .input .json .load_json ((tmp_path / "test_equality" ).as_posix ())
371386 assert assert_equal_Obs (to , ro )
372387
373388
374389def 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+ )
378396 to = np .log (to ** 2 ) / to
379397 for to_list in [[to , to , to ], np .array ([to , to , to ])]:
380398 pe .input .json .dump_to_json (to_list , (tmp_path / "test_equality_list" ).as_posix ())
0 commit comments