pybFoam 0.1.1__tar.gz → 0.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pybfoam-0.1.1 → pybfoam-0.1.3}/CMakeLists.txt +1 -1
- {pybfoam-0.1.1 → pybfoam-0.1.3}/PKG-INFO +1 -1
- {pybfoam-0.1.1 → pybfoam-0.1.3}/pyproject.toml +1 -1
- pybfoam-0.1.3/src/pybFoam/_version.py +1 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/aggregation/bind_aggregation.cpp +104 -6
- pybfoam-0.1.3/tests/pybind/test_aggregation.py +148 -0
- pybfoam-0.1.1/src/pybFoam/_version.py +0 -1
- pybfoam-0.1.1/tests/pybind/test_aggregation.py +0 -82
- {pybfoam-0.1.1 → pybfoam-0.1.3}/.github/workflows/ci.yaml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/.github/workflows/release.yaml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/.gitignore +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/CHANGELOG.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/CMakePresets.json +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/LICENSE +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/README.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/cmake/Dependencies.cmake +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/cmake/FindOpenFOAM.cmake +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/conftest.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/404.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/LICENSE +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/LICENSE-BSD-NAVGOCO.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_config.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/alerts.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/definitions.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/glossary.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/samplelist.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/sidebars/doc_sidebar.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/sidebars/home_sidebar.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/strings.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/terms.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_data/topnav.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/archive.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/callout.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/commento.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/custom/getting_started_series.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/custom/getting_started_series_next.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/custom/series_acme.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/custom/series_acme_next.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/custom/usermap.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/custom/usermapcomplex.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/feedback.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/footer.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/google_analytics.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/head.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/head_print.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/image.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/important.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/initialize_shuffle.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/inline_image.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/links.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/note.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/sidebar.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/taglogic.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/tip.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/toc.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/topnav.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/video.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_includes/warning.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_layouts/default.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_layouts/default_print.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_layouts/none.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_layouts/page.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_layouts/page_print.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/_layouts/post.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/createtag +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/bootstrap.min.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/boxshadowproperties.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/customstyles.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/font-awesome.min.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/fonts/FontAwesome.otf +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/fonts/fontawesome-webfont.eot +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/fonts/fontawesome-webfont.svg +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/fonts/fontawesome-webfont.ttf +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/fonts/fontawesome-webfont.woff +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/fonts/fontawesome-webfont.woff2 +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/modern-business.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/printstyles.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/syntax.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/theme-blue.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/css/theme-green.css +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/feed.xml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/FontAwesome.otf +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/fontawesome-webfont.eot +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/fontawesome-webfont.svg +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/fontawesome-webfont.ttf +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/fontawesome-webfont.woff +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/glyphicons-halflings-regular.eot +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/glyphicons-halflings-regular.svg +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/glyphicons-halflings-regular.ttf +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/glyphicons-halflings-regular.woff +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/images/OFCaseStructure.png +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/images/dlr_logo.png +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/index.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/js/customscripts.js +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/js/jekyll-search.js +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/js/jquery.ba-throttle-debounce.min.js +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/js/jquery.navgoco.min.js +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/js/jquery.shuffle.min.js +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/js/toc.js +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pages/doc/doc_OpenFOAM.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pages/doc/doc_externalComm.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pages/doc/doc_input.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pages/doc/doc_installation.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pages/doc/doc_introduction.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pages/doc/doc_output.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pages/doc/doc_python_wrapper.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pages/doc/doc_release_notes_01.md +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pdf/mydoc.pdf +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pdf-doc.sh +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pdfconfigs/config_doc_pdf.yml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pdfconfigs/prince-list.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pdfconfigs/titlepage.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/pdfconfigs/tocpage.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/search.json +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/sitemap.xml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/tooltips.html +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/tooltips.json +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/update.sh +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/docs/var/build.sh +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/scripts/generate_stubs.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/scripts/pyInstall.sh +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/CMakeLists.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/__init__.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/aggregation/CMakeLists.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/aggregation/aggregation.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/aggregation/bind_aggregation.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvc/CMakeLists.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvc/bind_fvc.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvc/bind_fvc.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvc/fvc.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvc.pyi +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvm/CMakeLists.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvm/bind_fvm.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvm/bind_fvm.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/fvm/fvm.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/io/__init__.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/io/model_base.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/io/system.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/py.typed +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/CMakeLists.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_cfdTools.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_cfdTools.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_control.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_control.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_dict.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_dict.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_dimensioned.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_dimensioned.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_fields.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_fields.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_fvMatrix.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_fvMatrix.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_geo_fields.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_geo_fields.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_io.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_io.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_mesh.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_mesh.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_primitives.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/bind_primitives.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core/pybFoam.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/pybFoam_core.pyi +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/runTimeTables/CMakeLists.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/runTimeTables/foam_runTimeTables.C +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/runTimeTables/foam_runTimeTables.H +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/runTimeTables/runTimeTables.C +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/runTimeTables.pyi +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/thermo/CMakeLists.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/thermo/bind_thermo.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/thermo/bind_thermo.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/thermo/thermo.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/thermo.pyi +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/turbulence/CMakeLists.txt +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/turbulence/bind_turbulence.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/turbulence/bind_turbulence.hpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/turbulence/turbulence.cpp +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/src/pybFoam/turbulence.pyi +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/0.orig/U +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/0.orig/nu +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/0.orig/p +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/Allclean +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/Allrun +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/constant/transportProperties +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/icoFoam.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/log2 +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/system/PDRblockMeshDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/system/blockMeshDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/system/controlDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/system/decomposeParDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/system/fvSchemes +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/cavity/system/fvSolution +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/0.orig/U +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/0.orig/nu +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/0.orig/p +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/Allclean +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/Allrun +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/constant/transportProperties +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/icoFoam.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/system/controlDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/system/foamDataToFluentDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/system/fvSchemes +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/elbow/system/fvSolution +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/TestDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/TestDict.json +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/TestDict.yaml +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/controlDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/fvSchemes +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/fvSolution +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/test_controlDict.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/test_fvSchemes.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/test_fvSolution.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/io/test_parse_ofdict.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/0/U +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/0/alpha.water +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/0/p_rgh +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/0.orig/U +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/0.orig/alpha.water +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/0.orig/p_rgh +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/Allclean +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/Allrun +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/Allrun-parallel +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/dynamicMeshDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/g +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/polyMesh/boundary +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/polyMesh/faces +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/polyMesh/neighbour +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/polyMesh/owner +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/polyMesh/points +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/transportProperties +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/constant/turbulenceProperties +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/system/TestDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/system/blockMeshDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/system/controlDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/system/decomposeParDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/system/fvSchemes +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/system/fvSolution +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/system/setFieldsDict +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/test_dict.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/test_fvc.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/test_fvm.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/test_geoFields.py +0 -0
- {pybfoam-0.1.1 → pybfoam-0.1.3}/tests/pybind/test_primitives.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.3"
|
|
@@ -32,22 +32,95 @@ template <typename T>
|
|
|
32
32
|
aggregationResult<T> aggSum(
|
|
33
33
|
const Foam::Field<T> &values,
|
|
34
34
|
std::optional<Foam::boolList> mask = std::nullopt,
|
|
35
|
-
std::optional<Foam::labelList> group = std::nullopt
|
|
35
|
+
std::optional<Foam::labelList> group = std::nullopt,
|
|
36
|
+
std::optional<Foam::scalarField> scalingFactor = std::nullopt)
|
|
37
|
+
{
|
|
38
|
+
aggregationResult<T> result;
|
|
39
|
+
auto nGroups = group ? max(*group) + 1 : 1;
|
|
40
|
+
result.values = Foam::Field<T>(nGroups, Foam::Zero);
|
|
41
|
+
// store the group information in the result
|
|
42
|
+
// ranging from 0 to nGroups-1
|
|
43
|
+
// if no grouping is done, this remains nullopt
|
|
44
|
+
if (group)
|
|
45
|
+
{
|
|
46
|
+
result.group = Foam::labelList(nGroups);
|
|
47
|
+
for (Foam::label i = 0; i < nGroups; ++i)
|
|
48
|
+
{
|
|
49
|
+
(*result.group)[i] = i;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const Foam::label nElements = values.size();
|
|
54
|
+
|
|
55
|
+
for (Foam::label i = 0; i < nElements; ++i)
|
|
56
|
+
{
|
|
57
|
+
Foam::label groupIndex = group ? (*group)[i] : 0;
|
|
58
|
+
Foam::scalar masking = mask ? (*mask)[i] : 1.0;
|
|
59
|
+
Foam::scalar scaleFactor = scalingFactor ? (*scalingFactor)[i] : 1.0;
|
|
60
|
+
result.values[groupIndex] += values[i] * masking * scaleFactor;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
Foam::reduce(result.values, Foam::sumOp<Foam::Field<T>>());
|
|
64
|
+
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
template <typename T>
|
|
70
|
+
aggregationResult<T> aggMean(
|
|
71
|
+
const Foam::Field<T> &values,
|
|
72
|
+
std::optional<Foam::boolList> mask = std::nullopt,
|
|
73
|
+
std::optional<Foam::labelList> group = std::nullopt,
|
|
74
|
+
std::optional<Foam::scalarField> scalingFactor = std::nullopt)
|
|
36
75
|
{
|
|
37
76
|
aggregationResult<T> result;
|
|
38
77
|
auto nGroups = group ? max(*group) + 1 : 1;
|
|
39
78
|
result.values = Foam::Field<T>(nGroups, Foam::Zero);
|
|
79
|
+
Foam::Field<Foam::scalar> weights(nGroups, 0.0);
|
|
80
|
+
// store the group information in the result
|
|
81
|
+
// ranging from 0 to nGroups-1
|
|
82
|
+
// if no grouping is done, this remains nullopt
|
|
83
|
+
if (group)
|
|
84
|
+
{
|
|
85
|
+
result.group = Foam::labelList(nGroups);
|
|
86
|
+
for (Foam::label i = 0; i < nGroups; ++i)
|
|
87
|
+
{
|
|
88
|
+
(*result.group)[i] = i;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
40
91
|
|
|
41
92
|
const Foam::label nElements = values.size();
|
|
42
93
|
|
|
43
94
|
for (Foam::label i = 0; i < nElements; ++i)
|
|
44
95
|
{
|
|
45
96
|
Foam::label groupIndex = group ? (*group)[i] : 0;
|
|
46
|
-
Foam::scalar
|
|
47
|
-
|
|
97
|
+
Foam::scalar masking = mask ? (*mask)[i] : 1.0;
|
|
98
|
+
Foam::scalar scaleFactor = scalingFactor ? (*scalingFactor)[i] : 1.0;
|
|
99
|
+
result.values[groupIndex] += values[i] * masking * scaleFactor;
|
|
100
|
+
weights[groupIndex] += masking * scaleFactor;
|
|
48
101
|
}
|
|
49
102
|
|
|
50
103
|
Foam::reduce(result.values, Foam::sumOp<Foam::Field<T>>());
|
|
104
|
+
Foam::reduce(weights, Foam::sumOp<Foam::Field<Foam::scalar>>());
|
|
105
|
+
|
|
106
|
+
for (Foam::label i = 0; i < nGroups; ++i)
|
|
107
|
+
{
|
|
108
|
+
if (weights[i] > Foam::SMALL)
|
|
109
|
+
{
|
|
110
|
+
result.values[i] /= weights[i];
|
|
111
|
+
}
|
|
112
|
+
else
|
|
113
|
+
{
|
|
114
|
+
if constexpr (std::is_same<T, Foam::scalar>::value)
|
|
115
|
+
{
|
|
116
|
+
result.values[i] = Foam::GREAT; // if no valid entries, set to large value
|
|
117
|
+
}
|
|
118
|
+
else
|
|
119
|
+
{
|
|
120
|
+
result.values[i] = T::one * Foam::GREAT;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
51
124
|
|
|
52
125
|
return result;
|
|
53
126
|
}
|
|
@@ -60,6 +133,17 @@ aggregationResult<T> aggMax(
|
|
|
60
133
|
{
|
|
61
134
|
aggregationResult<T> result;
|
|
62
135
|
auto nGroups = group ? max(*group) + 1 : 1;
|
|
136
|
+
// store the group information in the result
|
|
137
|
+
// ranging from 0 to nGroups-1
|
|
138
|
+
// if no grouping is done, this remains nullopt
|
|
139
|
+
if (group)
|
|
140
|
+
{
|
|
141
|
+
result.group = Foam::labelList(nGroups);
|
|
142
|
+
for (Foam::label i = 0; i < nGroups; ++i)
|
|
143
|
+
{
|
|
144
|
+
(*result.group)[i] = i;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
63
147
|
if constexpr (std::is_same<T, Foam::scalar>::value)
|
|
64
148
|
{
|
|
65
149
|
result.values = Foam::Field<T>(nGroups, -Foam::GREAT);
|
|
@@ -82,7 +166,6 @@ aggregationResult<T> aggMax(
|
|
|
82
166
|
}
|
|
83
167
|
}
|
|
84
168
|
result.values[groupIndex] = Foam::max(result.values[groupIndex], values[i]);
|
|
85
|
-
|
|
86
169
|
}
|
|
87
170
|
|
|
88
171
|
Foam::reduce(result.values, Foam::maxOp<Foam::Field<T>>());
|
|
@@ -98,6 +181,17 @@ aggregationResult<T> aggMin(
|
|
|
98
181
|
{
|
|
99
182
|
aggregationResult<T> result;
|
|
100
183
|
auto nGroups = group ? max(*group) + 1 : 1;
|
|
184
|
+
// store the group information in the result
|
|
185
|
+
// ranging from 0 to nGroups-1
|
|
186
|
+
// if no grouping is done, this remains nullopt
|
|
187
|
+
if (group)
|
|
188
|
+
{
|
|
189
|
+
result.group = Foam::labelList(nGroups);
|
|
190
|
+
for (Foam::label i = 0; i < nGroups; ++i)
|
|
191
|
+
{
|
|
192
|
+
(*result.group)[i] = i;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
101
195
|
|
|
102
196
|
if constexpr (std::is_same<T, Foam::scalar>::value)
|
|
103
197
|
{
|
|
@@ -139,8 +233,12 @@ void Foam::bindAggregation(py::module &m)
|
|
|
139
233
|
.def_readonly("values", &aggregationResult<vector>::values)
|
|
140
234
|
.def_readonly("group", &aggregationResult<vector>::group);
|
|
141
235
|
|
|
142
|
-
m.def("sum", &aggSum<scalar
|
|
143
|
-
m.def("sum", &aggSum<vector
|
|
236
|
+
m.def("sum", &aggSum<scalar>, py::arg("values"), py::arg("mask") = std::nullopt, py::arg("group") = std::nullopt, py::kw_only(),py::arg("scalingFactor") = std::nullopt);
|
|
237
|
+
m.def("sum", &aggSum<vector>, py::arg("values"), py::arg("mask") = std::nullopt, py::arg("group") = std::nullopt, py::kw_only(),py::arg("scalingFactor") = std::nullopt);
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
m.def("mean", &aggMean<scalar>, py::arg("values"), py::arg("mask") = std::nullopt, py::arg("group") = std::nullopt, py::kw_only(),py::arg("scalingFactor") = std::nullopt);
|
|
241
|
+
m.def("mean", &aggMean<vector>, py::arg("values"), py::arg("mask") = std::nullopt, py::arg("group") = std::nullopt, py::kw_only(),py::arg("scalingFactor") = std::nullopt);
|
|
144
242
|
|
|
145
243
|
m.def("max", &aggMax<scalar>);
|
|
146
244
|
m.def("max", &aggMax<vector>);
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from pybFoam import vector, boolList, labelList, mag, scalarField, vectorField, tensorField
|
|
3
|
+
from pybFoam import aggregation
|
|
4
|
+
import numpy as np
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def test_mag():
|
|
8
|
+
s = -10
|
|
9
|
+
assert mag(s) == 10
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def test_sum():
|
|
13
|
+
field = scalarField([1, 2, 3])
|
|
14
|
+
assert aggregation.sum(field, boolList([True, True, True]), None).values[0] == 6
|
|
15
|
+
assert aggregation.sum(field, boolList([True, True, True]), None).group == None
|
|
16
|
+
assert aggregation.sum(field, None, None).values[0] == 6
|
|
17
|
+
assert aggregation.sum(field, boolList([True, False, True]), None).values[0] == 4
|
|
18
|
+
|
|
19
|
+
field = vectorField([vector(1, 2, 3), vector(4, 5, 6)])
|
|
20
|
+
assert aggregation.sum(field, None, None).values[0] == vector(5, 7, 9)
|
|
21
|
+
assert aggregation.sum(field, boolList([True, True]), None).values[0] == vector(
|
|
22
|
+
5, 7, 9
|
|
23
|
+
)
|
|
24
|
+
assert aggregation.sum(field, boolList([True, False]), None).values[0] == vector(
|
|
25
|
+
1, 2, 3
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# # with groupby
|
|
29
|
+
field = scalarField([1, 2, 3])
|
|
30
|
+
|
|
31
|
+
agg_res = aggregation.sum(field, None, labelList([0, 1, 1]))
|
|
32
|
+
assert agg_res.values[0] == 1
|
|
33
|
+
assert agg_res.values[1] == 5
|
|
34
|
+
assert agg_res.group[0] == 0
|
|
35
|
+
assert agg_res.group[1] == 1
|
|
36
|
+
|
|
37
|
+
agg_res = aggregation.sum(field, boolList([True, False, True]), labelList([0, 1, 1]))
|
|
38
|
+
assert agg_res.values[0] == 1
|
|
39
|
+
assert agg_res.values[1] == 3
|
|
40
|
+
assert agg_res.group[0] == 0
|
|
41
|
+
assert agg_res.group[1] == 1
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# with scaling factor
|
|
45
|
+
field = scalarField([1, 2, 3])
|
|
46
|
+
scalingFactor = scalarField([2, 4, 4])
|
|
47
|
+
agg_res = aggregation.sum(field, None, labelList([0, 1, 1]), scalingFactor=scalingFactor)
|
|
48
|
+
assert agg_res.values[0] == 2
|
|
49
|
+
assert agg_res.values[1] == 20
|
|
50
|
+
assert agg_res.group[0] == 0
|
|
51
|
+
assert agg_res.group[1] == 1
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def test_mean():
|
|
55
|
+
field = scalarField([1, 2, 3])
|
|
56
|
+
assert aggregation.mean(field, None, None).values[0] == 2
|
|
57
|
+
assert aggregation.mean(field, None, None).group == None
|
|
58
|
+
assert aggregation.mean(field, boolList([True, True, True]), None).values[0] == 2
|
|
59
|
+
assert aggregation.mean(field, boolList([True, False, True]), None).values[0] == 2
|
|
60
|
+
|
|
61
|
+
field = vectorField([vector(1, 2, 3), vector(4, 5, 6)])
|
|
62
|
+
assert aggregation.mean(field, None, None).values[0] == vector(2.5, 3.5, 4.5)
|
|
63
|
+
assert aggregation.mean(field, boolList([True, True]), None).values[0] == vector(2.5, 3.5, 4.5)
|
|
64
|
+
assert aggregation.mean(field, boolList([True, False]), None).values[0] == vector(1, 2, 3)
|
|
65
|
+
|
|
66
|
+
# # with groupby
|
|
67
|
+
field = scalarField([1, 2, 3])
|
|
68
|
+
assert aggregation.mean(field, None, labelList([0, 1, 1])).values[0] == 1
|
|
69
|
+
assert aggregation.mean(field, None, labelList([0, 1, 1])).values[1] == 2.5
|
|
70
|
+
assert aggregation.mean(field, None, labelList([0, 1, 1])).group[0] == 0
|
|
71
|
+
assert aggregation.mean(field, None, labelList([0, 1, 1])).group[1] == 1
|
|
72
|
+
|
|
73
|
+
assert aggregation.mean(field, boolList([True, False, True]), labelList([0, 1, 1])).values[0] == 1
|
|
74
|
+
assert aggregation.mean(field, boolList([True, False, True]), labelList([0, 1, 1])).values[1] == 3
|
|
75
|
+
|
|
76
|
+
# with scaling factor
|
|
77
|
+
field = scalarField([1, 28, 3])
|
|
78
|
+
scalingFactor = scalarField([2, 6, 4])
|
|
79
|
+
agg_res = aggregation.mean(field, None, labelList([0, 1, 1]), scalingFactor=scalingFactor)
|
|
80
|
+
assert agg_res.values[0] == 1
|
|
81
|
+
assert agg_res.values[1] == 18.0
|
|
82
|
+
assert agg_res.group[0] == 0
|
|
83
|
+
assert agg_res.group[1] == 1
|
|
84
|
+
|
|
85
|
+
# with scaling factor empty groups
|
|
86
|
+
field = scalarField([1, 28, 3])
|
|
87
|
+
scalingFactor = scalarField([2, 6, 4])
|
|
88
|
+
agg_res = aggregation.mean(field, None, labelList([1, 2, 2]), scalingFactor=scalingFactor)
|
|
89
|
+
assert agg_res.values[0] == 1000000000000000.0 # empty group
|
|
90
|
+
assert agg_res.values[1] == 1.0
|
|
91
|
+
assert agg_res.values[2] == 18.0
|
|
92
|
+
assert agg_res.group[0] == 0
|
|
93
|
+
assert agg_res.group[1] == 1
|
|
94
|
+
assert agg_res.group[2] == 2
|
|
95
|
+
|
|
96
|
+
def test_min():
|
|
97
|
+
|
|
98
|
+
field = scalarField([1, 2, 3])
|
|
99
|
+
assert aggregation.min(field, None, None).values[0] == 1
|
|
100
|
+
assert aggregation.min(field, None, None).group == None
|
|
101
|
+
assert aggregation.min(field, boolList([True, True, True]), None).values[0] == 1
|
|
102
|
+
assert aggregation.min(field, boolList([True, False, True]), None).values[0] == 1
|
|
103
|
+
|
|
104
|
+
field = vectorField([vector(1, 2, 3), vector(4, 5, 6)])
|
|
105
|
+
assert aggregation.min(field, None, None).values[0] == vector(1, 2, 3)
|
|
106
|
+
assert aggregation.min(field, boolList([True, True]), None).values[0] == vector(
|
|
107
|
+
1, 2, 3
|
|
108
|
+
)
|
|
109
|
+
assert aggregation.min(field, boolList([True, False]), None).values[0] == vector(
|
|
110
|
+
1, 2, 3
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
# # with groupby
|
|
114
|
+
field = scalarField([1, 2, 3])
|
|
115
|
+
assert aggregation.min(field, None, labelList([0, 1, 1])).values[0] == 1
|
|
116
|
+
assert aggregation.min(field, None, labelList([0, 1, 1])).values[1] == 2
|
|
117
|
+
assert aggregation.min(field, None, labelList([0, 1, 1])).group[0] == 0
|
|
118
|
+
assert aggregation.min(field, None, labelList([0, 1, 1])).group[1] == 1
|
|
119
|
+
|
|
120
|
+
assert aggregation.min(field, boolList([True, False, True]), labelList([0, 1, 1])).values[0] == 1
|
|
121
|
+
assert aggregation.min(field, boolList([True, False, True]), labelList([0, 1, 1])).values[1] == 3
|
|
122
|
+
|
|
123
|
+
def test_max():
|
|
124
|
+
|
|
125
|
+
field = scalarField([1, 2, 3])
|
|
126
|
+
assert aggregation.max(field, None, None).values[0] == 3
|
|
127
|
+
assert aggregation.max(field, None, None).group == None
|
|
128
|
+
assert aggregation.max(field, boolList([True, True, True]), None).values[0] == 3
|
|
129
|
+
assert aggregation.max(field, boolList([True, False, True]), None).values[0] == 3
|
|
130
|
+
|
|
131
|
+
field = vectorField([vector(1, 2, 3), vector(4, 5, 6)])
|
|
132
|
+
assert aggregation.max(field, None, None).values[0] == vector(4, 5, 6)
|
|
133
|
+
assert aggregation.max(field, boolList([True, True]), None).values[0] == vector(
|
|
134
|
+
4, 5, 6
|
|
135
|
+
)
|
|
136
|
+
assert aggregation.max(field, boolList([True, False]), None).values[0] == vector(
|
|
137
|
+
1, 2, 3
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
# # with groupby
|
|
141
|
+
field = scalarField([1, 2, 3])
|
|
142
|
+
assert aggregation.max(field, None, labelList([0, 1, 1])).values[0] == 1
|
|
143
|
+
assert aggregation.max(field, None, labelList([0, 1, 1])).values[1] == 3
|
|
144
|
+
assert aggregation.max(field, None, labelList([0, 1, 1])).group[0] == 0
|
|
145
|
+
assert aggregation.max(field, None, labelList([0, 1, 1])).group[1] == 1
|
|
146
|
+
|
|
147
|
+
assert aggregation.max(field, boolList([True, False, True]), labelList([0, 1, 1])).values[0] == 1
|
|
148
|
+
assert aggregation.max(field, boolList([True, False, True]), labelList([0, 1, 1])).values[1] == 3
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.1"
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import pytest
|
|
2
|
-
from pybFoam import vector, boolList, labelList, mag, scalarField, vectorField, tensorField
|
|
3
|
-
from pybFoam import aggregation
|
|
4
|
-
import numpy as np
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def test_mag():
|
|
8
|
-
s = -10
|
|
9
|
-
assert mag(s) == 10
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def test_sum():
|
|
13
|
-
field = scalarField([1, 2, 3])
|
|
14
|
-
assert aggregation.sum(field, boolList([True, True, True]), None).values[0] == 6
|
|
15
|
-
assert aggregation.sum(field, None, None).values[0] == 6
|
|
16
|
-
assert aggregation.sum(field, boolList([True, False, True]), None).values[0] == 4
|
|
17
|
-
|
|
18
|
-
field = vectorField([vector(1, 2, 3), vector(4, 5, 6)])
|
|
19
|
-
assert aggregation.sum(field, None, None).values[0] == vector(5, 7, 9)
|
|
20
|
-
assert aggregation.sum(field, boolList([True, True]), None).values[0] == vector(
|
|
21
|
-
5, 7, 9
|
|
22
|
-
)
|
|
23
|
-
assert aggregation.sum(field, boolList([True, False]), None).values[0] == vector(
|
|
24
|
-
1, 2, 3
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
# # with groupby
|
|
28
|
-
field = scalarField([1, 2, 3])
|
|
29
|
-
assert aggregation.sum(field, None, labelList([0, 1, 1])).values[0] == 1
|
|
30
|
-
assert aggregation.sum(field, None, labelList([0, 1, 1])).values[1] == 5
|
|
31
|
-
|
|
32
|
-
assert aggregation.sum(field, boolList([True, False, True]), labelList([0, 1, 1])).values[0] == 1
|
|
33
|
-
assert aggregation.sum(field, boolList([True, False, True]), labelList([0, 1, 1])).values[1] == 3
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
def test_min():
|
|
37
|
-
|
|
38
|
-
field = scalarField([1, 2, 3])
|
|
39
|
-
assert aggregation.min(field, None, None).values[0] == 1
|
|
40
|
-
assert aggregation.min(field, boolList([True, True, True]), None).values[0] == 1
|
|
41
|
-
assert aggregation.min(field, boolList([True, False, True]), None).values[0] == 1
|
|
42
|
-
|
|
43
|
-
field = vectorField([vector(1, 2, 3), vector(4, 5, 6)])
|
|
44
|
-
assert aggregation.min(field, None, None).values[0] == vector(1, 2, 3)
|
|
45
|
-
assert aggregation.min(field, boolList([True, True]), None).values[0] == vector(
|
|
46
|
-
1, 2, 3
|
|
47
|
-
)
|
|
48
|
-
assert aggregation.min(field, boolList([True, False]), None).values[0] == vector(
|
|
49
|
-
1, 2, 3
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
# # with groupby
|
|
53
|
-
field = scalarField([1, 2, 3])
|
|
54
|
-
assert aggregation.min(field, None, labelList([0, 1, 1])).values[0] == 1
|
|
55
|
-
assert aggregation.min(field, None, labelList([0, 1, 1])).values[1] == 2
|
|
56
|
-
|
|
57
|
-
assert aggregation.min(field, boolList([True, False, True]), labelList([0, 1, 1])).values[0] == 1
|
|
58
|
-
assert aggregation.min(field, boolList([True, False, True]), labelList([0, 1, 1])).values[1] == 3
|
|
59
|
-
|
|
60
|
-
def test_max():
|
|
61
|
-
|
|
62
|
-
field = scalarField([1, 2, 3])
|
|
63
|
-
assert aggregation.max(field, None, None).values[0] == 3
|
|
64
|
-
assert aggregation.max(field, boolList([True, True, True]), None).values[0] == 3
|
|
65
|
-
assert aggregation.max(field, boolList([True, False, True]), None).values[0] == 3
|
|
66
|
-
|
|
67
|
-
field = vectorField([vector(1, 2, 3), vector(4, 5, 6)])
|
|
68
|
-
assert aggregation.max(field, None, None).values[0] == vector(4, 5, 6)
|
|
69
|
-
assert aggregation.max(field, boolList([True, True]), None).values[0] == vector(
|
|
70
|
-
4, 5, 6
|
|
71
|
-
)
|
|
72
|
-
assert aggregation.max(field, boolList([True, False]), None).values[0] == vector(
|
|
73
|
-
1, 2, 3
|
|
74
|
-
)
|
|
75
|
-
|
|
76
|
-
# # with groupby
|
|
77
|
-
field = scalarField([1, 2, 3])
|
|
78
|
-
assert aggregation.max(field, None, labelList([0, 1, 1])).values[0] == 1
|
|
79
|
-
assert aggregation.max(field, None, labelList([0, 1, 1])).values[1] == 3
|
|
80
|
-
|
|
81
|
-
assert aggregation.max(field, boolList([True, False, True]), labelList([0, 1, 1])).values[0] == 1
|
|
82
|
-
assert aggregation.max(field, boolList([True, False, True]), labelList([0, 1, 1])).values[1] == 3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|