Skip to content

Commit 2ff1011

Browse files
authored
Merge pull request #226 from simopt-admin/feature/pickle-zstd-expect-test
Feature/pickle zstd expect test
2 parents d5f92b6 + 4bb9858 commit 2ff1011

164 files changed

Lines changed: 19 additions & 192226 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ dev = [
5353
"pytest>=9.0.1",
5454
"ruff>=0.14.2",
5555
"ty>=0.0.1a26",
56+
"zstandard>=0.25.0",
5657
]
5758
docs = ["sphinx>=8.2.3", "sphinx-autoapi>=3.6.1", "sphinx-rtd-theme>=3.0.2"]
5859
notebooks = ["ipykernel>=7.1.0"]

scripts/generate_experiment_results.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
"""Create test cases for all compatible problem-solver pairs."""
22

3+
import pickle
34
import sys
45
from pathlib import Path
56

6-
import yaml
7+
import zstandard as zstd
78

89
# Append the parent directory (simopt package) to the system path
910
sys.path.append(str(Path(__file__).resolve().parent.parent))
@@ -78,16 +79,21 @@ def create_test(problem_name: str, solver_name: str) -> None:
7879
"objective_curves": myexperiment.objective_curves,
7980
"progress_curves": myexperiment.progress_curves,
8081
"all_est_lhs": myexperiment.all_est_lhs,
82+
"all_post_replicates": myexperiment.all_post_replicates,
83+
"all_stoch_constraints": myexperiment.all_stoch_constraints,
84+
"n_postreps_init_opt": myexperiment.n_postreps_init_opt,
85+
"x0_postreps": myexperiment.x0_postreps,
86+
"xstar_postreps": myexperiment.xstar_postreps,
8187
}
8288

8389
# Define the directory and output file
8490
file_problem_name = "".join(e for e in problem_name if e.isalnum())
8591
file_solver_name = "".join(e for e in solver_name if e.isalnum())
86-
results_filename = f"{file_problem_name}_{file_solver_name}.yaml"
92+
results_filename = f"{file_problem_name}_{file_solver_name}.pickle.zst"
8793
results_filepath = EXPECTED_RESULTS_DIR / results_filename
8894
# Write the results to the file
89-
with Path.open(results_filepath, "w") as f:
90-
yaml.dump(results_dict, f)
95+
with zstd.open(results_filepath, "wb") as f:
96+
pickle.dump(results_dict, f)
9197

9298

9399
def main() -> None:
@@ -103,7 +109,7 @@ def main() -> None:
103109
# Create the test directory if it doesn't exist
104110
# Create the expected directory if it doesn't exist
105111
Path.mkdir(EXPECTED_RESULTS_DIR, parents=True, exist_ok=True)
106-
existing_results = [path.name for path in EXPECTED_RESULTS_DIR.glob("*.yaml")]
112+
existing_results = [path.name for path in EXPECTED_RESULTS_DIR.glob("*.pickle.zst")]
107113

108114
# Don't generate any tests for pairs that already have tests generated
109115
for pair in compatible_pairs:
@@ -112,7 +118,7 @@ def main() -> None:
112118
# Generate the expected filenames
113119
file_problem_name = "".join(e for e in problem_name if e.isalnum())
114120
file_solver_name = "".join(e for e in solver_name if e.isalnum())
115-
results_filename = f"{file_problem_name}_{file_solver_name}.yaml"
121+
results_filename = f"{file_problem_name}_{file_solver_name}.pickle.zst"
116122
# If file exists, skip it
117123
if results_filename in existing_results:
118124
print(f"Test for {pair} already exists")
10.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)