Spaces:
Running
Running
import fnmatch | |
import sys | |
import unittest | |
import warnings | |
import click | |
from ..test import ( | |
get_runtests_cli, | |
runtests, | |
runtests_dev, | |
runtests_jax, | |
runtests_startup, | |
runtests_torch, | |
) | |
def pysr(context): | |
ctx = context | |
def _install(julia_project, quiet, precompile): | |
warnings.warn( | |
"This command is deprecated. Julia dependencies are now installed at first import." | |
) | |
TEST_OPTIONS = {"main", "jax", "torch", "cli", "dev", "startup"} | |
def _tests(tests, expressions): | |
"""Run parts of the PySR test suite. | |
Choose from main, jax, torch, cli, dev, and startup. You can give multiple tests, separated by commas. | |
""" | |
test_cases = [] | |
for test in tests.split(","): | |
if test == "main": | |
test_cases.extend(runtests(just_tests=True)) | |
elif test == "jax": | |
test_cases.extend(runtests_jax(just_tests=True)) | |
elif test == "torch": | |
test_cases.extend(runtests_torch(just_tests=True)) | |
elif test == "cli": | |
runtests_cli = get_runtests_cli() | |
test_cases.extend(runtests_cli(just_tests=True)) | |
elif test == "dev": | |
test_cases.extend(runtests_dev(just_tests=True)) | |
elif test == "startup": | |
test_cases.extend(runtests_startup(just_tests=True)) | |
else: | |
warnings.warn(f"Invalid test {test}. Skipping.") | |
loader = unittest.TestLoader() | |
suite = unittest.TestSuite() | |
for test_case in test_cases: | |
loaded_tests = loader.loadTestsFromTestCase(test_case) | |
for test in loaded_tests: | |
if len(expressions) == 0 or any( | |
fnmatch.fnmatch(test.id(), "*" + expression + "*") | |
for expression in expressions | |
): | |
suite.addTest(test) | |
runner = unittest.TextTestRunner() | |
results = runner.run(suite) | |
if not results.wasSuccessful(): | |
sys.exit(1) | |