Skip to content
30 changes: 15 additions & 15 deletions autotest/emulator_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
def generate_synth_data(num_realizations=100, num_observations=10):

# generate synth data
data = np.random.normal(size=(num_realizations,num_observations))
data = pyemu.en.rng.normal(size=(num_realizations,num_observations))
data = pd.DataFrame(data,columns=[f"obs{i}" for i in range(10)])
# dummy observation data
obsdata = pd.DataFrame(index=data.columns, columns=["obsnme","obsval","weight","obgnme"])
Expand Down Expand Up @@ -450,8 +450,8 @@ def test_autoencoder_basic():
from pyemu.emulators.dsiae import AutoEncoder

# Create simple synthetic data
np.random.seed(42)
X = np.random.randn(50, 10).astype(np.float32) # 50 samples, 10 features
rng = np.random.RandomState(42)
X = rng.standard_normal((50, 10,)).astype(np.float32) # 50 samples, 10 features

# Test initialization
ae = AutoEncoder(input_dim=10, latent_dim=3, hidden_dims=(8, 4))
Expand All @@ -477,8 +477,8 @@ def test_autoencoder_pandas_input():
from pyemu.emulators.dsiae import AutoEncoder

# Create pandas DataFrame
np.random.seed(42)
data = pd.DataFrame(np.random.randn(30, 8),
rng = np.random.RandomState(42)
data = pd.DataFrame(rng.standard_normal((30, 8,)),
columns=[f'feature_{i}' for i in range(8)],
index=[f'sample_{i}' for i in range(30)])

Expand Down Expand Up @@ -631,8 +631,8 @@ def test_autoencoder_basic():
from pyemu.emulators.dsiae import AutoEncoder

# Create simple synthetic data
np.random.seed(42)
X = np.random.randn(50, 10).astype(np.float32) # 50 samples, 10 features
rng = np.random.RandomState(42)
X = rng.standard_normal((50, 10,)).astype(np.float32) # 50 samples, 10 features

# Test initialization
ae = AutoEncoder(input_dim=10, latent_dim=3, hidden_dims=(8, 4))
Expand All @@ -658,8 +658,8 @@ def test_autoencoder_pandas_input():
from pyemu.emulators.dsiae import AutoEncoder

# Create pandas DataFrame
np.random.seed(42)
data = pd.DataFrame(np.random.randn(30, 8),
rng = np.random.RandomState(42)
data = pd.DataFrame(rng.standard_normal((30, 8,)),
columns=[f'feature_{i}' for i in range(8)],
index=[f'sample_{i}' for i in range(30)])

Expand Down Expand Up @@ -705,7 +705,7 @@ def test_dsiae_save_load(tmp_path):
# 1. Generate synthetic data
num_realizations = 50
num_observations = 20
data = np.random.normal(size=(num_realizations, num_observations))
data = pyemu.en.rng.normal(size=(num_realizations, num_observations))
data_df = pd.DataFrame(data, columns=[f"obs{i}" for i in range(num_observations)])

# 2. Initialize and fit DSIAE
Expand All @@ -725,7 +725,7 @@ def test_dsiae_save_load(tmp_path):
# The predict method takes pvals which are latent space values

# Generate random latent vectors
new_pvals = np.random.normal(size=(5, latent_dim))
new_pvals = pyemu.en.rng.normal(size=(5, latent_dim))
new_pvals_df = pd.DataFrame(new_pvals, columns=[f"latent_{i}" for i in range(latent_dim)])

# Predict with original model
Expand Down Expand Up @@ -795,7 +795,7 @@ def test_gpr_basic(tmp_path):
x = np.linspace(0.0, 10.0, 20)
y = 2.0 * x + 1.0
# Add small noise (very small so interpolation is almost exact)
# y += np.random.normal(0, 0.001, 20)
# y += pyemu.en.rng.normal(0, 0.001, 20)

df = pd.DataFrame({'x': x, 'y': y})

Expand Down Expand Up @@ -994,10 +994,10 @@ def test_lpfa_synth(tmp_path):
t = np.linspace(0, 10, 50)
data = []
n_real = 30
np.random.seed(42)
rng = np.random.RandomState(42)
for i in range(n_real):
phase = np.random.uniform(0, 2*np.pi)
amp = np.random.uniform(0.8, 1.2)
phase = rng.uniform(0, 2*np.pi)
amp = rng.uniform(0.8, 1.2)
# Inputs (history)
hist = amp * np.sin(t[:10] + phase)
# Outputs (forecast)
Expand Down
4 changes: 2 additions & 2 deletions autotest/en_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -665,7 +665,7 @@ def binary_test(tmp_path):
obs_names = ["o{0}".format(i) for i in range(nobs)]
pst = pyemu.Pst.from_par_obs_names(par_names,obs_names)
# array to write (mimicing ensemble)
arr = np.random.random((nreal,npar))
arr = pyemu.en.rng.random((nreal,npar))
df = pd.DataFrame(data=arr,columns=par_names,index=[str(i) for i in range(nreal)])
pe = pyemu.ParameterEnsemble(pst=pst, df=df)

Expand Down Expand Up @@ -695,7 +695,7 @@ def binary_test(tmp_path):
assert d.max().max() < 1.0e-10

# big ensemble should default to dense .bin write
pe3 = pd.DataFrame(np.random.rand(10, int(2e6)))
pe3 = pd.DataFrame(pyemu.en.rng.random((10, int(2e6,))))
pe3.columns = "parameter_number_" + pe3.columns.astype(str)
pe3 = pe3.rename(index={9:'base'})
pst = pyemu.Pst.from_par_obs_names(pe3.columns, obs_names)
Expand Down
2 changes: 1 addition & 1 deletion autotest/full_meal_deal_tests_ignore.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ def freyberg_kl_pp_compare():
hds_nz_obs = hds_obs.loc[hds_obs.ij.apply(lambda x: x in obs_locs.ij.values),"obsnme"]
print(hds_nz_obs)
obs.loc[hds_nz_obs,"weight"] = 1.0
obs.loc[hds_nz_obs,"obsval"] += np.random.normal(0.0,1.0,len(hds_nz_obs))
obs.loc[hds_nz_obs,"obsval"] += pyemu.en.rng.normal(0.0,1.0,len(hds_nz_obs))
ph.pst.control_data.noptmax = 6
ph.pst.parameter_data.loc[ph.pst.parameter_data.pargp!="pp_hk0","partrans"] = "fixed"
ph.pst.write(os.path.join(new_model_ws,"pest_pp.pst"))
Expand Down
8 changes: 4 additions & 4 deletions autotest/la_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def schur_test_nonpest():
onames = ["o1","o2","o3","o4"]
npar = len(pnames)
nobs = len(onames)
j_arr = np.random.random((nobs,npar))
j_arr = pyemu.en.rng.random((nobs,npar))
jco = Jco(x=j_arr,row_names=onames,col_names=pnames)
parcov = Cov(x=np.eye(npar),names=pnames)
obscov = Cov(x=np.eye(nobs),names=onames)
Expand Down Expand Up @@ -49,7 +49,7 @@ def schur_test_nonpest():
print(s.get_added_obs_importance({"group1": ["o1", "o3"]},reset_zero_weight=0.0))
print(s.get_removed_obs_importance({"group1":["o1","o3"]}))

forecasts = Matrix(x=np.random.random((1,npar)),row_names=[forecasts],col_names=pnames)
forecasts = Matrix(x=pyemu.en.rng.random((1,npar)),row_names=[forecasts],col_names=pnames)

sc = Schur(jco=jco,forecasts=forecasts.T,parcov=parcov,obscov=obscov)
ffile = os.path.join("temp","forecasts.jcb")
Expand Down Expand Up @@ -132,7 +132,7 @@ def errvar_test_nonpest():
onames = ["o1","o2","o3","o4"]
npar = len(pnames)
nobs = len(onames)
j_arr = np.random.random((nobs,npar))
j_arr = pyemu.en.rng.random((nobs,npar))
jco = Matrix(x=j_arr,row_names=onames,col_names=pnames)
parcov = Cov(x=np.eye(npar),names=pnames)
obscov = Cov(x=np.eye(nobs),names=onames)
Expand Down Expand Up @@ -325,7 +325,7 @@ def inf2():
onames = inpst.obs_names
npar = inpst.npar
nobs = inpst.nobs
j_arr = np.random.random((nobs,npar))
j_arr = pyemu.en.rng.random((nobs,npar))
parcov = mhand.Cov(x=np.eye(npar),names=pnames)
obscov = mhand.Cov(x=np.eye(nobs),names=onames)
jco = mhand.Jco.from_binary(inpst.filename.replace(".pst",".jcb"))
Expand Down
12 changes: 6 additions & 6 deletions autotest/mat_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ def cov_identity_test():
import pyemu
n = 100
names = ["name_{0}".format(i) for i in range(n)]
arr = np.random.random(n*n)
arr = pyemu.en.rng.random(n*n)
arr.resize((n,n))
cov = pyemu.Cov(x=arr*arr.transpose(),names=names)
cov *= 2.0
Expand All @@ -268,7 +268,7 @@ def hadamard_product_test(copy_mat_temp):
assert hp.x.sum() == 0.0

c = pyemu.Cov(x=np.ones((jco.shape[0],1)),names=jco.row_names,isdiagonal=True)
r = pyemu.Matrix(x=np.random.rand(c.shape[0],c.shape[0]),
r = pyemu.Matrix(x=pyemu.en.rng.random((c.shape[0],c.shape[0],)),
row_names=c.row_names,col_names=c.col_names)
hp = c.hadamard_product(r)
assert np.abs(hp.x.sum() - np.diagonal(r.x).sum()) < 1.0e-6
Expand All @@ -282,7 +282,7 @@ def get_diag_test():
n = 100
col_names = ["cname_{0}".format(i) for i in range(n)]
row_names = ["rname_{0}".format(i) for i in range(n)]
arr = np.random.random(n*n)
arr = pyemu.en.rng.random(n*n)
arr.resize((n,n))
mat = pyemu.Matrix(x=arr,row_names=row_names,
col_names=col_names)
Expand Down Expand Up @@ -451,7 +451,7 @@ def coo_test(setup_empty_mat_temp):
rnames = ["row_{0}".format(i) for i in range(nrow)]
cnames = ["col_{0}".format(i) for i in range(ncol)]

x = np.random.random((nrow,ncol))
x = pyemu.en.rng.random((nrow,ncol))

m = pyemu.Matrix(x=x,row_names=rnames, col_names=cnames)
assert m.shape[0] == len(rnames)
Expand Down Expand Up @@ -511,7 +511,7 @@ def df_test():
rnames = ["row_{0}".format(i) for i in range(nrow)]
cnames = ["col_{0}".format(i) for i in range(ncol)]

x = np.random.random((nrow, ncol))
x = pyemu.en.rng.random((nrow, ncol))

m = pyemu.Matrix(x=x, row_names=rnames, col_names=cnames)

Expand Down Expand Up @@ -552,7 +552,7 @@ def dense_mat_format_test(setup_empty_mat_temp):
rnames = [long_str+"row_{0}".format(i) for i in range(nrow)]
cnames = [long_str+"col_{0}".format(i) for i in range(ncol)]

arr = np.random.random((nrow,ncol))
arr = pyemu.en.rng.random((nrow,ncol))
matfile = os.path.join(wd, "dense.bin")
m = pyemu.Matrix(x=arr, row_names=rnames, col_names=cnames)
f = m.to_dense(matfile, close=True)
Expand Down
24 changes: 12 additions & 12 deletions autotest/mc_tests_ignore.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def gaussian_draw_test():
vals = mc.pst.parameter_data.parval1.values
cov = Cov.from_parameter_data(mc.pst)
start = datetime.now()
val_array = np.random.multivariate_normal(vals, cov.as_2d,num_reals)
val_array = pyemu.en.rng.multivariate_normal(vals, cov.as_2d,num_reals)
print(datetime.now() - start)

start = datetime.now()
Expand Down Expand Up @@ -125,7 +125,7 @@ def from_dataframe_test():
pst = jco.replace(".jcb",".pst")
mc = MonteCarlo(jco=jco,pst=pst)
names = ["par_{0}".format(_) for _ in range(10)]
df = pd.DataFrame(np.random.random((10,mc.pst.npar)),columns=mc.pst.par_names)
df = pd.DataFrame(pyemu.en.rng.random((10,mc.pst.npar)),columns=mc.pst.par_names)
mc.parensemble = ParameterEnsemble.from_dataframe(df=df,pst=mc.pst)
print(mc.parensemble.shape)
mc.project_parensemble()
Expand Down Expand Up @@ -193,7 +193,7 @@ def ensemble_seed_test():

pe1.reseed()
pe1.draw(cov,num_reals=10)
#np.random.seed(1111)
#pyemu.en.rng = np.random.RandomState(1111)
pe2.reseed()
pe2.draw(cov,num_reals=10)
assert (pe1-pe2).apply(np.abs).as_matrix().max() == 0.0
Expand Down Expand Up @@ -383,7 +383,7 @@ def par_diagonal_draw_test():
vals = mc.pst.parameter_data.parval1.values
cov = Cov.from_parameter_data(mc.pst)
start = datetime.now()
val_array = np.random.multivariate_normal(vals, cov.as_2d,num_reals)
val_array = pyemu.en.rng.multivariate_normal(vals, cov.as_2d,num_reals)
print(datetime.now() - start)

start = datetime.now()
Expand Down Expand Up @@ -463,8 +463,8 @@ def homegrown_draw_test():

pst.parameter_data.loc[:,"partrans"] = "none"
par = pst.parameter_data
par.loc[:,"x"] = np.random.random(npar) * 10.0
par.loc[:, "y"] = np.random.random(npar) * 10.0
par.loc[:,"x"] = pyemu.en.rng.random(npar) * 10.0
par.loc[:, "y"] = pyemu.en.rng.random(npar) * 10.0

par.loc[pst.par_names[0], "pargp"] = "zero"
par.loc[pst.par_names[1:10],"pargp"] = "one"
Expand Down Expand Up @@ -525,8 +525,8 @@ def ensemble_covariance_test():

pst.parameter_data.loc[:, "partrans"] = "none"
par = pst.parameter_data
par.loc[:, "x"] = np.random.random(npar) * 10.0
par.loc[:, "y"] = np.random.random(npar) * 10.0
par.loc[:, "x"] = pyemu.en.rng.random(npar) * 10.0
par.loc[:, "y"] = pyemu.en.rng.random(npar) * 10.0

cov = gs.covariance_matrix(par.x, par.y, par.parnme)
num_reals = 100000
Expand Down Expand Up @@ -612,8 +612,8 @@ def to_from_binary_test():

pst.parameter_data.loc[:, "partrans"] = "none"
par = pst.parameter_data
par.loc[:, "x"] = np.random.random(npar) * 10.0
par.loc[:, "y"] = np.random.random(npar) * 10.0
par.loc[:, "x"] = pyemu.en.rng.random(npar) * 10.0
par.loc[:, "y"] = pyemu.en.rng.random(npar) * 10.0

cov = gs.covariance_matrix(par.x, par.y, par.parnme)
num_reals = 1000
Expand Down Expand Up @@ -687,8 +687,8 @@ def sparse_draw_test():

pst.parameter_data.loc[:, "partrans"] = "none"
par = pst.parameter_data
par.loc[:, "x"] = np.random.random(npar) * 10.0
par.loc[:, "y"] = np.random.random(npar) * 10.0
par.loc[:, "x"] = pyemu.en.rng.random(npar) * 10.0
par.loc[:, "y"] = pyemu.en.rng.random(npar) * 10.0

par.loc[pst.par_names[0], "pargp"] = "zero"
par.loc[pst.par_names[1:10], "pargp"] = "one"
Expand Down
10 changes: 5 additions & 5 deletions autotest/metrics_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ def res_and_ens_test():
import pyemu

# make some fake residuals
np.random.seed(42)
rng = np.random.RandomState(42)
t = np.linspace(1,20, 200)
obs = t/10 * np.sin(np.pi*t)
mod = obs+np.random.randn(200)*.5
mod = obs+rng.standard_normal((200,))*.5
obsnames = ['ob_t_{:03d}'.format(i) for i in range(len(t))]
obsgroups = ['start_grp' if i<80 else 'end_grp' for i in range(len(t))]
res = pd.DataFrame({'name':obsnames,
Expand All @@ -18,11 +18,11 @@ def res_and_ens_test():
'residual':obs-mod,
'weight':np.ones(len(t))})
res.set_index(res['name'], inplace=True)
np.random.seed(98)
res.weight = [float(i>.5) for i in np.random.random(200)]
rng = np.random.RandomState(98)
res.weight = [float(i>.5) for i in rng.random(200)]

# and an ensemble version
ens = pd.DataFrame(np.tile(obs,(10,1))+np.random.randn(10,200)*.5, columns=obsnames)
ens = pd.DataFrame(np.tile(obs,(10,1))+rng.standard_normal((10,200,))*.5, columns=obsnames)
ens.loc['base'] = mod

# cook up a PEST file for obs and weights
Expand Down
Loading
Loading