Coverage for fixtures\mf6_welltest_fixture.py: 100%
72 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-08 13:27 +0200
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-08 13:27 +0200
1import numpy as np
2import pandas as pd
3import pytest
4import xarray as xr
7@pytest.fixture(scope="session")
8def mf6wel_test_data_stationary():
9 cellid_values = np.array(
10 [
11 [1, 1, 9],
12 [1, 2, 9],
13 [1, 1, 8],
14 [1, 2, 8],
15 [2, 3, 7],
16 [2, 4, 7],
17 [2, 3, 6],
18 [2, 4, 6],
19 ],
20 )
21 coords = {"ncellid": np.arange(8) + 1, "nmax_cellid": ["layer", "row", "column"]}
22 cellid = xr.DataArray(cellid_values, coords=coords, dims=("ncellid", "nmax_cellid"))
23 rate = xr.DataArray(
24 [1.0] * 8, coords={"ncellid": np.arange(8) + 1}, dims=("ncellid",)
25 )
26 return cellid, rate
29@pytest.fixture(scope="session")
30def mf6wel_test_data_transient():
31 cellid_values = np.array(
32 [
33 [1, 1, 9],
34 [1, 2, 9],
35 [1, 1, 8],
36 [1, 2, 8],
37 [2, 3, 7],
38 [2, 4, 7],
39 [2, 3, 6],
40 [2, 4, 6],
41 ],
42 )
43 coords = {"ncellid": np.arange(8) + 1, "nmax_cellid": ["layer", "row", "column"]}
44 cellid = xr.DataArray(cellid_values, coords=coords, dims=("ncellid", "nmax_cellid"))
46 rate = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
48 globaltimes = pd.date_range("2000-01-01", "2000-01-06")
49 weltimes = globaltimes[:-1]
51 rate_time = xr.DataArray(
52 np.arange(len(weltimes)) + 1, coords={"time": weltimes}, dims=("time",)
53 )
54 rate_cells = xr.DataArray(
55 rate, coords={"ncellid": np.arange(8) + 1}, dims=("ncellid",)
56 )
57 rate_wel = rate_time * rate_cells
59 return cellid, rate_wel
62@pytest.fixture(scope="session")
63def well_high_lvl_test_data_stationary():
64 screen_top = [0.0, 0.0, 0.0, 0.0, -6.0, -6.0, -6.0, -6.0]
65 screen_bottom = [-2.0, -2.0, -2.0, -2.0, -20.0, -20.0, -20.0, -20.0]
66 # fmt: off
67 y = [83.0, 77.0, 82.0, 71.0, 62.0, 52.0, 66.0, 59.0]
68 x = [81.0, 82.0, 75.0, 77.0, 68.0, 64.0, 52.0, 51.0]
69 # fmt: on
70 rate = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
71 rate_wel = xr.DataArray(rate, dims=("index",))
73 da_species = xr.DataArray(
74 [10, 23],
75 coords={"species": ["salinity", "temparature"]},
76 dims=("species",),
77 )
79 concentration = da_species * rate_wel
81 return x, y, screen_top, screen_bottom, rate_wel, concentration
84@pytest.fixture(scope="session")
85def well_high_lvl_test_data_transient():
86 screen_top = [0.0, 0.0, 0.0, 0.0, -6.0, -6.0, -6.0, -6.0]
87 screen_bottom = [-2.0, -2.0, -2.0, -2.0, -20.0, -20.0, -20.0, -20.0]
88 # fmt: off
89 y = [83.0, 77.0, 82.0, 71.0, 62.0, 52.0, 66.0, 59.0]
90 x = [81.0, 82.0, 75.0, 77.0, 68.0, 64.0, 52.0, 51.0]
91 # fmt: on
92 rate = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
94 globaltimes = pd.date_range("2000-01-01", "2000-01-06")
95 weltimes = globaltimes[:-1]
97 rate_time = xr.DataArray(
98 np.arange(len(weltimes)) + 1, coords={"time": weltimes}, dims=("time",)
99 )
100 rate_cells = xr.DataArray(rate, dims=("index",))
101 rate_wel = rate_time * rate_cells
103 da_species = xr.DataArray(
104 [10, 23],
105 coords={"species": ["salinity", "temparature"]},
106 dims=("species",),
107 )
109 concentration = da_species * rate_wel
111 return x, y, screen_top, screen_bottom, rate_wel, concentration
114@pytest.fixture(scope="session")
115def well_test_data_stationary():
116 layer = np.array([3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
117 row = np.array([5, 4, 6, 9, 9, 9, 9, 11, 11, 11, 11, 13, 13, 13, 13])
118 column = np.array([11, 6, 12, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14])
119 rate = np.full(15, 5.0)
120 injection_concentration = np.full((15, 2), np.NaN)
121 injection_concentration[:, 0] = 123 # salinity
122 injection_concentration[:, 1] = 456 # temperature
123 return layer, row, column, rate, injection_concentration
126@pytest.fixture(scope="session")
127def well_test_data_transient():
128 layer = np.array([3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
129 row = np.array([5, 4, 6, 9, 9, 9, 9, 11, 11, 11, 11, 13, 13, 13, 13])
130 column = np.array([11, 6, 12, 8, 10, 12, 14, 8, 10, 12, 14, 8, 10, 12, 14])
131 times = np.array(["2000-01-01", "2000-02-01"], dtype="datetime64[ns]")
132 rate = xr.DataArray(
133 np.full((2, 15), 5.0), coords={"time": times}, dims=["time", "index"]
134 )
135 injection_concentration = np.full((2, 15, 2), np.NaN)
136 injection_concentration[0, :, 0] = 123 # salinity, time 0
137 injection_concentration[0, :, 1] = 456 # temperature, time 0
138 injection_concentration[1, :, 0] = 246 # salinity, time 1
139 injection_concentration[1, :, 1] = 135 # temperature, time 1
140 return layer, row, column, times, rate, injection_concentration