diff --git a/.gitattributes b/.gitattributes index ca69e9d4..164ad774 100644 --- a/.gitattributes +++ b/.gitattributes @@ -30,3 +30,7 @@ *.png -text *.gif -text *.ico -text + +# Denote all files that are truly binary and should not be modified. +*.onnx binary +*.fmu binary diff --git a/.github/workflows/_build_and_publish_documentation.yml b/.github/workflows/_build_and_publish_documentation.yml index 2fed60c7..3f39aa7b 100644 --- a/.github/workflows/_build_and_publish_documentation.yml +++ b/.github/workflows/_build_and_publish_documentation.yml @@ -17,7 +17,7 @@ jobs: with: lfs: true - name: Install uv - uses: astral-sh/setup-uv@v2 + uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: "uv.lock" diff --git a/.github/workflows/_build_package.yml b/.github/workflows/_build_package.yml index 362d3aaa..5c21af41 100644 --- a/.github/workflows/_build_package.yml +++ b/.github/workflows/_build_package.yml @@ -11,7 +11,7 @@ jobs: with: lfs: true - name: Install uv - uses: astral-sh/setup-uv@v2 + uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: "uv.lock" diff --git a/.github/workflows/_code_quality.yml b/.github/workflows/_code_quality.yml index d3e65a71..3ef1e817 100644 --- a/.github/workflows/_code_quality.yml +++ b/.github/workflows/_code_quality.yml @@ -9,7 +9,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v2 + uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: "uv.lock" @@ -28,7 +28,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v2 + uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: "uv.lock" @@ -47,7 +47,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v2 + uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: "uv.lock" @@ -66,7 +66,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v2 + uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: "uv.lock" diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml index 3dc9a75b..a9c580bf 100644 --- a/.github/workflows/_test.yml +++ b/.github/workflows/_test.yml @@ -16,22 +16,21 @@ jobs: - version: '3.10' - version: '3.11' - version: '3.12' + - version: '3.13' steps: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v2 + uses: astral-sh/setup-uv@v5 with: - enable-cache: true + enable-cache: false cache-dependency-glob: "uv.lock" - name: Install Python ${{ matrix.python.version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python.version }} - name: Install the project - run: uv sync --upgrade -p ${{ matrix.python.version }} --no-dev - - name: Install pytest - run: | - uv pip install pytest - uv pip install pytest-cov + run: uv sync -p ${{ matrix.python.version }} -U --no-dev - name: Run pytest - run: uv run pytest --cov + run: > + uv run --with pytest --with pytest-cov + pytest --cov diff --git a/.github/workflows/_test_future.yml b/.github/workflows/_test_future.yml index 0b46eb52..24c6b525 100644 --- a/.github/workflows/_test_future.yml +++ b/.github/workflows/_test_future.yml @@ -1,10 +1,10 @@ -name: Unit Tests (py313) -# Test also with Python 3.13 (experimental; workflow will not fail on error.) +name: Unit Tests (py314) +# Test also with Python 3.14 (experimental; workflow will not fail on error.) on: workflow_call jobs: - test313: + test314: name: Test on ${{matrix.python.version}}-${{matrix.platform.runner}} (experimental) continue-on-error: true runs-on: ${{ matrix.platform.runner }} @@ -14,24 +14,22 @@ jobs: - runner: ubuntu-latest - runner: windows-latest python: - - version: '3.13.0-alpha - 3.13.0' - uvpy: '3.13' + - version: '3.14.0-alpha - 3.14.0' + uvpy: '3.14' steps: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v2 + uses: astral-sh/setup-uv@v5 with: - enable-cache: true + enable-cache: false cache-dependency-glob: "uv.lock" - name: Install Python ${{ matrix.python.version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python.version }} - name: Install the project - run: uv sync --upgrade -p ${{ matrix.python.uvpy }} --no-dev - - name: Install pytest - run: | - uv pip install pytest - uv pip install pytest-cov + run: uv sync -p ${{ matrix.python.uvpy }} -U --no-dev - name: Run pytest - run: uv run pytest --cov + run: > + uv run --with pytest --with pytest-cov + pytest --cov diff --git a/.gitignore b/.gitignore index e353c084..5e9f4387 100644 --- a/.gitignore +++ b/.gitignore @@ -156,5 +156,8 @@ demos/**/*.log demos/**/*.db demos/**/*.nc +# Cmake generated files +CMakeUserPresets.json + # modules -modules.txt \ No newline at end of file +modules.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b054a6fc..df75480c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,20 +1,20 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: mixed-line-ending - fix: auto + args: [--fix=auto] - id: trailing-whitespace - id: check-yaml - id: check-toml - id: check-merge-conflict - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.2 + rev: v0.9.2 hooks: - - id: ruff - id: ruff-format + - id: ruff # - repo: https://github.com/pre-commit/mirrors-mypy - # rev: v1.9.0 + # rev: v1.14.1 # hooks: # - id: mypy - # exclude: tests/ +exclude: '(.venv|.*_cache)/.*' diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 2cb66f60..2accaf5a 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -11,6 +11,8 @@ "sourcery.sourcery", "njpwerner.autodocstring", "editorconfig.editorconfig", + "ms-toolsai.jupyter", + "ms-toolsai.jupyter-renderers", "ms-python.mypy-type-checker", ], // List of extensions recommended by VS Code that should not be recommended for users of this workspace. diff --git a/.vscode/launch.json b/.vscode/launch.json index 49e7c187..b798c5c8 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -49,7 +49,7 @@ "name": "ospCaseBuilder test_caseDict --inspect", "type": "debugpy", "request": "launch", - "cwd": "${workspaceFolder}\\tests\\test_dicts", + "cwd": "${workspaceFolder}\\tests\\test_working_directory", "program": "${workspaceFolder}\\src\\ospx\\cli\\ospCaseBuilder.py", "args": [ "test_caseDict", @@ -65,7 +65,7 @@ "name": "ospCaseBuilder test_caseDict_minimal_inspect --inspect", "type": "debugpy", "request": "launch", - "cwd": "${workspaceFolder}\\tests\\test_dicts", + "cwd": "${workspaceFolder}\\tests\\test_working_directory", "program": "${workspaceFolder}\\src\\ospx\\cli\\ospCaseBuilder.py", "args": [ "test_caseDict_minimal_inspect", @@ -81,7 +81,7 @@ "name": "importSystemStructure test_import_OspSystemStructure.xml", "type": "debugpy", "request": "launch", - "cwd": "${workspaceFolder}\\tests\\test_dicts", + "cwd": "${workspaceFolder}\\tests\\test_working_directory", "program": "${workspaceFolder}\\src\\ospx\\cli\\importSystemStructure.py", "args": [ "test_import_OspSystemStructure.xml", @@ -96,7 +96,7 @@ "name": "ospCaseBuilder test_caseDict_imported_test_graph", "type": "debugpy", "request": "launch", - "cwd": "${workspaceFolder}\\tests\\test_dicts", + "cwd": "${workspaceFolder}\\tests\\test_working_directory", "program": "${workspaceFolder}\\src\\ospx\\cli\\ospCaseBuilder.py", "args": [ "test_caseDict_imported_test_graph", @@ -112,7 +112,7 @@ "name": "ospCaseBuilder test_caseDict --graph", "type": "debugpy", "request": "launch", - "cwd": "${workspaceFolder}\\tests\\test_dicts", + "cwd": "${workspaceFolder}\\tests\\test_working_directory", "program": "${workspaceFolder}\\src\\ospx\\cli\\ospCaseBuilder.py", "args": [ "test_caseDict", @@ -128,7 +128,7 @@ "name": "watchCosim test_caseDict", "type": "debugpy", "request": "launch", - "cwd": "${workspaceFolder}\\tests\\test_dicts", + "cwd": "${workspaceFolder}\\tests\\test_working_directory", "program": "${workspaceFolder}\\src\\ospx\\watch\\cli\\watchCosim.py", "args": [ "watchDict", @@ -144,7 +144,7 @@ "name": "ospCaseBuilder test_caseDict_minimal_set_int_for_real", "type": "debugpy", "request": "launch", - "cwd": "${workspaceFolder}\\tests\\test_dicts", + "cwd": "${workspaceFolder}\\tests\\test_working_directory", "program": "${workspaceFolder}\\src\\ospx\\cli\\ospCaseBuilder.py", "args": [ "test_caseDict_minimal_set_int_for_real", diff --git a/.vscode/settings.json b/.vscode/settings.json index 35d8ed7b..8ec2fac6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -47,6 +47,6 @@ ], "mypy-type-checker.importStrategy": "fromEnvironment", "mypy-type-checker.reportingScope": "workspace", - "mypy-type-checker.preferDaemon": false, + "mypy-type-checker.preferDaemon": true, "ruff.configurationPreference": "filesystemFirst", } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index f2080766..783b9e09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,37 @@ The changelog format is based on [Keep a Changelog](https://keepachangelog.com/e -/- +## [0.3.1] - 2025-01-18 + +### Added +* Added support for Python 3.13 +* Added CITATION.cff +* pyproject.toml : Added keywords + +### Solved +* Resolved issues raised by `ruff` 0.9.2 + +### Dependencies +* Updated to ruff>=0.9.2 (from ruff>=0.6.3) +* Updated to pyright>=1.1.392 (from pyright>=1.1.378) +* Updated to sourcery>=1.31 (from sourcery>=1.22) +* Updated to lxml>=5.3 (from lxml>=5.2) +* Updated to types-lxml>=2024.12 (from types-lxml>=2024.4) +* Updated to matplotlib>=3.10 (from matplotlib>=3.9) +* Updated to dictIO>=0.4.1 (from dictIO>=0.4.0) +* Updated to Sphinx>=8.1 (from Sphinx>=8.0) +* Updated to sphinx-argparse-cli>=1.19 (from sphinx-argparse-cli>=1.17) +* Updated to sphinx-autodoc-typehints>=3.0 (from sphinx-autodoc-typehints>=2.2) +* Updated to mypy>=1.14 (from mypy>=1.11.1) +* Updated to setup-uv@v5 (from setup-uv@v2) +* Updated to jupyter>=1.1 (from jupyter>=1.0) +* Updated to pytest-cov>=6.0 (from pytest-cov>=5.0) +* Updated to pre-commit>=4.0 (from pre-commit>=3.8) +* numpy: As Python 3.13 requires numpy 2.x, made minimum required numpy version in pyproject.toml dependent on Python version: + * "numpy>=1.26; python_version < '3.13'", + * "numpy>=2.2; python_version >= '3.13'", + + ## [0.3.0] - 2024-11-11 ### Breaking changes @@ -438,8 +469,9 @@ Maintenance Release * Added support for Python 3.10 -[unreleased]: https://github.com/dnv-opensource/ospx/compare/v0.2.15...HEAD -[0.2.15]: https://github.com/dnv-opensource/ospx/compare/v0.2.14...v0.2.15 +[unreleased]: https://github.com/dnv-opensource/ospx/compare/v0.3.1...HEAD +[0.3.1]: https://github.com/dnv-opensource/ospx/compare/v0.3.0...v0.3.1 +[0.3.0]: https://github.com/dnv-opensource/ospx/compare/v0.2.14...v0.3.0 [0.2.14]: https://github.com/dnv-opensource/ospx/compare/v0.2.13...v0.2.14 [0.2.13]: https://github.com/dnv-opensource/ospx/compare/v0.2.12...v0.2.13 [0.2.12]: https://github.com/dnv-opensource/ospx/compare/v0.2.11...v0.2.12 diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..a2d4d7f3 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,37 @@ +title: ospx +version: 0.3.1 +abstract: >- + Extension package to farn, adding support to build OSP simulation cases using FMUs. +type: software +authors: + - name: DNV SE + address: 'Brooktorkai 18' + post-code: '20457' + city: Hamburg + country: DE + website: 'https://www.dnv.com/' + - given-names: Frank + family-names: Lumpitzsch + affiliation: DNV + email: frank.lumpitzsch@dnv.com + website: 'https://www.linkedin.com/in/frank-lumpitzsch-23013196/' + - given-names: Claas + family-names: Rostock + affiliation: DNV + email: claas.rostock@dnv.com + website: 'https://www.linkedin.com/in/claasrostock/?locale=en_US' + - given-names: Seunghyeon + family-names: Yoo + affiliation: DNV + email: seunghyeon.yoo@dnv.com + website: 'https://www.linkedin.com/in/seunghyeon-yoo-3625173b/' +keywords: + - farn + - OSP + - fmi +license: MIT +license-url: 'https://dnv-opensource.github.io/ospx/LICENSE.html' +url: 'https://dnv-opensource.github.io/ospx/README.html' +repository-code: 'https://github.com/dnv-opensource/ospx' +message: 'Please cite this software using these metadata.' +cff-version: 1.2.0 diff --git a/README.md b/README.md index f1fa554b..a15fc643 100644 --- a/README.md +++ b/README.md @@ -81,38 +81,27 @@ winget install --id Python.Python or you can download and install Python from the [python.org](https://www.python.org/downloads/) website. ### 3. Clone the repository -Clone the dictIO repository into your local development directory: +Clone the ospx repository into your local development directory: ```sh git clone https://github.com/dnv-opensource/ospx path/to/your/dev/ospx ``` +Change into the project directory after cloning: +```sh +cd ospx +``` ### 4. Install dependencies Run `uv sync` to create a virtual environment and install all project dependencies into it: ```sh uv sync ``` +> **Note**: Using `--no-dev` will omit installing development dependencies. -### 5. (Optional) Install CUDA support -Run `uv sync` with option `--extra cuda` to in addition install torch with CUDA support: -```sh -uv sync --extra cuda -``` - -Alternatively, you can manually install torch with CUDA support. -_Note 1_: Do this preferably _after_ running `uv sync`. That way you ensure a virtual environment exists, which is a prerequisite before you install torch with CUDA support using below `uv pip install` command. - -To manually install torch with CUDA support, generate a `uv pip install` command matching your local machine's operating system using the wizard on the official [PyTorch website](https://pytorch.org/get-started/locally/). -_Note_: As we use `uv` as package manager, remember to replace `pip` in the command generated by the wizard with `uv pip`. - -If you are on Windows, the resulting `uv pip install` command will most likely look something like this: -```sh -uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 -``` - -_Hint:_ If you are unsure which cuda version to indicate in above `uv pip install .. /cuXXX` command, you can use the shell command `nvidia-smi` on your local system to find out the cuda version supported by the current graphics driver installed on your system. When then generating the `uv pip install` command with the wizard from the [PyTorch website](https://pytorch.org/get-started/locally/), select the cuda version that matches the major version of what your graphics driver supports (major version must match, minor version may deviate). +> **Note**: `uv` will create a new virtual environment called `.venv` in the project root directory when running +> `uv sync` the first time. Optionally, you can create your own virtual environment using e.g. `uv venv`, before running +> `uv sync`. - -### 6. (Optional) Activate the virtual environment +### 5. (Optional) Activate the virtual environment When using `uv`, there is in almost all cases no longer a need to manually activate the virtual environment.
`uv` will find the `.venv` virtual environment in the working directory or any parent directory, and activate it on the fly whenever you run a command via `uv` inside your project folder structure: ```sh @@ -131,7 +120,7 @@ To manually activate the virtual environment, run one of the "known" legacy comm source .venv/bin/activate ``` -### 7. Install pre-commit hooks +### 6. Install pre-commit hooks The `.pre-commit-config.yaml` file in the project root directory contains a configuration for pre-commit hooks. To install the pre-commit hooks defined therein in your local git repository, run: ```sh @@ -140,8 +129,22 @@ uv run pre-commit install All pre-commit hooks configured in `.pre-commit-config.yaml` will now run each time you commit changes. +pre-commit can also manually be invoked, at anytime, using: +```sh +uv run pre-commit run --all-files +``` + +To skip the pre-commit validation on commits (e.g. when intentionally committing broken code), run: +```sh +uv run git commit -m --no-verify +``` + +To update the hooks configured in `.pre-commit-config.yaml` to their newest versions, run: +```sh +uv run pre-commit autoupdate +``` -### 8. Test that the installation works +### 7. Test that the installation works To test that the installation works, run pytest in the project root folder: ```sh uv run pytest @@ -151,11 +154,11 @@ uv run pytest Copyright (c) 2024 [DNV](https://www.dnv.com) SE. All rights reserved. -Frank Lumpitzsch – [@LinkedIn](https://www.linkedin.com/in/frank-lumpitzsch-23013196/) – frank.lumpitzsch@dnv.com +Frank Lumpitzsch - [@LinkedIn](https://www.linkedin.com/in/frank-lumpitzsch-23013196/) - frank.lumpitzsch@dnv.com -Claas Rostock – [@LinkedIn](https://www.linkedin.com/in/claasrostock/?locale=en_US) – claas.rostock@dnv.com +Claas Rostock - [@LinkedIn](https://www.linkedin.com/in/claasrostock/?locale=en_US) - claas.rostock@dnv.com -Seunghyeon Yoo – [@LinkedIn](https://www.linkedin.com/in/seunghyeon-yoo-3625173b/) – seunghyeon.yoo@dnv.com +Seunghyeon Yoo - [@LinkedIn](https://www.linkedin.com/in/seunghyeon-yoo-3625173b/) - seunghyeon.yoo@dnv.com Distributed under the MIT license. See [LICENSE](LICENSE.md) for more information. diff --git a/STYLEGUIDE.md b/STYLEGUIDE.md index d4ab3f89..126cf04e 100644 --- a/STYLEGUIDE.md +++ b/STYLEGUIDE.md @@ -372,9 +372,9 @@ If you are interested in the long story including the why‘s, read these discus import pandas as pd import numpy as np - import my_package - import my_package.my_module - from my_package.my_module import my_function, MyClass + import ospx + import ospx.my_module + from ospx.my_module import my_function, MyClass ``` * Even if a Python file is intended to be used as executable / script file only, it shall still be importable as a module, and its import should not have any side effects. Its main functionality shall hence be in a `main()` function, so that the code can be imported as a module for testing or being reused in the future: diff --git a/docs/make.bat b/docs/make.bat index 3ad6380a..df8f6957 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -10,8 +10,6 @@ if "%SPHINXBUILD%" == "" ( set SOURCEDIR=source set BUILDDIR=build -if "%1" == "" goto help - %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. @@ -25,6 +23,8 @@ if errorlevel 9009 ( exit /b 1 ) +if "%1" == "" goto help + %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -a -E goto end diff --git a/docs/source/conf.py b/docs/source/conf.py index e3693cc3..fc3fa19a 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -23,10 +23,10 @@ project = "ospx" copyright = "2024, DNV SE. All rights reserved." -author = "Frank Lumpitzsch, Claas Rostock, Seung Hyeon Yoo" +author = "Frank Lumpitzsch, Claas Rostock, Seunghyeon Yoo" # The full version, including alpha/beta/rc tags -release = "0.3.0" +release = "0.3.1" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration @@ -37,12 +37,17 @@ "sphinx.ext.napoleon", "sphinx_argparse_cli", "sphinx.ext.mathjax", - "matplotlib.sphinxext.plot_directive", "sphinx.ext.autosummary", "sphinx.ext.todo", "sphinxcontrib.mermaid", ] +# Extenstion for myst_parser +myst_enable_extensions = [ + "dollarmath", + "attrs_inline", +] + # The file extensions of source files. source_suffix = { ".rst": "restructuredtext", @@ -74,5 +79,7 @@ myst_heading_anchors = 3 +todo_include_todos = False + # add markdown mermaid support myst_fence_as_directive = ["mermaid"] diff --git a/docs/source/index.rst b/docs/source/index.rst index 2786e2a5..6b9db18f 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,27 +1,27 @@ -.. ospx documentation master file, created by - sphinx-quickstart on Thu Nov 18 22:00:50 2021. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -ospx Documentation -================== - -.. toctree:: - :maxdepth: 4 - :caption: Contents: - - README - CHANGELOG - LICENSE - api - cli - fileFormat - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` +.. ospx documentation master file, created by + sphinx-quickstart on Thu Nov 18 22:00:50 2021. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +ospx Documentation +================== + +.. toctree:: + :maxdepth: 4 + :caption: Contents: + + README + api + cli + fileFormat + CHANGELOG + STYLEGUIDE + LICENSE + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/pyproject.toml b/pyproject.toml index d6239679..8784fc2c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,6 +10,9 @@ only-include = [ "tests", ".coveragerc", ".editorconfig", + ".pre-commit-config.yaml", + "manage.py", + "pyproject.toml", "pytest.ini", "ruff.toml", "uv.lock", @@ -22,19 +25,23 @@ packages = [ [project] name = "ospx" -version = "0.3.0" +version = "0.3.1" description = "Extension package to farn, adding support to build OSP simulation cases using FMUs." readme = "README.md" -requires-python = ">= 3.10" +requires-python = ">= 3.10, < 3.14" license = { file = "LICENSE" } authors = [ { name = "Frank Lumpitzsch", email = "frank.lumpitzsch@dnv.com" }, { name = "Claas Rostock", email = "claas.rostock@dnv.com" }, + { name = "Seunghyeon Yoo", email = "seunghyeon.yoo@dnv.com" }, ] maintainers = [ { name = "Claas Rostock", email = "claas.rostock@dnv.com" }, ] keywords = [ + "farn", + "OSP", + "fmi", ] classifiers = [ "Development Status :: 4 - Beta", @@ -42,6 +49,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Operating System :: MacOS", @@ -52,12 +60,13 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ - "lxml>=5.2", - "numpy>=1.26,<2.0", + "lxml>=5.3", + "numpy>=1.26; python_version < '3.13'", + "numpy>=2.2; python_version >= '3.13'", "pandas>=2.2", - "matplotlib>=3.9", + "matplotlib>=3.10", "graphviz>=0.20", - "dictIO>=0.4.0", + "dictIO>=0.4.1", ] [project.urls] @@ -68,29 +77,33 @@ Issues = "https://github.com/dnv-opensource/ospx/issues" Changelog = "https://github.com/dnv-opensource/ospx/blob/main/CHANGELOG.md" -[tool.uv] -dev-dependencies = [ +[dependency-groups] +dev = [ "pytest>=8.3", - "pytest-cov>=5.0", - "ruff>=0.6.3", - "pyright>=1.1.378", - "mypy>=1.11.1", - "sourcery>=1.22", - "pre-commit>=3.8", - "Sphinx>=8.0", - "sphinx-argparse-cli>=1.17", - "sphinx-autodoc-typehints>=2.2", + "pytest-cov>=6.0", + "ruff>=0.9.2", + "pyright>=1.1.392", + "mypy>=1.14", + "sourcery>=1.31", + "pre-commit>=4.0", + "Sphinx>=8.1", + "sphinx-argparse-cli>=1.19", + "sphinx-autodoc-typehints>=3.0", "sphinxcontrib-mermaid>=1.0.0", "myst-parser>=4.0", "furo>=2024.8", "nbconvert>=7.16", - "jupyter>=1.0", + "jupyter>=1.1", "jupyter-client>=8.6", "pandas-stubs>=2.2", - "types-lxml>=2024.4", + "types-lxml>=2024.12", +] + +[tool.uv] +default-groups = [ + "dev", ] native-tls = true -# prerelease = "explicit" [project.scripts] diff --git a/pytest.ini b/pytest.ini index 89ecb94b..c382b543 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,5 +1,5 @@ [pytest] testpaths = tests -addopts = --strict-markers --verbose +addopts = --strict-markers --verbose --durations=10 xfail_strict = True diff --git a/ruff.toml b/ruff.toml index 88d7a301..cbfd1eeb 100644 --- a/ruff.toml +++ b/ruff.toml @@ -31,8 +31,6 @@ ignore = [ "PLR0912", # Too many branches <- @TODO: reactivate and resolve @CLAROS, 2024-10-21 "PLR0915", # Too many statements <- @TODO: reactivate and resolve @CLAROS, 2024-10-21 # Ruff lint rules considered as too strict and hence ignored - "ANN101", # Missing type annotation for `self` argument in instance methods (NOTE: also listed as deprecated by Ruff) - "ANN102", # Missing type annotation for `cls` argument in class methods (NOTE: also listed as deprecated by Ruff) "FIX002", # Line contains TODO, consider resolving the issue "TD003", # Missing issue link on the line following a TODO "S101", # Use of assert detected @@ -42,6 +40,9 @@ ignore = [ "TRY003", # Avoid specifying long messages outside the exception class "PLR1711", # Useless `return` statement at end of function "G00", # Logging statement uses string formatting ('G00' covers all rules flagging string formatting in logging, e.g. G001, G002, etc.) + "S311", # Standard pseudo-random generators are not suitable for cryptographic purposes + "PLW0603", # Using the global statement to update {name} is discouraged + "PYI041", # Use `float` instead of `int | float` # Ruff lint rules recommended to keep enabled, # but which are typical candidates you might have a need to ignore, @@ -51,8 +52,8 @@ ignore = [ # (uncomment to ignore) # "N803", # Argument name should be lowercase (NOTE: ignore to allow capital arguments (e.g X) in scientific code) # "N806", # Variable in function should be lowercase (NOTE: ignore to allow capital variables (e.g X) in scientific code) - # "TCH002", # Move third-party import into a type-checking block - # "TCH003", # Move standard library import into a type-checking block + # "TC002", # Move third-party import into a type-checking block + # "TC003", # Move standard library import into a type-checking block # Ruff lint rules known to be in conflict with Ruff formatter. # https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules @@ -83,8 +84,6 @@ allowed-confusables = [ [lint.pep8-naming] ignore-names = [ "test_*", - "setUp", - "tearDown", ] [lint.pylint] @@ -116,6 +115,8 @@ raises-require-match-for = [ "PLR2004", # Magic value used in comparison "ANN201", # Missing return type annotation for public function "ANN202", # Missing return type annotation for private function + "ARG001", # Unused function argument: {name} + "ARG002", # Unused method argument: {name} "INP001", # File is part of an implicit namespace package. Add an `__init__.py`. (NOTE: tests are not intended to be a module, __init__.py hence not required.) "SLF001", # Private member accessed "TRY004", # Prefer `TypeError` exception for invalid type @@ -152,6 +153,11 @@ raises-require-match-for = [ "T201", # `print` found "E402", # Module level import not at top of cell ] +# utils/logging specific ignores +"**/utils/logging.py" = [ + "A005", # Module `logging` shadows a Python standard-library module +] + [lint.pydocstyle] convention = "numpy" diff --git a/src/ospx/__init__.py b/src/ospx/__init__.py index b5600751..82a38fa2 100644 --- a/src/ospx/__init__.py +++ b/src/ospx/__init__.py @@ -1,3 +1,5 @@ +"""ospx package.""" + from ospx.simulation import Simulation as Simulation from ospx.connector import Connector as Connector from ospx.connection import ( diff --git a/src/ospx/cli/__init__.py b/src/ospx/cli/__init__.py index e69de29b..753505c9 100644 --- a/src/ospx/cli/__init__.py +++ b/src/ospx/cli/__init__.py @@ -0,0 +1 @@ +"""Command line interfaces.""" diff --git a/src/ospx/cli/importSystemStructure.py b/src/ospx/cli/importSystemStructure.py index 3772c917..4d3ba98c 100644 --- a/src/ospx/cli/importSystemStructure.py +++ b/src/ospx/cli/importSystemStructure.py @@ -1,8 +1,8 @@ #!/usr/bin/env python +"""importSystemStructure command line interface.""" import argparse import logging -from argparse import ArgumentParser from pathlib import Path from ospx import OspSystemStructureImporter @@ -12,9 +12,9 @@ def _argparser() -> argparse.ArgumentParser: - parser = ArgumentParser( + parser = argparse.ArgumentParser( prog="importSystemStructure", - usage="%(prog)s systemStructureFile [options [args]]", + usage="%(prog)s system_structure_file [options [args]]", epilog="_________________importSystemStructure___________________", prefix_chars="-", add_help=True, @@ -22,8 +22,8 @@ def _argparser() -> argparse.ArgumentParser: ) _ = parser.add_argument( - "systemStructureFile", - metavar="systemStructureFile", + "system_structure_file", + metavar="system_structure_file", type=str, help="name of the system structure file", default="OspSystemStructure.xml", @@ -70,7 +70,7 @@ def _argparser() -> argparse.ArgumentParser: def main() -> None: - """Entry point for console script as configured in setup.cfg. + """Entry point for console script as configured in pyproject.toml. Runs the command line interface and parses arguments and options entered on the console. """ @@ -78,16 +78,17 @@ def main() -> None: args = parser.parse_args() # Configure Logging + # ..to console log_level_console: str = "WARNING" if any([args.quiet, args.verbose]): log_level_console = "ERROR" if args.quiet else log_level_console - log_level_console = "DEBUG" if args.verbose else log_level_console + log_level_console = "INFO" if args.verbose else log_level_console # ..to file log_file: Path | None = Path(args.log) if args.log else None log_level_file: str = args.log_level configure_logging(log_level_console, log_file, log_level_file) - system_structure_file: Path = Path(args.systemStructureFile) + system_structure_file: Path = Path(args.system_structure_file) # Check whether system structure file exists if not system_structure_file.is_file(): @@ -95,8 +96,7 @@ def main() -> None: return logger.info( - f"Start importSystemStructure.py with following arguments:\n" - f"\t system_structure_file: \t{system_structure_file}" + f"Start importSystemStructure.py with following arguments:\n\t system_structure_file: \t{system_structure_file}" ) # Invoke API diff --git a/src/ospx/cli/ospCaseBuilder.py b/src/ospx/cli/ospCaseBuilder.py index ac9388b4..84711830 100644 --- a/src/ospx/cli/ospCaseBuilder.py +++ b/src/ospx/cli/ospCaseBuilder.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +"""ospCaseBuilder command line interface.""" import argparse import logging @@ -13,7 +14,7 @@ def _argparser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( prog="ospCaseBuilder", - usage="%(prog)s caseDict [options [args]]", + usage="%(prog)s case_dict_file [options [args]]", epilog="_________________ospCaseBuilder___________________", prefix_chars="-", add_help=True, @@ -21,8 +22,8 @@ def _argparser() -> argparse.ArgumentParser: ) _ = parser.add_argument( - "caseDict", - metavar="caseDict", + "case_dict_file", + metavar="case_dict_file", type=str, nargs="?", help="name of the dict file containing the OSP simulation case configuration.", @@ -97,7 +98,7 @@ def _argparser() -> argparse.ArgumentParser: def main() -> None: - """Entry point for console script as configured in setup.cfg. + """Entry point for console script as configured in pyproject.toml. Runs the command line interface and parses arguments and options entered on the console. """ @@ -106,11 +107,10 @@ def main() -> None: # Configure Logging # ..to console - log_level_console: str = "INFO" + log_level_console: str = "WARNING" if any([args.quiet, args.verbose]): log_level_console = "ERROR" if args.quiet else log_level_console - log_level_console = "DEBUG" if args.verbose else log_level_console - + log_level_console = "INFO" if args.verbose else log_level_console # ..to file log_file: Path | None = Path(args.log) if args.log else None log_level_file: str = args.log_level @@ -120,7 +120,7 @@ def main() -> None: graph: bool = args.graph clean: bool = args.clean - case_dict_file: Path = Path(args.caseDict) + case_dict_file: Path = Path(args.case_dict_file) # Check whether case dict file exists if not case_dict_file.exists(): diff --git a/src/ospx/graph.py b/src/ospx/graph.py index e0eb0e52..fa7c675e 100644 --- a/src/ospx/graph.py +++ b/src/ospx/graph.py @@ -144,22 +144,22 @@ def generate_dependency_graph(case: OspSimulationCase) -> None: style = "dashed" color = "#003399" fontcolor = "#003399" - penwidth = ("%i" % 1,) - weight = ("%i" % 1,) + penwidth = (f"{1:d}",) + weight = (f"{1:d}",) elif re.search(basic_op_names, from_key, re.IGNORECASE): style = "filled" color = "#995566" fontcolor = "#663344" - penwidth = ("%i" % 3,) + penwidth = (f"{3:d}",) weight = (f"{0.66:.2f}",) else: style = "bold" color = "black" fontcolor = "black" - penwidth = ("%i" % int(round((2) ** 1.5, 0)),) - weight = ("%i" % int(round((2) ** 1.5, 0)),) + penwidth = (f"{int(round((2) ** 1.5, 0))}",) + weight = (f"{int(round((2) ** 1.5, 0))}",) callgraph.edge( from_key, diff --git a/src/ospx/ospSimulationCase.py b/src/ospx/ospSimulationCase.py index bedc23de..596c9b32 100644 --- a/src/ospx/ospSimulationCase.py +++ b/src/ospx/ospSimulationCase.py @@ -527,13 +527,13 @@ def _inspect(self) -> None: delim = "\t" * 3 log_string = ( - f"Components and related FMUs as defined in {self.case_dict.name}\n" f"\tcomponent{delim}fmu{delim}\n\n" + f"Components and related FMUs as defined in {self.case_dict.name}\n\tcomponent{delim}fmu{delim}\n\n" ) for component_name, component in self.system_structure.components.items(): log_string += f"\t{component_name}{delim}{component.fmu.file.name}\n" logger.info(log_string + "\n") - log_string = f"FMU attributes defined in the fmu's modelDescription.xml\n" f"\tfmu{delim}attributes{delim}" + log_string = f"FMU attributes defined in the fmu's modelDescription.xml\n\tfmu{delim}attributes{delim}" for fmu_name, fmu in self.system_structure.fmus.items(): log_string += f"\n\n\t{fmu_name}\n" fmu_attributes = "\n".join( @@ -562,9 +562,7 @@ def _inspect(self) -> None: log_string += unit_definitions logger.info(log_string + "\n") - log_string = ( - f"Variables defined in the fmu's modelDescription.xml\n" f"\tfmu{delim}variable{delim}type{delim}unit" - ) + log_string = f"Variables defined in the fmu's modelDescription.xml\n\tfmu{delim}variable{delim}type{delim}unit" logger.info(log_string + "\n") for fmu_name, fmu in self.system_structure.fmus.items(): log_string = f"\t{fmu_name}\n" diff --git a/src/ospx/utils/__init__.py b/src/ospx/utils/__init__.py index e69de29b..9e972259 100644 --- a/src/ospx/utils/__init__.py +++ b/src/ospx/utils/__init__.py @@ -0,0 +1 @@ +"""Utilities for ospx.""" diff --git a/src/ospx/utils/zip.py b/src/ospx/utils/zip.py index 322ce429..0651cdf9 100644 --- a/src/ospx/utils/zip.py +++ b/src/ospx/utils/zip.py @@ -128,7 +128,7 @@ def substitute_text_in_zip( temp = zip_read.read(item.filename) source = (re.findall(subst[0], str(temp)))[0] if not str(source): - logger.warning(f'substitution source is empty:\'{" ".join(source)}\'') + logger.warning(f"substitution source is empty:'{' '.join(source)}'") temp = temp.replace(bytes(source, "utf-8"), bytes(subst[1], "utf-8")) zip_write.writestr(item, temp) diff --git a/tests/conftest.py b/tests/conftest.py index f7ee17b7..bf81ab96 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -14,7 +14,7 @@ def chdir() -> None: Fixture that changes the current working directory to the 'test_working_directory' folder. This fixture is automatically used for the entire package. """ - os.chdir(Path(__file__).parent.absolute() / "test_dicts") + os.chdir(Path(__file__).parent.absolute() / "test_working_directory") @pytest.fixture(scope="package", autouse=True) diff --git a/tests/gunnerus-dp/config/control-system/OspSystemStructure.xml b/tests/gunnerus-dp/config/control-system/OspSystemStructure.xml index 91e820c6..b21b2f9b 100644 --- a/tests/gunnerus-dp/config/control-system/OspSystemStructure.xml +++ b/tests/gunnerus-dp/config/control-system/OspSystemStructure.xml @@ -17,7 +17,7 @@ - + @@ -37,7 +37,7 @@ - + diff --git a/tests/gunnerus-dp/config/control-system/PlotConfig.json b/tests/gunnerus-dp/config/control-system/PlotConfig.json index a2d145a3..876e68de 100644 --- a/tests/gunnerus-dp/config/control-system/PlotConfig.json +++ b/tests/gunnerus-dp/config/control-system/PlotConfig.json @@ -11,7 +11,7 @@ { "simulator": "simulator_communication", "variable": "Measured_Position[1]" - }, + }, { "simulator": "reference_model", "variable": "Position_Setpoint[2]" diff --git a/tests/gunnerus-dp/config/simulator/OspSystemStructure.xml b/tests/gunnerus-dp/config/simulator/OspSystemStructure.xml index 26d8233c..25bad839 100644 --- a/tests/gunnerus-dp/config/simulator/OspSystemStructure.xml +++ b/tests/gunnerus-dp/config/simulator/OspSystemStructure.xml @@ -17,7 +17,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -42,6 +42,6 @@ - + \ No newline at end of file diff --git a/tests/gunnerus-dp/config/simulator/PlotConfig.json b/tests/gunnerus-dp/config/simulator/PlotConfig.json index a84d551f..99c3a713 100644 --- a/tests/gunnerus-dp/config/simulator/PlotConfig.json +++ b/tests/gunnerus-dp/config/simulator/PlotConfig.json @@ -11,7 +11,7 @@ { "simulator": "vessel_model", "variable": "Vessel_Position[1]" - } + } ] }, { diff --git a/tests/gunnerus-dp/config/single-system/OspSystemStructure.xml b/tests/gunnerus-dp/config/single-system/OspSystemStructure.xml index 88fe5d3b..2d6c527f 100644 --- a/tests/gunnerus-dp/config/single-system/OspSystemStructure.xml +++ b/tests/gunnerus-dp/config/single-system/OspSystemStructure.xml @@ -19,7 +19,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -54,11 +54,11 @@ - + - + \ No newline at end of file diff --git a/tests/gunnerus-dp/config/single-system/PlotConfig.json b/tests/gunnerus-dp/config/single-system/PlotConfig.json index 5a921fbf..44ea989a 100644 --- a/tests/gunnerus-dp/config/single-system/PlotConfig.json +++ b/tests/gunnerus-dp/config/single-system/PlotConfig.json @@ -11,7 +11,7 @@ { "simulator": "vessel_model", "variable": "Vessel_Position[1]" - }, + }, { "simulator": "reference_model", "variable": "Position_Setpoint[2]" diff --git a/tests/gunnerus-dp/fmus/BoxReference_OspModelDescription.xml b/tests/gunnerus-dp/fmus/BoxReference_OspModelDescription.xml index 6a833e04..882aed9c 100644 --- a/tests/gunnerus-dp/fmus/BoxReference_OspModelDescription.xml +++ b/tests/gunnerus-dp/fmus/BoxReference_OspModelDescription.xml @@ -1,6 +1,6 @@ - + @@ -9,9 +9,9 @@ - + - + @@ -21,6 +21,6 @@ - + \ No newline at end of file diff --git a/tests/gunnerus-dp/fmus/ControlSystemCommunication_OspModelDescription.xml b/tests/gunnerus-dp/fmus/ControlSystemCommunication_OspModelDescription.xml index 7b49e834..68b42d74 100644 --- a/tests/gunnerus-dp/fmus/ControlSystemCommunication_OspModelDescription.xml +++ b/tests/gunnerus-dp/fmus/ControlSystemCommunication_OspModelDescription.xml @@ -1,6 +1,6 @@ - + @@ -21,9 +21,9 @@ - + - + @@ -45,7 +45,7 @@ - + @@ -53,7 +53,7 @@ - + @@ -63,7 +63,7 @@ - + diff --git a/tests/gunnerus-dp/fmus/CurrentModel_OspModelDescription.xml b/tests/gunnerus-dp/fmus/CurrentModel_OspModelDescription.xml index 2085e939..1bc4a14d 100644 --- a/tests/gunnerus-dp/fmus/CurrentModel_OspModelDescription.xml +++ b/tests/gunnerus-dp/fmus/CurrentModel_OspModelDescription.xml @@ -1,6 +1,6 @@ - + @@ -9,7 +9,7 @@ - + diff --git a/tests/gunnerus-dp/fmus/DPController_OspModelDescription.xml b/tests/gunnerus-dp/fmus/DPController_OspModelDescription.xml index 0c10197b..0f3a42f3 100644 --- a/tests/gunnerus-dp/fmus/DPController_OspModelDescription.xml +++ b/tests/gunnerus-dp/fmus/DPController_OspModelDescription.xml @@ -1,6 +1,6 @@ - + @@ -21,7 +21,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -82,6 +82,6 @@ - + \ No newline at end of file diff --git a/tests/gunnerus-dp/fmus/ReferenceModel_OspModelDescription.xml b/tests/gunnerus-dp/fmus/ReferenceModel_OspModelDescription.xml index 49eac43d..48379d35 100644 --- a/tests/gunnerus-dp/fmus/ReferenceModel_OspModelDescription.xml +++ b/tests/gunnerus-dp/fmus/ReferenceModel_OspModelDescription.xml @@ -1,6 +1,6 @@ - + @@ -15,9 +15,9 @@ - + - + @@ -37,7 +37,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,6 +57,6 @@ - + \ No newline at end of file diff --git a/tests/gunnerus-dp/fmus/SimulatorCommunication_OspModelDescription.xml b/tests/gunnerus-dp/fmus/SimulatorCommunication_OspModelDescription.xml index f8136d4d..fdb2a5d5 100644 --- a/tests/gunnerus-dp/fmus/SimulatorCommunication_OspModelDescription.xml +++ b/tests/gunnerus-dp/fmus/SimulatorCommunication_OspModelDescription.xml @@ -1,6 +1,6 @@ - + @@ -23,7 +23,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -73,6 +73,6 @@ - + \ No newline at end of file diff --git a/tests/gunnerus-dp/fmus/ThrusterDynamics_OspModelDescription.xml b/tests/gunnerus-dp/fmus/ThrusterDynamics_OspModelDescription.xml index c3fcdadb..641c8fac 100644 --- a/tests/gunnerus-dp/fmus/ThrusterDynamics_OspModelDescription.xml +++ b/tests/gunnerus-dp/fmus/ThrusterDynamics_OspModelDescription.xml @@ -1,6 +1,6 @@ - + @@ -9,9 +9,9 @@ - + - + @@ -34,6 +34,6 @@ - + \ No newline at end of file diff --git a/tests/gunnerus-dp/fmus/VesselModel_OspModelDescription.xml b/tests/gunnerus-dp/fmus/VesselModel_OspModelDescription.xml index 593ef7ad..68dc34c7 100644 --- a/tests/gunnerus-dp/fmus/VesselModel_OspModelDescription.xml +++ b/tests/gunnerus-dp/fmus/VesselModel_OspModelDescription.xml @@ -1,6 +1,6 @@ - + @@ -49,20 +49,20 @@ - + - + - + @@ -75,7 +75,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -121,7 +121,7 @@ - + @@ -131,6 +131,6 @@ - + \ No newline at end of file diff --git a/tests/spring_mass_damper/test_OspSystemStructure.xml b/tests/spring_mass_damper/test_OspSystemStructure.xml index d3bca5ce..67dae920 100644 --- a/tests/spring_mass_damper/test_OspSystemStructure.xml +++ b/tests/spring_mass_damper/test_OspSystemStructure.xml @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@ - + diff --git a/tests/test_dicts/.gitignore b/tests/test_working_directory/.gitignore similarity index 93% rename from tests/test_dicts/.gitignore rename to tests/test_working_directory/.gitignore index ae943666..6081dbb8 100644 --- a/tests/test_dicts/.gitignore +++ b/tests/test_working_directory/.gitignore @@ -1,20 +1,20 @@ -#FMU -*.fmu -*.FMU -!test_fmu.fmu - -*.csv -/caseDict_imported_from_* -/OspSystemStructure.xml -/statisticsDict -/SystemStructure.ssd -/watchDict -/results -*callGraph* - - -*.xml -!test_import_OspSystemStructure.xml -!test_fmu*.xml -*.ssd +#FMU +*.fmu +*.FMU +!test_fmu.fmu + +*.csv +/caseDict_imported_from_* +/OspSystemStructure.xml +/statisticsDict +/SystemStructure.ssd +/watchDict +/results +*callGraph* + + +*.xml +!test_import_OspSystemStructure.xml +!test_fmu*.xml +*.ssd /caseDict_imported_from_test_import_OspSystemStructure_xml \ No newline at end of file diff --git a/tests/test_dicts/resetTest.bat b/tests/test_working_directory/resetTest.bat similarity index 95% rename from tests/test_dicts/resetTest.bat rename to tests/test_working_directory/resetTest.bat index 3d214ed9..013dba45 100644 --- a/tests/test_dicts/resetTest.bat +++ b/tests/test_working_directory/resetTest.bat @@ -1,10 +1,10 @@ -del *.csv -del *callGraph* -del *.fmu -del *.log -del caseDict_imported_from_test_import_OspSystemStructure_xml -del OspSystemStructure.xml -del statisticsDict -del SystemStructure.ssd -del watchDict +del *.csv +del *callGraph* +del *.fmu +del *.log +del caseDict_imported_from_test_import_OspSystemStructure_xml +del OspSystemStructure.xml +del statisticsDict +del SystemStructure.ssd +del watchDict rmdir /S /Q results \ No newline at end of file diff --git a/tests/test_dicts/test_caseDict b/tests/test_working_directory/test_caseDict similarity index 96% rename from tests/test_dicts/test_caseDict rename to tests/test_working_directory/test_caseDict index 0b74fb0a..1ae2c1be 100644 --- a/tests/test_dicts/test_caseDict +++ b/tests/test_working_directory/test_caseDict @@ -1,124 +1,124 @@ -/*---------------------------------*- C++ -*----------------------------------*\ -filetype dictionary; coding utf-8; version 0.1; local --; purpose --; -\*----------------------------------------------------------------------------*/ -#include test_caseDict_paramDict - -_environment -{ - libSource .; -} -systemStructure -{ - connections - { - component_1_to_component_2 - { - source - { - component component_1; - connector output_1; - } - target - { - component component_2; - connector input_1; - } - } - component_2_to_component_1 - { - source - { - component component_2; - connector output_2; - } - target - { - component component_1; - connector input_2; - } - } - } - components - { - component_1 - { - connectors - { - input_1 - { - variable Variable_1_IN_Real; - type input; - } - input_2 - { - variableGroup VariableGroup_1_IN; - type input; - } - output_1 - { - variable Variable_4_OUT_Real; - type output; - } - output_2 - { - variableGroup VariableGroup_2_OUT; - type output; - } - } - initialize - { - Variable_1_IN_Real - { - start $variable_1; - } - Variable_2_IN_Integer - { - start $variable_2; - } - Variable_3_IN_Bool - { - start $variable_3; - } - } - fmu test_fmu.fmu; - } - component_2 - { - connectors - { - input_1 - { - variable Variable_1_IN_Real; - type input; - } - input_2 - { - variableGroup VariableGroup_1_IN; - type input; - } - output_1 - { - variable Variable_4_OUT_Real; - type output; - } - output_2 - { - variableGroup VariableGroup_2_OUT; - type output; - } - } - fmu test_fmu.fmu; - } - } -} -run -{ - simulation - { - name testCase; - startTime 0; - stopTime 10; - baseStepSize 0.01; - algorithm fixedStep; - } -} +/*---------------------------------*- C++ -*----------------------------------*\ +filetype dictionary; coding utf-8; version 0.1; local --; purpose --; +\*----------------------------------------------------------------------------*/ +#include test_caseDict_paramDict + +_environment +{ + libSource .; +} +systemStructure +{ + connections + { + component_1_to_component_2 + { + source + { + component component_1; + connector output_1; + } + target + { + component component_2; + connector input_1; + } + } + component_2_to_component_1 + { + source + { + component component_2; + connector output_2; + } + target + { + component component_1; + connector input_2; + } + } + } + components + { + component_1 + { + connectors + { + input_1 + { + variable Variable_1_IN_Real; + type input; + } + input_2 + { + variableGroup VariableGroup_1_IN; + type input; + } + output_1 + { + variable Variable_4_OUT_Real; + type output; + } + output_2 + { + variableGroup VariableGroup_2_OUT; + type output; + } + } + initialize + { + Variable_1_IN_Real + { + start $variable_1; + } + Variable_2_IN_Integer + { + start $variable_2; + } + Variable_3_IN_Bool + { + start $variable_3; + } + } + fmu test_fmu.fmu; + } + component_2 + { + connectors + { + input_1 + { + variable Variable_1_IN_Real; + type input; + } + input_2 + { + variableGroup VariableGroup_1_IN; + type input; + } + output_1 + { + variable Variable_4_OUT_Real; + type output; + } + output_2 + { + variableGroup VariableGroup_2_OUT; + type output; + } + } + fmu test_fmu.fmu; + } + } +} +run +{ + simulation + { + name testCase; + startTime 0; + stopTime 10; + baseStepSize 0.01; + algorithm fixedStep; + } +} diff --git a/tests/test_dicts/test_caseDict_imported_test_graph b/tests/test_working_directory/test_caseDict_imported_test_graph similarity index 96% rename from tests/test_dicts/test_caseDict_imported_test_graph rename to tests/test_working_directory/test_caseDict_imported_test_graph index f276e656..b51aa52b 100644 --- a/tests/test_dicts/test_caseDict_imported_test_graph +++ b/tests/test_working_directory/test_caseDict_imported_test_graph @@ -1,368 +1,368 @@ -/*---------------------------------*- C++ -*----------------------------------*\ -filetype dictionary; coding utf-8; version 0.1; local --; purpose --; -\*----------------------------------------------------------------------------*/ - -_environment -{ - libSource ../library/house; -} -systemStructure -{ - connections - { - OuterWall1_to_Room1 - { - source - { - component OuterWall1; - variable h_wall; - } - target - { - component Room1; - variable h_OuterWall; - } - } - InnerWall_to_Room1 - { - source - { - component InnerWall; - variable h_wall; - } - target - { - component Room1; - variable h_InnerWall; - } - } - TempController_to_Room1 - { - source - { - component TempController; - variable h_room1; - } - target - { - component Room1; - variable h_powerHeater; - } - } - Room1_to_OuterWall1 - { - source - { - component Room1; - variable T_room; - } - target - { - component OuterWall1; - variable T_room1; - } - } - InnerWall_to_Room2 - { - source - { - component InnerWall; - variable h_wall; - } - target - { - component Room2; - variable h_InnerWall; - } - } - OuterWall2_to_Room2 - { - source - { - component OuterWall2; - variable h_wall; - } - target - { - component Room2; - variable h_OuterWall; - } - } - TempController_to_Room2 - { - source - { - component TempController; - variable h_room2; - } - target - { - component Room2; - variable h_powerHeater; - } - } - Room2_to_TempController - { - source - { - component Room2; - variable T_room; - } - target - { - component TempController; - variable T_room2; - } - } - Room1_to_TempController - { - source - { - component Room1; - variable T_room; - } - target - { - component TempController; - variable T_room1; - } - } - Clock_to_TempController - { - source - { - component Clock; - variable Clock; - } - target - { - component TempController; - variable T_clock; - } - } - Room1_to_InnerWall - { - source - { - component Room1; - variable T_room; - } - target - { - component InnerWall; - variable T_room1; - } - } - Room2_to_InnerWall - { - source - { - component Room2; - variable T_room; - } - target - { - component InnerWall; - variable T_room2; - } - } - Room2_to_OuterWall2 - { - source - { - component Room2; - variable T_room; - } - target - { - component OuterWall2; - variable T_room2; - } - } - } - components - { - Clock - { - connectors - { - Clock_Clock - { - variable Clock; - type output; - } - } - fmu Clock.fmu; - } - InnerWall - { - connectors - { - InnerWall_h_wall - { - variable h_wall; - type output; - } - InnerWall_T_room1 - { - variable T_room1; - type input; - } - InnerWall_T_room2 - { - variable T_room2; - type input; - } - } - fmu InnerWall.fmu; - } - OuterWall1 - { - connectors - { - OuterWall1_h_wall - { - variable h_wall; - type output; - } - OuterWall1_T_room1 - { - variable T_room1; - type input; - } - } - fmu OuterWall1.fmu; - initialize - { - T_outside - { - causality parameter; - variability fixed; - start 5.3; - } - } - } - OuterWall2 - { - connectors - { - OuterWall2_h_wall - { - variable h_wall; - type output; - } - OuterWall2_T_room2 - { - variable T_room2; - type input; - } - } - fmu OuterWall2.fmu; - initialize - { - T_outside - { - causality parameter; - variability fixed; - start 4.9; - } - } - } - Room1 - { - connectors - { - Room1_h_OuterWall - { - variable h_OuterWall; - type input; - } - Room1_h_InnerWall - { - variable h_InnerWall; - type input; - } - Room1_h_powerHeater - { - variable h_powerHeater; - type input; - } - Room1_T_room - { - variable T_room; - type output; - } - } - fmu Room1.fmu; - } - Room2 - { - connectors - { - Room2_h_InnerWall - { - variable h_InnerWall; - type input; - } - Room2_h_OuterWall - { - variable h_OuterWall; - type input; - } - Room2_h_powerHeater - { - variable h_powerHeater; - type input; - } - Room2_T_room - { - variable T_room; - type output; - } - } - fmu Room2.fmu; - } - TempController - { - connectors - { - TempController_h_room1 - { - variable h_room1; - type output; - } - TempController_h_room2 - { - variable h_room2; - type output; - } - TempController_T_room2 - { - variable T_room2; - type input; - } - TempController_T_room1 - { - variable T_room1; - type input; - } - TempController_T_clock - { - variable T_clock; - type input; - } - } - fmu TempController.fmu; - } - } -} -run -{ - simulation - { - name OspSystemStructure; - startTime 0.0; - baseStepSize 0.01; - algorithm fixedStep; - } -} +/*---------------------------------*- C++ -*----------------------------------*\ +filetype dictionary; coding utf-8; version 0.1; local --; purpose --; +\*----------------------------------------------------------------------------*/ + +_environment +{ + libSource ../library/house; +} +systemStructure +{ + connections + { + OuterWall1_to_Room1 + { + source + { + component OuterWall1; + variable h_wall; + } + target + { + component Room1; + variable h_OuterWall; + } + } + InnerWall_to_Room1 + { + source + { + component InnerWall; + variable h_wall; + } + target + { + component Room1; + variable h_InnerWall; + } + } + TempController_to_Room1 + { + source + { + component TempController; + variable h_room1; + } + target + { + component Room1; + variable h_powerHeater; + } + } + Room1_to_OuterWall1 + { + source + { + component Room1; + variable T_room; + } + target + { + component OuterWall1; + variable T_room1; + } + } + InnerWall_to_Room2 + { + source + { + component InnerWall; + variable h_wall; + } + target + { + component Room2; + variable h_InnerWall; + } + } + OuterWall2_to_Room2 + { + source + { + component OuterWall2; + variable h_wall; + } + target + { + component Room2; + variable h_OuterWall; + } + } + TempController_to_Room2 + { + source + { + component TempController; + variable h_room2; + } + target + { + component Room2; + variable h_powerHeater; + } + } + Room2_to_TempController + { + source + { + component Room2; + variable T_room; + } + target + { + component TempController; + variable T_room2; + } + } + Room1_to_TempController + { + source + { + component Room1; + variable T_room; + } + target + { + component TempController; + variable T_room1; + } + } + Clock_to_TempController + { + source + { + component Clock; + variable Clock; + } + target + { + component TempController; + variable T_clock; + } + } + Room1_to_InnerWall + { + source + { + component Room1; + variable T_room; + } + target + { + component InnerWall; + variable T_room1; + } + } + Room2_to_InnerWall + { + source + { + component Room2; + variable T_room; + } + target + { + component InnerWall; + variable T_room2; + } + } + Room2_to_OuterWall2 + { + source + { + component Room2; + variable T_room; + } + target + { + component OuterWall2; + variable T_room2; + } + } + } + components + { + Clock + { + connectors + { + Clock_Clock + { + variable Clock; + type output; + } + } + fmu Clock.fmu; + } + InnerWall + { + connectors + { + InnerWall_h_wall + { + variable h_wall; + type output; + } + InnerWall_T_room1 + { + variable T_room1; + type input; + } + InnerWall_T_room2 + { + variable T_room2; + type input; + } + } + fmu InnerWall.fmu; + } + OuterWall1 + { + connectors + { + OuterWall1_h_wall + { + variable h_wall; + type output; + } + OuterWall1_T_room1 + { + variable T_room1; + type input; + } + } + fmu OuterWall1.fmu; + initialize + { + T_outside + { + causality parameter; + variability fixed; + start 5.3; + } + } + } + OuterWall2 + { + connectors + { + OuterWall2_h_wall + { + variable h_wall; + type output; + } + OuterWall2_T_room2 + { + variable T_room2; + type input; + } + } + fmu OuterWall2.fmu; + initialize + { + T_outside + { + causality parameter; + variability fixed; + start 4.9; + } + } + } + Room1 + { + connectors + { + Room1_h_OuterWall + { + variable h_OuterWall; + type input; + } + Room1_h_InnerWall + { + variable h_InnerWall; + type input; + } + Room1_h_powerHeater + { + variable h_powerHeater; + type input; + } + Room1_T_room + { + variable T_room; + type output; + } + } + fmu Room1.fmu; + } + Room2 + { + connectors + { + Room2_h_InnerWall + { + variable h_InnerWall; + type input; + } + Room2_h_OuterWall + { + variable h_OuterWall; + type input; + } + Room2_h_powerHeater + { + variable h_powerHeater; + type input; + } + Room2_T_room + { + variable T_room; + type output; + } + } + fmu Room2.fmu; + } + TempController + { + connectors + { + TempController_h_room1 + { + variable h_room1; + type output; + } + TempController_h_room2 + { + variable h_room2; + type output; + } + TempController_T_room2 + { + variable T_room2; + type input; + } + TempController_T_room1 + { + variable T_room1; + type input; + } + TempController_T_clock + { + variable T_clock; + type input; + } + } + fmu TempController.fmu; + } + } +} +run +{ + simulation + { + name OspSystemStructure; + startTime 0.0; + baseStepSize 0.01; + algorithm fixedStep; + } +} diff --git a/tests/test_dicts/test_caseDict_minimal_inspect b/tests/test_working_directory/test_caseDict_minimal_inspect similarity index 96% rename from tests/test_dicts/test_caseDict_minimal_inspect rename to tests/test_working_directory/test_caseDict_minimal_inspect index c136a6e9..a3f2664f 100644 --- a/tests/test_dicts/test_caseDict_minimal_inspect +++ b/tests/test_working_directory/test_caseDict_minimal_inspect @@ -1,40 +1,40 @@ -/*---------------------------------*- C++ -*----------------------------------*\ -filetype dictionary; coding utf-8; version 0.1; local --; purpose --; -\*----------------------------------------------------------------------------*/ -_environment -{ - libSource ../library; //adjust this path to point to the library folder containing the fmu's -} -systemStructure -{ - components - { - difference - { - fmu simple/difference.fmu; - } - quotient - { - fmu simple/quotient.fmu; - } - minuend - { - fmu simple/constantVal.fmu; - } - subtrahend - { - fmu simple/constantVal.fmu; - } - dividend - { - fmu simple/constantVal.fmu; - } - } -} -run -{ - simulation - { - name demoCase; - } -} +/*---------------------------------*- C++ -*----------------------------------*\ +filetype dictionary; coding utf-8; version 0.1; local --; purpose --; +\*----------------------------------------------------------------------------*/ +_environment +{ + libSource ../library; //adjust this path to point to the library folder containing the fmu's +} +systemStructure +{ + components + { + difference + { + fmu simple/difference.fmu; + } + quotient + { + fmu simple/quotient.fmu; + } + minuend + { + fmu simple/constantVal.fmu; + } + subtrahend + { + fmu simple/constantVal.fmu; + } + dividend + { + fmu simple/constantVal.fmu; + } + } +} +run +{ + simulation + { + name demoCase; + } +} diff --git a/tests/test_dicts/test_caseDict_minimal_set_int_for_real b/tests/test_working_directory/test_caseDict_minimal_set_int_for_real similarity index 96% rename from tests/test_dicts/test_caseDict_minimal_set_int_for_real rename to tests/test_working_directory/test_caseDict_minimal_set_int_for_real index 81c07b5f..6bcfd2bc 100644 --- a/tests/test_dicts/test_caseDict_minimal_set_int_for_real +++ b/tests/test_working_directory/test_caseDict_minimal_set_int_for_real @@ -1,76 +1,76 @@ -/*---------------------------------*- C++ -*----------------------------------*\ -filetype dictionary; coding utf-8; version 0.1; local --; purpose --; -\*----------------------------------------------------------------------------*/ -_environment -{ - libSource ../library; -} -systemStructure -{ - components - { - int_to_k_onst - { - initialize - { - const1.k - { - causality parameter; - start 0; - variability fixed; - } - } - fmu single_int_real/k_onst.fmu; - } - real_to_k_onst - { - initialize - { - const1.k - { - causality parameter; - start 0.; - variability fixed; - } - } - fmu single_int_real/k_onst.fmu; - } - int_to_constantVal - { - initialize - { - constVal.IN - { - causality parameter; - start 0; - variability fixed; - } - } - fmu single_int_real/constantVal.fmu; - } - real_to_constantVal - { - initialize - { - constVal.IN - { - causality parameter; - start 0.; - variability fixed; - } - } - fmu single_int_real/constantVal.fmu; - } - } -} -run -{ - simulation - { - name single_int_real_case; - startTime 0; - stopTime 1; - baseStepSize 0.01; - algorithm fixedStep; - } -} +/*---------------------------------*- C++ -*----------------------------------*\ +filetype dictionary; coding utf-8; version 0.1; local --; purpose --; +\*----------------------------------------------------------------------------*/ +_environment +{ + libSource ../library; +} +systemStructure +{ + components + { + int_to_k_onst + { + initialize + { + const1.k + { + causality parameter; + start 0; + variability fixed; + } + } + fmu single_int_real/k_onst.fmu; + } + real_to_k_onst + { + initialize + { + const1.k + { + causality parameter; + start 0.; + variability fixed; + } + } + fmu single_int_real/k_onst.fmu; + } + int_to_constantVal + { + initialize + { + constVal.IN + { + causality parameter; + start 0; + variability fixed; + } + } + fmu single_int_real/constantVal.fmu; + } + real_to_constantVal + { + initialize + { + constVal.IN + { + causality parameter; + start 0.; + variability fixed; + } + } + fmu single_int_real/constantVal.fmu; + } + } +} +run +{ + simulation + { + name single_int_real_case; + startTime 0; + stopTime 1; + baseStepSize 0.01; + algorithm fixedStep; + } +} diff --git a/tests/test_dicts/test_caseDict_paramDict b/tests/test_working_directory/test_caseDict_paramDict similarity index 97% rename from tests/test_dicts/test_caseDict_paramDict rename to tests/test_working_directory/test_caseDict_paramDict index 289990e1..5bb38898 100644 --- a/tests/test_dicts/test_caseDict_paramDict +++ b/tests/test_working_directory/test_caseDict_paramDict @@ -1,7 +1,7 @@ -/*---------------------------------*- C++ -*----------------------------------*\ -filetype dictionary; coding utf-8; version 0.1; local --; purpose --; -\*----------------------------------------------------------------------------*/ - -variable_1 1.0; -variable_2 2; -variable_3 True; +/*---------------------------------*- C++ -*----------------------------------*\ +filetype dictionary; coding utf-8; version 0.1; local --; purpose --; +\*----------------------------------------------------------------------------*/ + +variable_1 1.0; +variable_2 2; +variable_3 True; diff --git a/tests/test_dicts/test_caseDict_simple b/tests/test_working_directory/test_caseDict_simple similarity index 96% rename from tests/test_dicts/test_caseDict_simple rename to tests/test_working_directory/test_caseDict_simple index 79c413a2..fbe330c1 100644 --- a/tests/test_dicts/test_caseDict_simple +++ b/tests/test_working_directory/test_caseDict_simple @@ -1,156 +1,156 @@ -/*---------------------------------*- C++ -*----------------------------------*\ -filetype dictionary; coding utf-8; version 0.1; local --; purpose --; -\*----------------------------------------------------------------------------*/ -#include test_caseDict_simple_paramDict - -_environment -{ - libSource '../library/simple'; -} -systemStructure -{ - connections - { - minuend_to_difference - { - source minuend_output; - target difference_input_minuend; - } - subtrahend_to_difference - { - source subtrahend_output; - target difference_input_subtrahend; - } - dividend_to_quotient - { - source dividend_output; - target quotient_input_dividend; - } - difference_to_divisor - { - source difference_output; - target quotient_input_divisor; - } - } - components - { - difference - { - connectors - { - difference_input_minuend - { - reference difference.IN1; - type input; - } - difference_input_subtrahend - { - reference difference.IN2; - type input; - } - difference_output - { - reference difference.OUT; - type output; - } - } - fmu difference.fmu; - } - quotient - { - connectors - { - quotient_input_dividend - { - reference quotient.IN1; - type input; - } - quotient_input_divisor - { - reference quotient.IN2; - type input; - } - quotient_output - { - reference quotient.OUT; - type output; - } - - } - fmu quotient.fmu; - } - minuend - { - connectors - { - minuend_output - { - reference constVal.OUT; - type output; - } - } - initialize - { - constVal.IN - { - causality parameter; - start $minuend; - variability fixed; - } - } - fmu constantVal.fmu; - } - subtrahend - { - connectors - { - subtrahend_output - { - reference constVal.OUT; - type output; - } - } - initialize - { - constVal.IN - { - causality parameter; - start $subtrahend; - variability fixed; - } - } - fmu constantVal.fmu; - } - dividend - { - connectors - { - dividend_output - { - reference constVal.OUT; - type output; - } - } - initialize - { - constVal.IN - { - causality parameter; - start $dividend; - variability fixed; - } - } - fmu constantVal.fmu; - } - } -} -run -{ - simulation - { - name demoCase; - startTime 0; - stopTime 10; - baseStepSize 0.01; - } -} +/*---------------------------------*- C++ -*----------------------------------*\ +filetype dictionary; coding utf-8; version 0.1; local --; purpose --; +\*----------------------------------------------------------------------------*/ +#include test_caseDict_simple_paramDict + +_environment +{ + libSource '../library/simple'; +} +systemStructure +{ + connections + { + minuend_to_difference + { + source minuend_output; + target difference_input_minuend; + } + subtrahend_to_difference + { + source subtrahend_output; + target difference_input_subtrahend; + } + dividend_to_quotient + { + source dividend_output; + target quotient_input_dividend; + } + difference_to_divisor + { + source difference_output; + target quotient_input_divisor; + } + } + components + { + difference + { + connectors + { + difference_input_minuend + { + reference difference.IN1; + type input; + } + difference_input_subtrahend + { + reference difference.IN2; + type input; + } + difference_output + { + reference difference.OUT; + type output; + } + } + fmu difference.fmu; + } + quotient + { + connectors + { + quotient_input_dividend + { + reference quotient.IN1; + type input; + } + quotient_input_divisor + { + reference quotient.IN2; + type input; + } + quotient_output + { + reference quotient.OUT; + type output; + } + + } + fmu quotient.fmu; + } + minuend + { + connectors + { + minuend_output + { + reference constVal.OUT; + type output; + } + } + initialize + { + constVal.IN + { + causality parameter; + start $minuend; + variability fixed; + } + } + fmu constantVal.fmu; + } + subtrahend + { + connectors + { + subtrahend_output + { + reference constVal.OUT; + type output; + } + } + initialize + { + constVal.IN + { + causality parameter; + start $subtrahend; + variability fixed; + } + } + fmu constantVal.fmu; + } + dividend + { + connectors + { + dividend_output + { + reference constVal.OUT; + type output; + } + } + initialize + { + constVal.IN + { + causality parameter; + start $dividend; + variability fixed; + } + } + fmu constantVal.fmu; + } + } +} +run +{ + simulation + { + name demoCase; + startTime 0; + stopTime 10; + baseStepSize 0.01; + } +} diff --git a/tests/test_dicts/test_caseDict_simple_paramDict b/tests/test_working_directory/test_caseDict_simple_paramDict similarity index 97% rename from tests/test_dicts/test_caseDict_simple_paramDict rename to tests/test_working_directory/test_caseDict_simple_paramDict index c695610d..4baec316 100644 --- a/tests/test_dicts/test_caseDict_simple_paramDict +++ b/tests/test_working_directory/test_caseDict_simple_paramDict @@ -1,7 +1,7 @@ -/*---------------------------------*- C++ -*----------------------------------*\ -filetype dictionary; coding utf-8; version 0.1; local --; purpose --; -\*----------------------------------------------------------------------------*/ - -minuend 1.0; -subtrahend 2.0; -dividend 3.0; +/*---------------------------------*- C++ -*----------------------------------*\ +filetype dictionary; coding utf-8; version 0.1; local --; purpose --; +\*----------------------------------------------------------------------------*/ + +minuend 1.0; +subtrahend 2.0; +dividend 3.0; diff --git a/tests/test_dicts/test_fmu.fmu b/tests/test_working_directory/test_fmu.fmu similarity index 100% rename from tests/test_dicts/test_fmu.fmu rename to tests/test_working_directory/test_fmu.fmu diff --git a/tests/test_dicts/test_fmu_OspModelDescription.xml b/tests/test_working_directory/test_fmu_OspModelDescription.xml similarity index 100% rename from tests/test_dicts/test_fmu_OspModelDescription.xml rename to tests/test_working_directory/test_fmu_OspModelDescription.xml diff --git a/tests/test_dicts/test_fmu_modelDescription.xml b/tests/test_working_directory/test_fmu_modelDescription.xml similarity index 97% rename from tests/test_dicts/test_fmu_modelDescription.xml rename to tests/test_working_directory/test_fmu_modelDescription.xml index 4aba13de..07fbf71d 100644 --- a/tests/test_dicts/test_fmu_modelDescription.xml +++ b/tests/test_working_directory/test_fmu_modelDescription.xml @@ -1,188 +1,188 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_dicts/test_import_OspSystemStructure.xml b/tests/test_working_directory/test_import_OspSystemStructure.xml similarity index 100% rename from tests/test_dicts/test_import_OspSystemStructure.xml rename to tests/test_working_directory/test_import_OspSystemStructure.xml diff --git a/tests/test_dicts/test_watchDict b/tests/test_working_directory/test_watchDict similarity index 95% rename from tests/test_dicts/test_watchDict rename to tests/test_working_directory/test_watchDict index ed7bb71a..0ab5b2b1 100644 --- a/tests/test_dicts/test_watchDict +++ b/tests/test_working_directory/test_watchDict @@ -1,46 +1,46 @@ -/*---------------------------------*- C++ -*----------------------------------*\ -filetype dictionary; coding utf-8; version 0.1; local --; purpose --; -\*----------------------------------------------------------------------------*/ -datasources -{ - difference - { - columns - ( - 0 1 2 3 4 - ); - } - quotient - { - columns - ( - 0 1 2 3 4 - ); - } - minuend - { - columns - ( - 0 1 2 - ); - } - subtrahend - { - columns - ( - 0 1 2 - ); - } - dividend - { - columns - ( - 0 1 2 - ); - } -} -delimiter ,; -simulation -{ - name demoCase; -} +/*---------------------------------*- C++ -*----------------------------------*\ +filetype dictionary; coding utf-8; version 0.1; local --; purpose --; +\*----------------------------------------------------------------------------*/ +datasources +{ + difference + { + columns + ( + 0 1 2 3 4 + ); + } + quotient + { + columns + ( + 0 1 2 3 4 + ); + } + minuend + { + columns + ( + 0 1 2 + ); + } + subtrahend + { + columns + ( + 0 1 2 + ); + } + dividend + { + columns + ( + 0 1 2 + ); + } +} +delimiter ,; +simulation +{ + name demoCase; +} diff --git a/tests/tx-rx-test/rx-test/rx-testDict b/tests/tx-rx-test/rx-test/rx-testDict index f5430248..d6d68d2e 100644 --- a/tests/tx-rx-test/rx-test/rx-testDict +++ b/tests/tx-rx-test/rx-test/rx-testDict @@ -43,7 +43,7 @@ models stepSize 0.1; } scalarSender - { + { modify { sender.port @@ -55,7 +55,7 @@ models } prototype scalarSender\scalarSender.fmu; stepSize 0.1; - } + } } simulation { diff --git a/tests/tx-rx-test/tx-test/tx-testDict b/tests/tx-rx-test/tx-test/tx-testDict index f5430248..d6d68d2e 100644 --- a/tests/tx-rx-test/tx-test/tx-testDict +++ b/tests/tx-rx-test/tx-test/tx-testDict @@ -43,7 +43,7 @@ models stepSize 0.1; } scalarSender - { + { modify { sender.port @@ -55,7 +55,7 @@ models } prototype scalarSender\scalarSender.fmu; stepSize 0.1; - } + } } simulation { diff --git a/tests/variable_groups/OspSystemStructure_original.xml b/tests/variable_groups/OspSystemStructure_original.xml index 0941838a..eacd4312 100644 --- a/tests/variable_groups/OspSystemStructure_original.xml +++ b/tests/variable_groups/OspSystemStructure_original.xml @@ -1,221 +1,221 @@ - - - 0.0 - 0.05 - fixedStep - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + 0.0 + 0.05 + fixedStep + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/variable_groups/src/EncounterEvaluation_OspModelDescription.xml b/tests/variable_groups/src/EncounterEvaluation_OspModelDescription.xml index 8f3e6e25..8d661876 100644 --- a/tests/variable_groups/src/EncounterEvaluation_OspModelDescription.xml +++ b/tests/variable_groups/src/EncounterEvaluation_OspModelDescription.xml @@ -5,79 +5,79 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + \ No newline at end of file diff --git a/tests/variable_groups/src/EvaluateEncounterR14_OspModelDescription.xml b/tests/variable_groups/src/EvaluateEncounterR14_OspModelDescription.xml index 2238f55a..fb26b0d1 100644 --- a/tests/variable_groups/src/EvaluateEncounterR14_OspModelDescription.xml +++ b/tests/variable_groups/src/EvaluateEncounterR14_OspModelDescription.xml @@ -5,52 +5,52 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + \ No newline at end of file diff --git a/tests/variable_groups/src/SafetyScore_OspModelDescription.xml b/tests/variable_groups/src/SafetyScore_OspModelDescription.xml index ae3f223c..1654f055 100644 --- a/tests/variable_groups/src/SafetyScore_OspModelDescription.xml +++ b/tests/variable_groups/src/SafetyScore_OspModelDescription.xml @@ -5,44 +5,44 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/tests/variable_groups/src/TargetShipModule_OspModelDescription.xml b/tests/variable_groups/src/TargetShipModule_OspModelDescription.xml index 4d24d833..2ab17e68 100644 --- a/tests/variable_groups/src/TargetShipModule_OspModelDescription.xml +++ b/tests/variable_groups/src/TargetShipModule_OspModelDescription.xml @@ -5,46 +5,46 @@ - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/tests/variable_groups/src/VelocityObstacleController_OspModelDescription.xml b/tests/variable_groups/src/VelocityObstacleController_OspModelDescription.xml index b956095c..c8b76b89 100644 --- a/tests/variable_groups/src/VelocityObstacleController_OspModelDescription.xml +++ b/tests/variable_groups/src/VelocityObstacleController_OspModelDescription.xml @@ -5,38 +5,38 @@ - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/tests/variable_groups/src/Vessel_OspModelDescription.xml b/tests/variable_groups/src/Vessel_OspModelDescription.xml index 79820cd3..a88e25c2 100644 --- a/tests/variable_groups/src/Vessel_OspModelDescription.xml +++ b/tests/variable_groups/src/Vessel_OspModelDescription.xml @@ -6,12 +6,12 @@ - - + + - - - + + + \ No newline at end of file