Skip to content

Commit c31fe8a

Browse files
Updated tests for experiments
1 parent 05b7c20 commit c31fe8a

22 files changed

Lines changed: 40 additions & 26 deletions

.github/workflows/discovery.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
- name: Run discovery tests
3434
run: |
3535
pytest tests/functional/ -m functional \
36-
--discovery --report \
36+
--discovery --use-solver --report \
3737
--operators ${{ matrix.operator }} \
3838
--ignore=tests/functional/tests/test_ns.py \
3939
--timeout=3600

tests/functional/conftest.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ def pytest_addoption(parser):
2727
help="Comma-separated list of operators to test",
2828
)
2929

30+
parser.addoption(
31+
"--use-solver",
32+
action="store_true",
33+
default=False,
34+
help="Enable solver-based fitness (DeepXDE) during discovery",
35+
)
36+
3037
@pytest.fixture
3138
def runtime_options(request):
3239
operators = request.config.getoption("--operators")
@@ -36,6 +43,7 @@ def runtime_options(request):
3643
"report": request.config.getoption("--report"),
3744
"report_dir": Path(request.config.getoption("--report-dir")),
3845
"operators": operator_list,
46+
"use_solver": request.config.getoption("--use-solver"),
3947
}
4048

4149
def pytest_configure(config):

tests/functional/scenarios/ac/ac.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ def noise_data(data, noise_level):
5050
def make_additional_tokens(self):
5151
return []
5252

53-
def make_search(self):
53+
def make_search(self, use_solver=False):
5454
grid, data = self.ac_data()
5555
data_nn = self.load_pretrained_PINN()
5656

5757
epde_search_obj = EpdeSearch(
58-
use_solver=False,
58+
use_solver=use_solver,
5959
use_pic=True,
6060
boundary=(5, 12),
6161
coordinate_tensors=(grid[0], grid[1]),

tests/functional/scenarios/burgers/burgers.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,15 @@ def make_additional_tokens_discovery(self, grid):
121121
params_ranges={"power": (1, 1)},
122122
params_equality_ranges=None,
123123
)
124-
trig_tokens = TrigonometricTokens(dimensionality=dimensionality, freq=(0.999, 1.001))
124+
trig_tokens = TrigonometricTokens(dimensionality=self.dimensionality, freq=(0.999, 1.001))
125125
return [custom_grid_tokens]
126126

127-
def make_search(self):
127+
def make_search(self, use_solver=False):
128128
grid, data = self.load_burgers_sindy_data(os.path.join(self.foldername, "burgers.mat"))
129+
self.dimensionality = data.ndim - 1
129130

130131
epde_search_obj = EpdeSearch(
131-
use_solver=False,
132+
use_solver=use_solver,
132133
use_pic=True,
133134
boundary=10,
134135
coordinate_tensors=(grid[0], grid[1]),

tests/functional/scenarios/kdv/kdv.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,11 @@ def eq_to_text(eq):
118118
encoding="utf-8",
119119
)
120120

121-
def make_search(self):
121+
def make_search(self, use_solver=False):
122122
grid, data = self.load_data()
123123

124124
epde_search_obj = EpdeSearch(
125-
use_solver=False,
125+
use_solver=use_solver,
126126
use_pic=True,
127127
boundary=10,
128128
coordinate_tensors=(grid[0], grid[1]),

tests/functional/scenarios/ks/ks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,11 @@ def eq_to_text(eq):
8686
encoding="utf-8",
8787
)
8888

89-
def make_search(self):
89+
def make_search(self, use_solver=False):
9090
grid, data = self.load_ks_data(os.path.join(self.foldername, "kuramoto_sivishinky.mat"))
9191

9292
epde_search_obj = EpdeSearch(
93-
use_solver=False,
93+
use_solver=use_solver,
9494
use_pic=True,
9595
boundary=(50, 400),
9696
coordinate_tensors=grid,

tests/functional/scenarios/lorenz/lorenz.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def lorenz_data(self):
135135
return t, data
136136

137137
@pytest.mark.slow
138-
def run_discovery(self, search_obj, report_dir=None, operator_name="unknown"):
138+
def run_discovery(self, search_obj, report_dir=None, operator_name="unknown", use_solver=False):
139139
t, data = self.lorenz_data()
140140
noised_data = self.noise_data(data, self.noise_level)
141141
end = 1000
@@ -144,7 +144,7 @@ def run_discovery(self, search_obj, report_dir=None, operator_name="unknown"):
144144
y = noised_data[:end, 1]
145145
z = noised_data[:end, 2]
146146

147-
epde_search_obj = EpdeSearch(use_solver=False, multiobjective_mode=True, use_pic=True, boundary=(100),
147+
epde_search_obj = EpdeSearch(use_solver=use_solver, multiobjective_mode=True, use_pic=True, boundary=(100),
148148
coordinate_tensors=[t, ], verbose_params={'show_iter_idx': True},
149149
device='cuda' if torch.cuda.is_available() else 'cpu')
150150

tests/functional/scenarios/lv/lv.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def make_search(self):
116116
return epde_search_obj
117117

118118
@pytest.mark.slow
119-
def run_discovery(self, search_obj, report_dir=None, operator_name="unknown"):
119+
def run_discovery(self, search_obj, report_dir=None, operator_name="unknown", use_solver=False):
120120
t, data = self.lv_data()
121121
noised_data = self.noise_data(data, self.noise_level)
122122
end = 150
@@ -125,7 +125,7 @@ def run_discovery(self, search_obj, report_dir=None, operator_name="unknown"):
125125
v = noised_data[:end, 1]
126126

127127
epde_search_obj = EpdeSearch(
128-
use_solver=False,
128+
use_solver=use_solver,
129129
multiobjective_mode=True,
130130
use_pic=True,
131131
boundary=15,

tests/functional/scenarios/ns/ns.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,14 @@ def make_search(self):
124124
return epde_search_obj
125125

126126
@pytest.mark.slow
127-
def run_discovery(self, search_obj, report_dir=None, operator_name="unknown"):
127+
def run_discovery(self, search_obj, report_dir=None, operator_name="unknown", use_solver=False):
128128
"""Режим поиска уравнений (discovery)."""
129129
grids, data = self.ns_data()
130130
noised_data = self.noise_data(data, self.noise_level)
131131
t, y, x = grids
132132

133133
epde_search_obj = EpdeSearch(
134-
use_solver=False,
134+
use_solver=use_solver,
135135
multiobjective_mode=True,
136136
use_pic=True,
137137
boundary=[21,21,46],

tests/functional/scenarios/vdp/vdp.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ def make_additional_tokens():
4747
def noise_data(data, noise_level):
4848
return noise_level * 0.01 * np.std(data) * np.random.normal(size=data.shape) + data
4949

50-
def make_search(self):
50+
def make_search(self, use_solver=False):
5151
step = 0.05
5252
steps_num = 320
5353
t = np.arange(0., step * steps_num, step)
5454

5555
epde_search_obj = EpdeSearch(
56-
use_solver=False,
56+
use_solver=use_solver,
5757
use_pic=True,
5858
boundary=2,
5959
coordinate_tensors=[t],

0 commit comments

Comments
 (0)