diff --git a/dymos/examples/vanderpol/doc/test_doc_vanderpol.py b/dymos/examples/vanderpol/doc/test_doc_vanderpol.py index 18d8d364e..20abb1907 100644 --- a/dymos/examples/vanderpol/doc/test_doc_vanderpol.py +++ b/dymos/examples/vanderpol/doc/test_doc_vanderpol.py @@ -1,10 +1,14 @@ import os import unittest +import openmdao from openmdao.utils.testing_utils import use_tempdirs from openmdao.utils.mpi import MPI +om_version = tuple([int(s) for s in openmdao.__version__.split('-')[0].split('.')]) + + @use_tempdirs class TestVanderpolForDocs(unittest.TestCase): def tearDown(self): @@ -21,6 +25,7 @@ def test_vanderpol_for_docs_simulation(self): dm.run_problem(p, run_driver=False, simulate=True, make_plots=True) + @unittest.skipIf(om_version < (3, 29, 0), 'Test requires OpenMDAO 3.29.0 or later') def test_vanderpol_for_docs_optimize(self): import dymos as dm from dymos.examples.vanderpol.vanderpol_dymos import vanderpol @@ -31,6 +36,7 @@ def test_vanderpol_for_docs_optimize(self): dm.run_problem(p, simulate=True, make_plots=True) + @unittest.skipIf(om_version < (3, 29, 0), 'Test requires OpenMDAO 3.29.0 or later') def test_vanderpol_for_docs_optimize_refine(self): import dymos as dm from dymos.examples.vanderpol.vanderpol_dymos import vanderpol @@ -56,6 +62,7 @@ def test_vanderpol_for_docs_optimize_refine(self): class TestVanderpolDelayMPI(unittest.TestCase): N_PROCS = 2 + @unittest.skipIf(om_version < (3, 29, 0), 'Test requires OpenMDAO 3.29.0 or later') def test_vanderpol_delay_mpi(self): import openmdao.api as om import dymos as dm diff --git a/dymos/examples/vanderpol/test/test_vanderpol.py b/dymos/examples/vanderpol/test/test_vanderpol.py index 79cd92d0a..351704674 100644 --- a/dymos/examples/vanderpol/test/test_vanderpol.py +++ b/dymos/examples/vanderpol/test/test_vanderpol.py @@ -2,6 +2,7 @@ from numpy.testing import assert_almost_equal import numpy as np +import openmdao from openmdao.utils.testing_utils import use_tempdirs, require_pyoptsparse from openmdao.utils.mpi import MPI @@ -9,6 +10,9 @@ from dymos.examples.vanderpol.vanderpol_dymos import vanderpol +om_version = tuple([int(s) for s in openmdao.__version__.split('-')[0].split('.')]) + + @use_tempdirs class TestVanderpolExample(unittest.TestCase): def test_vanderpol_simulate(self): @@ -16,14 +20,15 @@ def test_vanderpol_simulate(self): p = vanderpol(transcription='gauss-lobatto', num_segments=75) p.run_model() + @unittest.skipIf(om_version < (3, 29, 0), 'Test requires OpenMDAO 3.29.0 or later') @require_pyoptsparse(optimizer='IPOPT') def test_vanderpol_simulate_true(self): - # simulate true p = vanderpol(transcription='radau-ps', num_segments=30, transcription_order=3, compressed=True, optimizer='IPOPT', delay=0.005, distrib=True, use_pyoptsparse=True) dm.run_problem(p, run_driver=True, simulate=True) + @unittest.skipIf(om_version < (3, 29, 0), 'Test requires OpenMDAO 3.29.0 or later') def test_vanderpol_optimal(self): p = vanderpol(transcription='gauss-lobatto', num_segments=75) dm.run_problem(p) # find optimal control solution to stop oscillation @@ -34,6 +39,7 @@ def test_vanderpol_optimal(self): assert_almost_equal(p.get_val('traj.phase0.states:x1')[-1, ...], np.zeros(1)) assert_almost_equal(p.get_val('traj.phase0.controls:u')[-1, ...], np.zeros(1), decimal=3) + @unittest.skipIf(om_version < (3, 29, 0), 'Test requires OpenMDAO 3.29.0 or later') def test_vanderpol_optimal_grid_refinement(self): # enabling grid refinement gives a faster and better solution with fewer segments p = vanderpol(transcription='gauss-lobatto', num_segments=15) @@ -53,6 +59,7 @@ class TestVanderpolExampleMPI(unittest.TestCase): N_PROCS = 4 + @unittest.skipIf(om_version < (3, 29, 0), 'Test requires OpenMDAO 3.29.0 or later') @require_pyoptsparse(optimizer='IPOPT') @unittest.skipUnless(MPI, 'this test requires MPI') def test_vanderpol_optimal_mpi(self):