Spaces:
Running
Running
import os | |
import subprocess | |
import unittest | |
from pathlib import Path | |
class TestDev(unittest.TestCase): | |
def test_simple_change_to_backend(self): | |
"""Test that we can use a development version of SymbolicRegression.jl""" | |
PYSR_TEST_JULIA_VERSION = os.environ.get("PYSR_TEST_JULIA_VERSION", "1.6") | |
PYSR_TEST_PYTHON_VERSION = os.environ.get("PYSR_TEST_PYTHON_VERSION", "3.9") | |
build_result = subprocess.run( | |
[ | |
"docker", | |
"build", | |
"-t", | |
"pysr-dev", | |
"--build-arg", | |
f"JLVERSION={PYSR_TEST_JULIA_VERSION}", | |
"--build-arg", | |
f"PYVERSION={PYSR_TEST_PYTHON_VERSION}", | |
"-f", | |
"pysr/test/test_dev_pysr.dockerfile", | |
".", | |
], | |
env=os.environ, | |
cwd=Path(__file__).parent.parent.parent, | |
universal_newlines=True, | |
) | |
self.assertEqual(build_result.returncode, 0) | |
test_result = subprocess.run( | |
[ | |
"docker", | |
"run", | |
"--rm", | |
"pysr-dev", | |
"python3", | |
"-c", | |
"from pysr import SymbolicRegression as SR; print(SR.__test_function())", | |
], | |
stdout=subprocess.PIPE, | |
stderr=subprocess.PIPE, | |
env=os.environ, | |
cwd=Path(__file__).parent.parent.parent, | |
) | |
self.assertEqual(test_result.returncode, 0) | |
self.assertEqual(test_result.stdout.decode("utf-8").strip(), "2.3") | |
def runtests(just_tests=False): | |
tests = [TestDev] | |
if just_tests: | |
return tests | |
suite = unittest.TestSuite() | |
loader = unittest.TestLoader() | |
for test in tests: | |
suite.addTests(loader.loadTestsFromTestCase(test)) | |
runner = unittest.TextTestRunner() | |
return runner.run(suite) | |