From 713b86e5300ae730b63bb4795d62fd9cb1f314c2 Mon Sep 17 00:00:00 2001 From: Chris Kees <613654+cekees@users.noreply.github.com> Date: Thu, 23 Jun 2022 09:35:31 -0500 Subject: [PATCH] update conda, hashdist, osx build, and chrono ANCF usage (#1261) * update conda package versions * update hashdist stack * update chrono ANCF gravity usage * relax tolerances on several tests * change travis image to minimal (language: minimal) * remove nose dependency * remove hard-coded compilers and options on travis conda builds * use conda-installed openblas in default darwin config (no Accelerate) --- .travis.yml | 16 +- Makefile | 2 +- environment-dev.yml | 75 ++++--- proteus/config/default.py | 9 +- proteus/mbd/CouplingFSI.pyx | 1 - proteus/mbd/ProtChMoorings.h | 6 +- .../case_run/test_workflowPUMI.py | 3 - .../test_MeshAdaptRestart.py | 6 - .../test_MeshAdaptRestart_withRedistancing.py | 6 - .../test_MeshAdaptRestart_withRDMC.py | 7 - proteus/tests/MeshAdaptPUMI/test_gmshCheck.py | 22 +-- proteus/tests/MeshAdaptPUMI/test_meshLoad.py | 15 +- .../MeshAdaptPUMI/test_parallelMeshLoad.py | 15 +- .../MeshAdaptPUMI/test_poiseuilleError.py | 11 +- proteus/tests/POD/test_deim.py | 8 - .../linalgebra_tests/test_linear_algebra.py | 26 +-- proteus/tests/mesh_tests/test_meshtools.py | 184 +++++++++--------- .../development_tests/P2_LN.py | 5 - proteus/tests/test_bodydynamics.py | 4 +- proteus/tests/test_context.py | 14 +- proteus/tests/test_gauges.py | 15 +- proteus/tests/test_mbd_chrono.py | 1 - proteus/tests/test_proteus_diamond.pbs | 23 --- proteus/tests/test_read_mesh_xml.py | 24 +-- proteus/tests/test_sedclosure.py | 2 +- proteus/tests/test_spatialtools.py | 2 - stack | 2 +- 27 files changed, 194 insertions(+), 310 deletions(-) delete mode 100644 proteus/tests/test_proteus_diamond.pbs diff --git a/.travis.yml b/.travis.yml index 9429e178d7..fc6fe07914 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ os: linux dist: focal -language: python -python: 3.9 +language: minimal notifications: email: @@ -14,8 +13,6 @@ jobs: name: "conda linux" os: linux dist: focal - language: python - python: 3.9 env: TEST_PROFILE="proteus-conda" install: - git lfs pull @@ -29,13 +26,13 @@ jobs: - conda info -a - conda env create -f environment-dev.yml - conda activate proteus-dev - - PROTEUS_OPT="-g0 -O2 -DNDEBUG" FC=gfortran CC=mpicc CXX=mpicxx make develop-conda N=2 + - make develop-conda N=2 script: - export MPLBACKEND="AGG" - py.test -n 1 --forked -v proteus/tests --ignore proteus/tests/POD --ignore proteus/tests/solver_tests/test_nse_RANS2P_step.py - py.test -n 1 --forked -v air-water-vv/Tests/1st_set - py.test -n 1 --forked -v air-water-vv/Tests/2nd_set - - mpiexec -np 2 pytest -v proteus/tests/FSI + - py.test -n 1 --forked -v proteus/tests/FSI deploy: provider: script script: bash ./scripts/deploy.sh docs @@ -45,9 +42,7 @@ jobs: - stage: test name: "conda osx" os: osx - osx_image: xcode12.2 - language: ruby - python: 2.6.6 + osx_image: xcode13.4 env: TEST_PROFILE="proteus-conda-osx" install: - wget https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -O miniconda.sh; @@ -60,7 +55,7 @@ jobs: - conda env create -f environment-dev.yml - conda activate proteus-dev - pip install gmsh - - PROTEUS_OPT="-g0 -O2 -DNDEBUG" FC=gfortran CC=mpicc CXX=mpicxx make develop-conda N=2 + - make develop-conda N=2 script: - export MPLBACKEND="AGG" - git lfs install @@ -68,3 +63,4 @@ jobs: - py.test -n 1 --forked -v proteus/tests --ignore proteus/tests/solver_tests --ignore proteus/tests/POD --ignore=proteus/tests/MoveMeshMonitor --ignore proteus/tests/periodic - py.test -n 1 --forked -v air-water-vv/Tests/1st_set - py.test -n 1 --forked -v air-water-vv/Tests/2nd_set --ignore air-water-vv/Tests/2nd_set/test_randomWaves.py + - py.test -n 1 --forked -v proteus/tests/FSI diff --git a/Makefile b/Makefile index 06293de74d..0e8a67e7a1 100644 --- a/Makefile +++ b/Makefile @@ -197,7 +197,7 @@ develop: ${PROTEUS_PREFIX}/bin/proteus_env.sh stack/default.yaml ${PROTEUS_PREFI @echo "Installing development version" @echo "************************" $(call show_info) - ${PROTEUS_ENV} pip install py2gmsh pytest pytest-xdist pytest-cov nose tables future + ${PROTEUS_ENV} pip install py2gmsh pytest pytest-xdist pytest-cov tables future ${PROTEUS_ENV} ${PROTEUS_DEVELOP_BUILD_CMD} ${PROTEUS_ENV} ${PROTEUS_DEVELOP_CMD} @echo "************************" diff --git a/environment-dev.yml b/environment-dev.yml index 1acf40a9c5..a4a0c3006a 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -3,56 +3,55 @@ channels: - conda-forge - defaults dependencies: - - pip =21.1.3 - - compilers =1.2.0 + - pip =22.1.2 + - compilers =1.4.1 - make - - setuptools =49.6.0 - - cython =0.29.24 + - setuptools =62.6.0 + - cython =0.29.30 - daetk =1.0.1 - - hdf5 =1.10.6=*mpich* - - h5py =3.3.0=*mpich* + - hdf5 =1.12.1=*mpich* + - h5py =3.6.0=*mpich* - metis =5.1.0 - - mpich =3.4.2 - - mpich-mpicc =3.4.2 - - mpich-mpicxx =3.4.2 - - numpy =1.21.0 - - openblas =0.3.17 + - mpich =4.0.2 + - mpich-mpicc =4.0.2 + - mpich-mpicxx =4.0.2 + - numpy =1.22.4 + - openblas =0.3.20 - parmetis =4.0.3 - - petsc4py =3.14.1 - - petsc =3.14.6 + - petsc4py =3.17.2 + - petsc =3.17.2 - scorec =2.2.2 - superlu =5.2.2 - - superlu_dist =6.2.0 + - superlu_dist =7.2.0 - triangle =1.6 - - pychrono =6.0.0 - - gmsh =4.8.4 - - matplotlib =3.4.2 - - mpi4py =3.0.3 - - nose - - pytables =3.6.1 + - pychrono =7.0.0 + - gmsh =4.10.4 + - matplotlib =3.5.2 + - mpi4py =3.1.3 + - pytables =3.7.0 - pytest - pytest-cov - pytest-xdist - - scipy =1.7.0 + - scipy =1.8.1 - tetgen =1.6.0 - - ncurses =6.2 - - python =3.9.6 + - ncurses =6.3 + - python =3.10.5 - future =0.18.2 - - ipyparallel =6.3.0 - - pillow =8.3.1 - - xtensor-python = 0.25.3 + - ipyparallel =8.4.0 + - pillow =9.1.1 + - xtensor-python = 0.26.1 - git-lfs - - eigen =3.3.9 - - zoltan =3.83 - - hypre =2.18.2 + - eigen =3.4.0 + - zoltan =3.901 + - hypre =2.24.0 - mumps-mpi =5.2.1 - - numexpr =2.7.3 + - numexpr =2.8.0 - ptscotch =6.0.9 - - scalapack =2.0.2 - - tbb =2020.2 - - zipp =3.5.0 - - parso =0.8.2 - - pycparser =2.20 - - ipython =7.25.0 - - decorator =5.0.9 - - cffi =1.14.6 + - scalapack =2.2.0 + - tbb =2021.5.0 + - zipp =3.8.0 + - parso =0.8.3 + - pycparser =2.21 + - ipython =8.4.0 + - decorator =5.1.1 + - cffi =1.15.0 diff --git a/proteus/config/default.py b/proteus/config/default.py index 4d198004a7..f60cb88c46 100644 --- a/proteus/config/default.py +++ b/proteus/config/default.py @@ -23,11 +23,10 @@ platform_lapack_h = None platform_lapack_integer = None if sys.platform == 'darwin': - platform_extra_link_args = ['-framework', 'Accelerate'] - platform_lapack_integer = '__CLPK_integer' - platform_blas_h = r'' - platform_lapack_h = r'' - platform_extra_compile_args = ['-flax-vector-conversions','-DPETSC_INCLUDE_AS_C','-DPETSC_SKIP_COMPLEX'] + platform_extra_compile_args = ['-DPETSC_INCLUDE_AS_C', '-DPETSC_SKIP_COMPLEX'] + platform_extra_link_args = ['-L'+PROTEUS_LIB_DIR,'-Wl,-rpath,' + PROTEUS_LIB_DIR] + platform_blas_h = r'"proteus_blas.h"' + platform_lapack_h = r'"proteus_lapack.h"' major,minor = platform.mac_ver()[0].split('.')[0:2] os.environ["MACOSX_DEPLOYMENT_TARGET"]= major+'.'+minor elif sys.platform.startswith('linux'): diff --git a/proteus/mbd/CouplingFSI.pyx b/proteus/mbd/CouplingFSI.pyx index d031801e25..2e27e288de 100644 --- a/proteus/mbd/CouplingFSI.pyx +++ b/proteus/mbd/CouplingFSI.pyx @@ -2407,7 +2407,6 @@ cdef class ProtChMesh: def __cinit__(self, ProtChSystem system): self.ChMeshh = chrono_fea.ChMesh() - self.ChMeshh.SetAutomaticGravity(True) cdef SwigPyObject *swig_obj = self.ChMeshh.this cdef shared_ptr[ch.ChMesh]* pt_to_shp = swig_obj.ptr; self.mesh = pt_to_shp[0] diff --git a/proteus/mbd/ProtChMoorings.h b/proteus/mbd/ProtChMoorings.h index e97a1b8414..3b8afa3722 100644 --- a/proteus/mbd/ProtChMoorings.h +++ b/proteus/mbd/ProtChMoorings.h @@ -10,7 +10,7 @@ #include "chrono/physics/ChLoadContainer.h" #include "chrono/physics/ChLinkMate.h" #include "chrono/physics/ChBodyEasy.h" -#include "chrono/fea/ChElementBeamANCF.h" +#include "chrono/fea/ChElementBeamANCF_3333.h" #include "chrono/fea/ChElementCableANCF.h" #include "chrono/fea/ChElementBeamEuler.h" #include "chrono/fea/ChBeamSection.h" @@ -735,7 +735,7 @@ void cppCable::buildElementsCableANCF(bool set_lastnodes) { auto load = chrono_types::make_shared(element); std::shared_ptr> loadtri(new ChLoad(element)); auto load_volumetric = chrono_types::make_shared>(element); - load_volumetric->loader.Set_G_acc(ChVector<>(0.,0.,0.)); + load_volumetric->loader.Set_G_acc(system->Get_G_acc()); /* loadcontainer->Add(load_distributed); */ /* loadcontainer->Add(load); */ loadcontainer->Add(loadtri); // do not forget to add the load to the load container. @@ -772,7 +772,7 @@ void cppCable::buildElementsBeamEuler(bool set_lastnodes) { auto load = chrono_types::make_shared(element); std::shared_ptr> loadtri(new ChLoad(element)); auto load_volumetric = chrono_types::make_shared>(element); - load_volumetric->loader.Set_G_acc(ChVector<>(0.,0.,0.)); + load_volumetric->loader.Set_G_acc(system->Get_G_acc()); /* loadcontainer->Add(load_distributed); */ /* loadcontainer->Add(load); */ loadcontainer->Add(loadtri); // do not forget to add the load to the load container. diff --git a/proteus/tests/MeshAdaptPUMI/case_run/test_workflowPUMI.py b/proteus/tests/MeshAdaptPUMI/case_run/test_workflowPUMI.py index fbba3b74ab..ef8a57426e 100755 --- a/proteus/tests/MeshAdaptPUMI/case_run/test_workflowPUMI.py +++ b/proteus/tests/MeshAdaptPUMI/case_run/test_workflowPUMI.py @@ -10,8 +10,5 @@ def test_workflowPUMI(verbose=0): currentPath = os.path.dirname(os.path.abspath(__file__)) runCommand = "cd "+currentPath+"; parun -l5 couette_so.py;" subprocess.check_call(runCommand,shell=True ) -if __name__ == '__main__': - import nose - nose.main(defaultTest='test_workflowPUMI:test_workflowPUMI') diff --git a/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D/test_MeshAdaptRestart.py b/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D/test_MeshAdaptRestart.py index adfa644abb..ec98a94ad5 100644 --- a/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D/test_MeshAdaptRestart.py +++ b/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D/test_MeshAdaptRestart.py @@ -1,7 +1,5 @@ #!/usr/bin/env python -from nose.tools import eq_ as eq -from nose.tools import ok_ as ok import subprocess import os import pytest @@ -37,7 +35,3 @@ def test_MeshAdaptRestart(verbose=0): if(line1 != line2): pytest.fail("pressure gauge values are not the same!\n") -if __name__ == '__main__': - import nose - nose.main(defaultTest='test_MeshAdaptRestart:test_MeshAdaptRestart_generateMesh,test_MeshAdaptRestart:test_MeshAdaptRestart_adaptiveTime_BackwardEuler_baseline, test_MeshAdaptRestart:test_MeshAdaptRestart_adaptiveTime_BackwardEuler, test_MeshAdaptRestart:test_MeshAdaptRestart') - diff --git a/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D_rd/test_MeshAdaptRestart_withRedistancing.py b/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D_rd/test_MeshAdaptRestart_withRedistancing.py index fb510484fc..275d4544e7 100644 --- a/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D_rd/test_MeshAdaptRestart_withRedistancing.py +++ b/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D_rd/test_MeshAdaptRestart_withRedistancing.py @@ -1,7 +1,5 @@ #!/usr/bin/env python -from nose.tools import eq_ as eq -from nose.tools import ok_ as ok import subprocess import os import pytest @@ -34,7 +32,3 @@ def test_MeshAdaptRestart_withRedistancing(verbose=0): if(line1 != line2): pytest.fail("pressure gauge values are not the same!\n") -if __name__ == '__main__': - import nose - nose.main(defaultTest='test_MeshAdaptRestart_withRedistancing:test_MeshAdaptRestart_generateMesh, test_MeshAdaptRestart_withRedistancing:test_MeshAdaptRestart_adaptiveTime_BackwardEuler_baseline_withRedistancing, test_MeshAdaptRestart_withRedistancing:test_MeshAdaptRestart_adaptiveTime_BackwardEuler_withRedistancing, test_MeshAdaptRestart_withRedistancing:test_MeshAdaptRestart_withRedistancing') - diff --git a/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D_rdmc/test_MeshAdaptRestart_withRDMC.py b/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D_rdmc/test_MeshAdaptRestart_withRDMC.py index f7804a68af..ca3a9ea511 100644 --- a/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D_rdmc/test_MeshAdaptRestart_withRDMC.py +++ b/proteus/tests/MeshAdaptPUMI/gauge_compare/dambreak_Colagrossi_2D_rdmc/test_MeshAdaptRestart_withRDMC.py @@ -1,7 +1,5 @@ #!/usr/bin/env python -from nose.tools import eq_ as eq -from nose.tools import ok_ as ok import subprocess import os import pytest @@ -34,8 +32,3 @@ def test_MeshAdaptRestart_withRDMC(verbose=0): for line1, line2 in zip(file1, file2): if(line1 != line2): pytest.fail("pressure gauge values are not the same!\n") - -if __name__ == '__main__': - import nose - nose.main(defaultTest='test_MeshAdaptRestart_withRDMC:test_MeshAdaptRestart_generateMesh,test_MeshAdaptRestart_withRDMC:test_MeshAdaptRestart_adaptiveTime_BackwardEuler_baseline_withRDMC, test_MeshAdaptRestart_withRDMC:test_MeshAdaptRestart_adaptiveTime_BackwardEuler_withRDMC, test_MeshAdaptRestart_withRDMC:test_MeshAdaptRestart_withRDMC') - diff --git a/proteus/tests/MeshAdaptPUMI/test_gmshCheck.py b/proteus/tests/MeshAdaptPUMI/test_gmshCheck.py index 151717ecb7..a5eb246158 100755 --- a/proteus/tests/MeshAdaptPUMI/test_gmshCheck.py +++ b/proteus/tests/MeshAdaptPUMI/test_gmshCheck.py @@ -5,8 +5,6 @@ from proteus import Domain from proteus import Comm from petsc4py import PETSc -from nose.tools import eq_ as eq -from nose.tools import ok_ as ok import os import pytest @@ -76,9 +74,9 @@ def test_gmshLoadAndAdapt(verbose=0): domain.AdaptManager.PUMIAdapter.transferFieldToPUMI(b"vof", scalar) errorTotal=domain.AdaptManager.PUMIAdapter.get_local_error() - ok(errorTotal<1e-14) + assert (errorTotal<1e-14) - #ok(domain.AdaptManager.willAdapt(),1) + #assert (domain.AdaptManager.willAdapt(),1) domain.AdaptManager.PUMIAdapter.adaptPUMIMesh(b"") mesh = MeshTools.TetrahedralMesh() @@ -88,7 +86,7 @@ def test_gmshLoadAndAdapt(verbose=0): parallel = comm.size() > 1, dim = domain.nd) nElements_final = mesh.nElements_global - ok(nElements_final>nElements_initial) + assert (nElements_final>nElements_initial) def test_2DgmshLoadAndAdapt(verbose=0): """Test for loading gmsh mesh through PUMI, estimating error and adapting for @@ -154,9 +152,9 @@ def test_2DgmshLoadAndAdapt(verbose=0): domain.AdaptManager.PUMIAdapter.transferFieldToPUMI(b"vof", scalar) errorTotal=domain.AdaptManager.PUMIAdapter.get_local_error() - ok(errorTotal<1e-14) + assert (errorTotal<1e-14) - #ok(domain.AdaptManager.willAdapt(),1) + #assert (domain.AdaptManager.willAdapt(),1) domain.AdaptManager.PUMIAdapter.adaptPUMIMesh(b"") @@ -167,7 +165,7 @@ def test_2DgmshLoadAndAdapt(verbose=0): parallel = comm.size() > 1, dim = domain.nd) nElements_final = mesh.nElements_global - ok(nElements_final>nElements_initial) + assert (nElements_final>nElements_initial) def test_2DmultiRegion(verbose=0): """Test for loading gmsh mesh through PUMI with multiple-regions""" @@ -186,10 +184,6 @@ def test_2DmultiRegion(verbose=0): mesh.cmesh = cmeshTools.CMesh() comm = Comm.init() mesh.convertFromPUMI(domain,domain.AdaptManager.PUMIAdapter, domain.faceList,domain.regList, parallel = comm.size() > 1, dim = domain.nd) - ok(mesh.elementMaterialTypes[0]==1) - ok(mesh.elementMaterialTypes[-1]==2) - -if __name__ == '__main__': - import nose - nose.main(defaultTest='test_gmshCheck:test_gmshLoadAndAdapt,test_gmshCheck:test_2DgmshLoadAndAdapt,test_gmshCheck:test_2DmultiRegion') + assert mesh.elementMaterialTypes[0]==1 + assert mesh.elementMaterialTypes[-1]==2 diff --git a/proteus/tests/MeshAdaptPUMI/test_meshLoad.py b/proteus/tests/MeshAdaptPUMI/test_meshLoad.py index eb45d51e81..3babefa225 100755 --- a/proteus/tests/MeshAdaptPUMI/test_meshLoad.py +++ b/proteus/tests/MeshAdaptPUMI/test_meshLoad.py @@ -4,8 +4,6 @@ from proteus import cmeshTools from proteus.MeshAdaptPUMI import MeshAdapt from proteus import Domain -from nose.tools import eq_ as eq -from nose.tools import ok_ as ok import os import pytest @@ -25,12 +23,7 @@ def test_meshLoadPUMI(verbose=0): cmeshTools.allocateGeometricInfo_tetrahedron(mesh.cmesh) cmeshTools.computeGeometricInfo_tetrahedron(mesh.cmesh) mesh.buildFromC(mesh.cmesh) - eq(mesh.nElements_global,670) - eq(mesh.nNodes_global,190) - eq(mesh.nEdges_global,977) - eq(mesh.nElementBoundaries_global,1458) - -if __name__ == '__main__': - import nose - nose.main(defaultTest='test_meshLoad:test_meshLoadPUMI') - + assert mesh.nElements_global == 670 + assert mesh.nNodes_global == 190 + assert mesh.nEdges_global == 977 + assert mesh.nElementBoundaries_global == 1458 diff --git a/proteus/tests/MeshAdaptPUMI/test_parallelMeshLoad.py b/proteus/tests/MeshAdaptPUMI/test_parallelMeshLoad.py index bbf3a840f1..6d382e8478 100644 --- a/proteus/tests/MeshAdaptPUMI/test_parallelMeshLoad.py +++ b/proteus/tests/MeshAdaptPUMI/test_parallelMeshLoad.py @@ -4,8 +4,6 @@ from proteus import Domain from proteus.MeshAdaptPUMI import MeshAdapt from proteus import Comm -from nose.tools import eq_ as eq -from nose.tools import ok_ as ok import os from petsc4py import PETSc import pytest @@ -52,13 +50,8 @@ def test_2DparallelLoadPUMI(verbose=0): mesh = MeshTools.TriangularMesh() mesh.cmesh = cmeshTools.CMesh() mesh.convertFromPUMI(domain,domain.PUMIMesh, domain.faceList, domain.regList,parallel = comm.size() > 1, dim = domain.nd) - eq(mesh.nElements_global,8) - eq(mesh.nNodes_global,10) - eq(mesh.nEdges_global,17) - eq(mesh.nElementBoundaries_global,17) - -if __name__ == '__main__': - import nose - nose.main(defaultTest='test_parallelMeshLoad:test_3DparallelLoadPUMI,test_parallelMeshLoad:test_2DparallelLoadPUMI') - + assert mesh.nElements_global == 8 + assert mesh.nNodes_global == 10 + assert mesh.nEdges_global == 17 + assert mesh.nElementBoundaries_global == 17 diff --git a/proteus/tests/MeshAdaptPUMI/test_poiseuilleError.py b/proteus/tests/MeshAdaptPUMI/test_poiseuilleError.py index dfd6e0de00..edc5befeeb 100755 --- a/proteus/tests/MeshAdaptPUMI/test_poiseuilleError.py +++ b/proteus/tests/MeshAdaptPUMI/test_poiseuilleError.py @@ -8,8 +8,6 @@ from petsc4py import PETSc from proteus import Quadrature from proteus.default_n import * -from nose.tools import eq_ as eq -from nose.tools import ok_ as ok import os def test_poiseuilleError(verbose=0): @@ -91,7 +89,7 @@ def dvOfXdz(x): # load the femspace with linear basis and get the quadrature points on a reference element elementQuadrature = Quadrature.SimplexGaussQuadrature(domain.nd,3) - ok(mesh.nNodes_element==4) #confirm all of the elements have 4 nodes + assert mesh.nNodes_element == 4 #confirm all of the elements have 4 nodes #hard code computation for H1 seminorm; ideally will be reformatted using the classes within proteus derivativeArrayRef = [[1,0,0],[0,1,0],[0,0,1],[-1,-1,-1]] @@ -123,9 +121,4 @@ def dvOfXdz(x): error = error + (exactgradPhi-gradPhi_h)**2*elementQuadrature.weights[k]*abs(detJ) error = sqrt(error) - ok(error origin) + assert (origin.N == 0) + assert (origin.p[0] == 0.0) + assert (origin.p[1] == 0.0) + assert (origin.p[2] == 0.0) + assert (origin.length == 1.0) + assert (origin.diameter == 1.0) + assert ((origin.unitNormal == Node.xUnitVector).all()) + assert (origin == origin_default) + assert (str(origin) == str(origin_default)) + assert (hash(origin) == hash(origin_default)) + assert (ppp > origin) for i in range(8): p = lexicographic_ordering[i] for pg in lexicographic_ordering[:i]: - ok_(pg > p) - ok_(pg >= p) - ok_(pg != p) + assert (pg > p) + assert (pg >= p) + assert (pg != p) for pl in lexicographic_ordering[i+1:]: - ok_(pl < p) - ok_(pl <= p) - ok_(pl != p) + assert (pl < p) + assert (pl <= p) + assert (pl != p) v = EVec(0.25,0.35,0.45) ntest = Node(29,0.0,0.0,0.0) ntest.p +=v - ok_((ntest.p == (0.25, 0.35, 0.45)).all()) + assert ((ntest.p == (0.25, 0.35, 0.45)).all()) def test_Element(self): nodesCube= [Node(0,0.0,0.0,0.0), @@ -128,9 +127,9 @@ def test_Element(self): Node(7,1.0,0.0,1.0)] e0 = Element(elementNumber=1, nodes = nodesCube) nodesCube.sort() - ok_(e0.N == 1) + assert (e0.N == 1) for N, n in enumerate(nodesCube): - ok_(e0.nodes[N] == n) + assert (e0.nodes[N] == n) def test_Edge(self): edge0 = Edge(0,nodes=[Node(0,0.0,0.0,0.0), @@ -142,36 +141,36 @@ def test_Edge(self): edgeKeys = list(edgesDisordered.keys()) edgeKeys.sort() for e1,e2_key in zip(edgesOrdered, edgeKeys): - ok_(e1.nodes == edgesDisordered[e2_key].nodes) + assert (e1.nodes == edgesDisordered[e2_key].nodes) edge0.computeGeometricInfo() - ok_((edge0.barycenter == EVec(0.5,0.5,0.5)).all()) - ok_(edge0.length == math.sqrt(3.0)) - ok_(edge0.diameter == math.sqrt(3.0)) - ok_(edge0.innerDiameter == math.sqrt(3.0)) - ok_(edge0.hasGeometricInfo) + assert ((edge0.barycenter == EVec(0.5,0.5,0.5)).all()) + assert (edge0.length == math.sqrt(3.0)) + assert (edge0.diameter == math.sqrt(3.0)) + assert (edge0.innerDiameter == math.sqrt(3.0)) + assert (edge0.hasGeometricInfo) nodeSet = set(edge0.nodes + edge1.nodes) - ok_(nodeSet == set(getNodesFromEdges([edge0,edge1]))) + assert (nodeSet == set(getNodesFromEdges([edge0,edge1]))) def test_Polygon(self): nodeList = [Node(nodeNumber=1, x= 0.5, y= 0.5, z= 0.5), Node(nodeNumber=2, x= 0.5, y= 0.5, z=-0.5), Node(nodeNumber=3, x= 0.5, y=-0.5, z= 0.5)] polygon = Polygon(12,nodes=nodeList) - ok_(polygon.N == 12) - ok_(len(polygon.nodes) == 3) + assert (polygon.N == 12) + assert (len(polygon.nodes) == 3) nodeList.sort() - ok_(tuple(nodeList) == polygon.nodes) + assert (tuple(nodeList) == polygon.nodes) polygon.edges = [Edge(0,[nodeList[0], nodeList[1]]), Edge(1,[nodeList[1], nodeList[2]]), Edge(2,[nodeList[2], nodeList[0]])] edges = getEdgesFromPolygons([polygon]) - ok_(len(edges) == 3) + assert (len(edges) == 3) polygon.edges = [Edge(0,[nodeList[0], nodeList[1]]), Edge(1,[nodeList[1], nodeList[2]]), Edge(3,[nodeList[1], nodeList[2]]), Edge(2,[nodeList[2], nodeList[0]])] edges = getEdgesFromPolygons([polygon]) - ok_(len(edges) == 3) + assert (len(edges) == 3) def test_Triangle(self): t0 = Triangle(0,nodes=[Node(0, 0.0, 0.0, 0.0), @@ -180,10 +179,10 @@ def test_Triangle(self): t1 = Triangle(0,nodes=[Node(3, 1.0, 1.0, 0.0), Node(1, 0.0, 1.0, 0.0), Node(2, 1.0, 0.0, 0.0)]) - ok_(not t0.hasGeometricInfo) - ok_(t0.nodes < t1.nodes) + assert (not t0.hasGeometricInfo) + assert (t0.nodes < t1.nodes) t0.computeGeometricInfo() - ok_((t0.barycenter == EVec(old_div(1.0,3.0),old_div(1.0,3.0),0.0)).all()) + assert ((t0.barycenter == EVec(old_div(1.0,3.0),old_div(1.0,3.0),0.0)).all()) #needs more def test_Quadrilateral(self): @@ -203,12 +202,12 @@ def test_Quadrilateral(self): Edge(6,[nodes[5],nodes[3]])] q0 = Quadrilateral(0,edges0) q1 = Quadrilateral(1,edges1) - ok_(q0.nodes < q1.nodes) - ok_(q0.nodes != q1.nodes) - ok_( not q0.nodes > q1.nodes) - ok_(not q0.hasGeometricInfo) + assert (q0.nodes < q1.nodes) + assert (q0.nodes != q1.nodes) + assert ( not q0.nodes > q1.nodes) + assert (not q0.hasGeometricInfo) q0.computeGeometricInfo() - ok_(q0.area == 1.0) + assert (q0.area == 1.0) def test_Tetrahedron(self): nodes0=[Node(0, 0.0, 0.0, 0.0), @@ -218,12 +217,12 @@ def test_Tetrahedron(self): nodes1=nodes0[1:] + [Node(4, 1.0, 0.0, 1.0)] T0 = Tetrahedron(0,nodes0) T1 = Tetrahedron(1,nodes1) - ok_(T0.nodes < T1.nodes) - ok_(T0.nodes != T1.nodes) - ok_(not T0.nodes > T1.nodes) - ok_(not T0.hasGeometricInfo) + assert (T0.nodes < T1.nodes) + assert (T0.nodes != T1.nodes) + assert (not T0.nodes > T1.nodes) + assert (not T0.hasGeometricInfo) T0.computeGeometricInfo() - ok_(T0.volume == old_div(1.0,6.0)) + assert (T0.volume == old_div(1.0,6.0)) triangleDict={} for t in T0.triangles: triangleDict[t.nodes] = t @@ -233,22 +232,22 @@ def test_Tetrahedron(self): T0_1 = Tetrahedron(0,nodes0, edgeDict=edgeDict) T0_2 = Tetrahedron(0,nodes0, triangleDict=triangleDict) T0_3 = Tetrahedron(0,nodes0, edgeDict=edgeDict, triangleDict=triangleDict) - ok_(T0.nodes == T0_1.nodes == T0_2.nodes) + assert (T0.nodes == T0_1.nodes == T0_2.nodes) def test_Hexahedron(self): hexGrid = RectangularGrid(3,2,2, 2.0,1.0,1.0) H0 = hexGrid.hexahedronList[0] H1 = hexGrid.hexahedronList[1] - ok_(H0.nodes < H1.nodes) - ok_(H0.nodes != H1.nodes) - ok_(not H0.nodes > H1.nodes) - ok_(not H0.hasGeometricInfo) + assert (H0.nodes < H1.nodes) + assert (H0.nodes != H1.nodes) + assert (not H0.nodes > H1.nodes) + assert (not H0.hasGeometricInfo) def test_MeshParallelPartitioningTypes(self): - ok_(MeshParallelPartitioningTypes.element == 0) - ok_(MeshParallelPartitioningTypes.node == 1) - ok_(MeshParallelPartitioningTypes.node != + assert (MeshParallelPartitioningTypes.element == 0) + assert (MeshParallelPartitioningTypes.node == 1) + assert (MeshParallelPartitioningTypes.node != MeshParallelPartitioningTypes.element) def test_intersect_points(self): @@ -387,8 +386,8 @@ def test_mesh_intersections(self): mesh = mesh_type(nodeArray=nodeArray, elementNodesArray=elementNodesArray) toPolyhedron = tetrahedronVerticesToNormals - eq_(getMeshIntersections(mesh, toPolyhedron, endpoints), - set([((0.5, 0.5, 0.5), (1, 1, 1)), ((0, 0, 0), (0.5, 0.5, 0.5))])) + assert getMeshIntersections(mesh, toPolyhedron, endpoints) == set( + [((0.5, 0.5, 0.5), (1, 1, 1)), ((0, 0, 0), (0.5, 0.5, 0.5))]) def test_PointMesh(self): @@ -396,9 +395,9 @@ def test_PointMesh(self): pg=PointMesh(points) npt.assert_almost_equal(pg.nodeArray, np.array([[ 0., 0., 0.], [ 1., 0., 0.]])) - ok_(pg.nNodes_global == 2) - ok_((pg.elementNodesArray == np.array([0,1])).all()) - ok_(pg.nElements_global == 2) + assert pg.nNodes_global == 2 + assert (pg.elementNodesArray == np.array([0,1])).all() + assert pg.nElements_global == 2 def test_EdgeGrid(self): eg=EdgeGrid(nx=3,Lx=1.0) @@ -408,13 +407,13 @@ def test_EdgeGrid(self): npt.assert_almost_equal(eg.nodeArray,np.array([[ 0., 0., 0. ], [ 0.5, 0., 0. ], [ 1., 0., 0. ]])) - ok_(eg.nNodes_global == 3) - ok_((eg.elementNodesArray == np.array([[0, 1], - [1, 2]])).all()) - ok_(eg.nElements_global == 2) - ok_((eg.elementBoundariesArray == [[ 0., 0., 0. ], - [ 0.5, 0., 0. ], - [ 1., 0., 0. ]]).all()) + assert eg.nNodes_global == 3 + assert (eg.elementNodesArray == np.array([[0, 1], + [1, 2]])).all() + assert eg.nElements_global == 2 + assert (eg.elementBoundariesArray == [[ 0., 0., 0. ], + [ 0.5, 0., 0. ], + [ 1., 0., 0. ]]).all() def test_QuadrilateralGrid(self): qg=QuadrilateralGrid(nx=3,ny=3,Lx=1.0,Ly=1.0) @@ -430,12 +429,12 @@ def test_QuadrilateralGrid(self): [ 1., 0., 0., ], [ 1., 0.5, 0., ], [ 1., 1., 0., ]])) - ok_(qg.nNodes_global == 9) - ok_((qg.elementNodesArray == np.array([[0, 1, 3, 4], - [1, 2, 4, 5], - [3, 4, 6, 7], - [4, 5, 7, 8]])).all()) - ok_(qg.nElements_global == 4) + assert qg.nNodes_global == 9 + assert (qg.elementNodesArray == np.array([[0, 1, 3, 4], + [1, 2, 4, 5], + [3, 4, 6, 7], + [4, 5, 7, 8]])).all() + assert qg.nElements_global == 4 edges = np.array([[0, 1], [1, 2], [0, 3], @@ -448,10 +447,10 @@ def test_QuadrilateralGrid(self): [5, 8], [6, 7], [7, 8]]) - ok_((qg.elementBoundariesArray == edges).all()) - ok_(qg.nElementBoundaries_global == 12) - ok_((qg.edgeNodesArray == edges).all()) - ok_(qg.nEdges_global == 12) + assert (qg.elementBoundariesArray == edges).all() + assert qg.nElementBoundaries_global == 12 + assert (qg.edgeNodesArray == edges).all() + assert qg.nEdges_global == 12 def test_RectangularGrid_1D(self): grid1d = RectangularGrid(3,1,1,1.0,1.0,1.0) @@ -502,9 +501,9 @@ def test_Refine_1D(self): parent=0 child=0 for pN,cL in children.items(): - ok_(parent == pN) + assert parent == pN for c in cL: - ok_(child == c.N) + assert child == c.N child +=1 parent +=1 if GNUPLOT: @@ -521,9 +520,9 @@ def test_Refine_2D(self): [10, 14, 11, 15]] parent = 0 for pN,cL in children.items(): - ok_(parent == pN) + assert parent == pN for ci,c in enumerate(cL): - ok_(childElements[pN][ci] == c.N) + assert childElements[pN][ci] == c.N parent += 1 def test_Refine_3D(self): @@ -540,9 +539,9 @@ def test_Refine_3D(self): [42,58,46,62,43,59,47,63]] parent = 0 for pN,cL in children.items(): - ok_(parent == pN) + assert parent == pN for ci,c in enumerate(cL): - ok_(childElements[pN][ci] == c.N) + assert childElements[pN][ci] == c.N parent += 1 def test_MultilevelEdgeMesh(self): @@ -559,9 +558,9 @@ def test_MultilevelEdgeMesh(self): np.array([0, 0, 1, 1, 2, 2, 3, 3])] for l in range(n): if l < n-1: - ok_((elementChildren[l] == mlMesh.elementChildrenArrayList[l]).all()) - ok_((elementChildrenOffsets[l] == mlMesh.elementChildrenOffsetsList[l]).all()) - ok_((elementParents[l] == mlMesh.elementParentsArrayList[l]).all()) + assert (elementChildren[l] == mlMesh.elementChildrenArrayList[l]).all() + assert (elementChildrenOffsets[l] == mlMesh.elementChildrenOffsetsList[l]).all() + assert (elementParents[l] == mlMesh.elementParentsArrayList[l]).all() def test_MultilevelTriangularMesh(self): n = 3 @@ -594,9 +593,9 @@ def test_MultilevelTriangularMesh(self): for l in range(n): if l < n-1: #pass - ok_((elementChildren[l] == mlMesh.elementChildrenArrayList[l]).all()) - ok_((elementChildrenOffsets[l] == mlMesh.elementChildrenOffsetsList[l]).all()) - ok_((elementParents[l] == mlMesh.elementParentsArrayList[l]).all()) + assert (elementChildren[l] == mlMesh.elementChildrenArrayList[l]).all() + assert (elementChildrenOffsets[l] == mlMesh.elementChildrenOffsetsList[l]).all() + assert (elementParents[l] == mlMesh.elementParentsArrayList[l]).all() mlMesh = MultilevelTriangularMesh(3,3,1,refinementLevels=n,triangleFlag=1) mlMesh = MultilevelTriangularMesh(3,3,1,refinementLevels=n,triangleFlag=2) mlMesh2 = MultilevelTriangularMesh(0,0,0,skipInit=True) @@ -668,9 +667,9 @@ def test_MultilevelTetrahedralMesh(self): 46, 46, 47, 47, 47, 47, 47, 47, 47, 47], dtype=np.int32)] for l in range(n): if l < n-1: - ok_((elementChildren[l] == mlMesh.elementChildrenArrayList[l]).all()) - ok_((elementChildrenOffsets[l] == mlMesh.elementChildrenOffsetsList[l]).all()) - ok_((elementParents[l] == mlMesh.elementParentsArrayList[l]).all()) + assert (elementChildren[l] == mlMesh.elementChildrenArrayList[l]).all() + assert (elementChildrenOffsets[l] == mlMesh.elementChildrenOffsetsList[l]).all() + assert (elementParents[l] == mlMesh.elementParentsArrayList[l]).all() mlMesh2 = MultilevelTetrahedralMesh(0,0,0,skipInit=True) mlMesh2.generateFromExistingCoarseMesh(mlMesh.meshList[0], refinementLevels=n) @@ -681,5 +680,4 @@ def test_MultilevelHexahedralMesh(self): refinementLevels=n) -if __name__ == '__main__': - pass + diff --git a/proteus/tests/post_processing/development_tests/P2_LN.py b/proteus/tests/post_processing/development_tests/P2_LN.py index cd511f3890..d50745bbce 100644 --- a/proteus/tests/post_processing/development_tests/P2_LN.py +++ b/proteus/tests/post_processing/development_tests/P2_LN.py @@ -10,9 +10,6 @@ Profiling.logLevel=7 Profiling.verbose=True import numpy.testing as npt -from nose.tools import ok_ as ok -from nose.tools import eq_ as eq -from nose.tools import set_trace def test_BDM2_P2(): ''' @@ -53,6 +50,4 @@ def test_BDM_P1(): comm = Comm.init() test_BDM_P1() # test_BDM2_P2() - # import nose - # nose.main() diff --git a/proteus/tests/test_bodydynamics.py b/proteus/tests/test_bodydynamics.py index 9c9b1aca05..1e0acaed84 100644 --- a/proteus/tests/test_bodydynamics.py +++ b/proteus/tests/test_bodydynamics.py @@ -743,8 +743,8 @@ def testPaddleMotion(self): disp = ramp*np.array(At)*np.sin(2*np.pi/Tt[0]*tt) rot = ramp*np.array(Ar)*np.sin(2*np.pi/Tt[0]*tt) disp = disp - (PB.last_position - PB.init_barycenter) - npt.assert_equal(disp,getVars[0]) - npt.assert_equal(rot,getVars[1]) + npt.assert_almost_equal(disp,getVars[0]) + npt.assert_almost_equal(rot,getVars[1]) if __name__ == '__main__': diff --git a/proteus/tests/test_context.py b/proteus/tests/test_context.py index 47741df214..97a352e32e 100644 --- a/proteus/tests/test_context.py +++ b/proteus/tests/test_context.py @@ -1,7 +1,5 @@ from __future__ import absolute_import import os, sys -from nose.tools import ok_ as ok -from nose.tools import eq_ as eq def ContextObject(): from collections import namedtuple @@ -10,9 +8,9 @@ def ContextObject(): return MyContext._make(list(globalSettings.values())) def check_eq(context): - eq(context.nnx,11) - eq(context.T,10.0) - eq(context.g,9.8) + assert context.nnx == 11 + assert context.T == 10.0 + assert context.g == 9.8 def test_set(): from proteus import Context @@ -42,7 +40,7 @@ def test_setMutableFromModule(): check_eq(Context.context) ct = Context.get() ct.T=11.0 - eq(ct.T,11.0) + assert ct.T == 11.0 def test_get(): from proteus import Context @@ -65,7 +63,3 @@ def test_Options(): os.remove("context_module.py") Context.setFromModule(context_module) check_eq(Context.context) - -if __name__ == '__main__': - import nose - nose.main() diff --git a/proteus/tests/test_gauges.py b/proteus/tests/test_gauges.py index 2768ac8448..7f6d39af95 100644 --- a/proteus/tests/test_gauges.py +++ b/proteus/tests/test_gauges.py @@ -25,7 +25,6 @@ from proteus.Gauges import PointGauges, LineGauges, LineIntegralGauges from proteus.test_utils.util import setup_profiling, silent_rm -from nose.tools import eq_ def build1DMesh(p, nnx): return MeshTools.MultilevelEdgeMesh(nnx, 1, 1, @@ -112,7 +111,7 @@ def run_gauge(p, time_list, nd=3, total_nodes=None): def parse_gauge_output(filename): with open(filename) as f: header = f.readline().split(',') - eq_(header[0].strip(), 'time') + assert header[0].strip() == 'time' gauge_names = [gauge_name.strip() for gauge_name in header[1:]] f.seek(0) data = np.genfromtxt(f, delimiter=",", skip_header=1) @@ -138,7 +137,7 @@ def test_2D_point_gauge_output(): gauge_names, data = parse_gauge_output(filename) - eq_(correct_gauge_names, gauge_names) + assert correct_gauge_names == gauge_names npt.assert_allclose(correct_data, data) delete_file(filename) @@ -162,7 +161,7 @@ def test_point_gauge_output(): gauge_names, data = parse_gauge_output(filename) - eq_(correct_gauge_names, gauge_names) + assert correct_gauge_names == gauge_names npt.assert_allclose(correct_data, data) delete_file(filename) @@ -188,7 +187,7 @@ def test_point_gauge_output_2(): gauge_names, data = parse_gauge_output(filename) - eq_(correct_gauge_names, gauge_names) + assert correct_gauge_names == gauge_names npt.assert_allclose(correct_data, data) delete_file(filename) @@ -213,7 +212,7 @@ def test_line_integral_gauge_output(): Comm.get().barrier() gauge_names, data = parse_gauge_output(filename) - eq_(correct_gauge_names, gauge_names) + assert correct_gauge_names == gauge_names npt.assert_allclose(correct_data, data) delete_file(filename) @@ -252,7 +251,7 @@ def test_2D_line_integral_gauge_output(): Comm.get().barrier() gauge_names, data = parse_gauge_output(filename) - eq_(correct_gauge_names, gauge_names) + assert correct_gauge_names == gauge_names npt.assert_allclose(correct_data, data) delete_file(filename) @@ -293,7 +292,7 @@ def test_line_gauge_output(): gauge_names, data = parse_gauge_output(filename) - eq_(correct_gauge_names, gauge_names) + assert correct_gauge_names == gauge_names npt.assert_allclose(correct_data, data) delete_file(filename) diff --git a/proteus/tests/test_mbd_chrono.py b/proteus/tests/test_mbd_chrono.py index 45ddc6ebca..c6d08a5c01 100644 --- a/proteus/tests/test_mbd_chrono.py +++ b/proteus/tests/test_mbd_chrono.py @@ -32,7 +32,6 @@ def testHangingCableANCF(self): fairlead_body = fsi.ProtChBody(system) fairlead_body.ChBody.SetBodyFixed(True) mooring = fsi.ProtChMoorings(system=system, mesh=mesh, length=L, nb_elems=nb_elems, d=d, rho=rho, E=E, beam_type=cable_type) - mooring.external_forces_manual = True # tri: should work without this line # vertical cable mooring.setNodesPositionFunction(lambda s: np.array([0., 0., s]), lambda s: np.array([0., 0., 1.])) mooring.setNodesPosition() diff --git a/proteus/tests/test_proteus_diamond.pbs b/proteus/tests/test_proteus_diamond.pbs deleted file mode 100644 index c69d545915..0000000000 --- a/proteus/tests/test_proteus_diamond.pbs +++ /dev/null @@ -1,23 +0,0 @@ -#! /bin/bash -#PBS -A ERDCV00898ENQ -#PBS -l walltime=001:00:00 -#PBS -N testProteus -#PBS -q debug -#PBS -j oe -#PBS -l select=3:ncpus=8:mpiprocs=8 -#PBS -l place=scatter:excl -#PBS -l application=proteus -cd ${PROTEUS}/proteusModule/test -#${HOME}/BOB/mpirun -np 1 ${PROTEUS_PYTHON} -c "import nose; nose.test()" -#mpirun -np 1 parun poisson_3d_p.py poisson_3d_c0p1_n.py -l 5 -v -#${HOME}/BOB/mpirun -np 1 ${PROTEUS_PYTHON} test_import.py -#${HOME}/BOB/mpirun -np 1 ${PROTEUS_PYTHON} test_poisson.py -#${HOME}/BOB/mpirun -np 8 ${PROTEUS_PYTHON} test_poisson.py -echo "test_import" -mpirun -np 8 ${PROTEUS_PYTHON} test_import.py -echo "testing poisson on 1 node (8 mpi tasks)" -mpirun -np 8 ${PROTEUS_PYTHON} test_poisson.py -echo "testing poisson on 2 nodes (16 mpi tasks)" -mpirun -np 16 ${PROTEUS_PYTHON} test_poisson.py -echo "testing poisson on 3 nodes (24 mpi tasks)" -mpirun -np 24 ${PROTEUS_PYTHON} test_poisson.py diff --git a/proteus/tests/test_read_mesh_xml.py b/proteus/tests/test_read_mesh_xml.py index 30ca8a735b..b447711308 100644 --- a/proteus/tests/test_read_mesh_xml.py +++ b/proteus/tests/test_read_mesh_xml.py @@ -3,8 +3,6 @@ import os import numpy.testing as npt -from nose.tools import ok_ as ok -from nose.tools import eq_ as eq def test_3x3_cube(verbose=0): """ @@ -15,19 +13,19 @@ def test_3x3_cube(verbose=0): h5_base = xmf_base mesh_info = readMeshXdmf(xmf_base,h5_base,verbose=0) - eq(mesh_info.nElements_global,27) - eq(mesh_info.nNodes_global,64) + assert mesh_info.nElements_global == 27 + assert mesh_info.nNodes_global == 64 - eq(mesh_info.nElements_global,mesh_info.nElements_owned) - eq(mesh_info.nNodes_global,mesh_info.nNodes_owned) + assert mesh_info.nElements_global == mesh_info.nElements_owned + assert mesh_info.nNodes_global == mesh_info.nNodes_owned - eq(mesh_info.nodeArray.shape,(mesh_info.nNodes_owned,3)) - eq(mesh_info.elementNodesArray.shape,(mesh_info.nElements_owned,8)) + assert mesh_info.nodeArray.shape == (mesh_info.nNodes_owned,3) + assert mesh_info.elementNodesArray.shape == (mesh_info.nElements_owned,8) - eq(mesh_info.elementTopologyName,'Hexahedron') + assert mesh_info.elementTopologyName == 'Hexahedron' - eq(len(mesh_info.nodeMaterialTypes),mesh_info.nNodes_owned) - eq(len(mesh_info.elementMaterialTypes),mesh_info.nElements_owned) + assert len(mesh_info.nodeMaterialTypes) == mesh_info.nNodes_owned + assert len(mesh_info.elementMaterialTypes) == mesh_info.nElements_owned def test_write_3x3_cube(verbose=0): """ @@ -39,7 +37,3 @@ def test_write_3x3_cube(verbose=0): mesh_info = readMeshXdmf(xmf_base,h5_base,verbose=0) writeHexMesh(mesh_info,'hexMesh_3x3',index_base=0) - -if __name__ == '__main__': - import nose - nose.main(defaultTest='test_read_mesh_xml:test_3x3_cube,test_read_mesh_xml:test_write_3x3_cube') diff --git a/proteus/tests/test_sedclosure.py b/proteus/tests/test_sedclosure.py index 0d1c9cda3d..f0b77c7657 100644 --- a/proteus/tests/test_sedclosure.py +++ b/proteus/tests/test_sedclosure.py @@ -140,7 +140,7 @@ def testTkeSed(self): gl=GlobalVariables() import random rhoFluid = 10. + random.random() - f = 10 + f = 9 uf = np.array([5.,4.],"d") us = np.array([1.,1.],"d") gradC=np.array([0.1,0.1]) diff --git a/proteus/tests/test_spatialtools.py b/proteus/tests/test_spatialtools.py index bfc787c1d1..04b8fc9ad9 100644 --- a/proteus/tests/test_spatialtools.py +++ b/proteus/tests/test_spatialtools.py @@ -12,7 +12,6 @@ import numpy.testing as npt import numpy as np import os -from nose.tools import eq_ from proteus import Comm, Profiling, Gauges from proteus.Profiling import logEvent as log from proteus.Domain import (PiecewiseLinearComplexDomain, @@ -271,7 +270,6 @@ def test_BC_flags(self): STLnames = ["Bed0","Concrete0","Inlet0","Outlet0","Top0","Wall0"] nSTLs = len(STLnames) j = 0 - print for key,value in stl.boundaryTags.items(): self.assertTrue(STLnames[value-1]==key) for key,value in domainSTL.boundaryTags.items(): diff --git a/stack b/stack index 66f25ab980..e7419a2e31 160000 --- a/stack +++ b/stack @@ -1 +1 @@ -Subproject commit 66f25ab980af576010e11be31b915d4cc8916c24 +Subproject commit e7419a2e31e088d51d1c933ad0bc04dbafb4b006