|
9 | 9 |
|
10 | 10 | import pytest |
11 | 11 |
|
12 | | -from cmdstanpy.compilation import CompilerOptions, format_stan_file |
| 12 | +from cmdstanpy.compilation import ( |
| 13 | + CompilerOptions, |
| 14 | + format_stan_file, |
| 15 | + resolve_cpp_options, |
| 16 | + resolve_stanc_options, |
| 17 | +) |
13 | 18 |
|
14 | 19 | HERE = os.path.dirname(os.path.abspath(__file__)) |
15 | 20 | DATAFILES_PATH = os.path.join(HERE, 'data') |
@@ -225,3 +230,23 @@ def test_model_format_options() -> None: |
225 | 230 | formatted = sys_stdout.getvalue() |
226 | 231 | assert formatted.count('{') == 3 |
227 | 232 | assert formatted.count('(') == 1 |
| 233 | + |
| 234 | + |
| 235 | +def test_compilation_options_resolution() -> None: |
| 236 | + out = resolve_cpp_options(None, multithreading=False) |
| 237 | + assert not out |
| 238 | + out = resolve_cpp_options(None, multithreading=True) |
| 239 | + assert out == {"STAN_THREADS": "TRUE"} |
| 240 | + out = resolve_cpp_options({"STAN_THREADS": ""}, multithreading=True) |
| 241 | + assert out == {"STAN_THREADS": ""} |
| 242 | + out = resolve_cpp_options({"STAN_OPENCL": "TRUE"}, multithreading=True) |
| 243 | + assert out == {"STAN_THREADS": "TRUE", "STAN_OPENCL": "TRUE"} |
| 244 | + |
| 245 | + out = resolve_stanc_options(None, stanc_optimizations=False) |
| 246 | + assert not out |
| 247 | + out = resolve_stanc_options(None, stanc_optimizations=True) |
| 248 | + assert out == {"O": 1} |
| 249 | + out = resolve_stanc_options({"O": 0}, stanc_optimizations=True) |
| 250 | + assert out == {"O": 0} |
| 251 | + out = resolve_stanc_options({"O": "experimental"}, stanc_optimizations=True) |
| 252 | + assert out == {"O": "experimental"} |
0 commit comments