https://github.com/tulip-control/floras
Flow-based Reactive Test Synthesis for Autonomous Systems
https://github.com/tulip-control/floras
network-flow python test-synthesis
Last synced: 8 months ago
JSON representation
Flow-based Reactive Test Synthesis for Autonomous Systems
- Host: GitHub
- URL: https://github.com/tulip-control/floras
- Owner: tulip-control
- License: bsd-3-clause
- Created: 2024-07-23T21:28:38.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-29T21:44:47.000Z (over 1 year ago)
- Last Synced: 2025-01-29T22:29:52.279Z (over 1 year ago)
- Topics: network-flow, python, test-synthesis
- Language: Python
- Homepage: https://floras.readthedocs.io/
- Size: 349 KB
- Stars: 1
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing.md
- License: LICENSE.txt
Awesome Lists containing this project
README
### Build Status
[](https://github.com/tulip-control/floras/actions/workflows/macos_build_pdm.yaml)
[](https://github.com/tulip-control/floras/actions/workflows/macos_build_conda.yaml)
[](https://github.com/tulip-control/floras/actions/workflows/ubuntu_build_pdm.yaml)
[](https://github.com/tulip-control/floras/actions/workflows/ubuntu_build_conda.yaml)
[](https://codecov.io/gh/tulip-control/floras)
[](https://github.com/tulip-control/floras/actions/workflows/lint.yaml)
# Floras: Flow-Based Reactive Test Synthesis for Autonomous Systems
Detailed installation instruction and the user's guide can be found in the [floras documentation](https://floras.readthedocs.io).
### Requirements
Floras requires `Python>=3.10,<3.13` and a C++17-compliant compiler (for example `g++>=7.0` or `clang++>=5.0`).
You can check the versions by running `python --version` and `gcc --version`.
#### Pre-installing Graphviz
Please pre-install [graphviz](https://graphviz.org) and [pygraphviz](https://pygraphviz.github.io).
If you are using a Mac, please install it via [brew](https://brew.sh) and [pip](https://pypi.org/project/pip/):
```
brew install graphviz
pip install pygraphviz
```
On Ubuntu, please install graphviz using these commands:
```
sudo apt-get install graphviz graphviz-dev
pip install pygraphviz
```
## Installing Floras
To install floras, please clone the repository:
```
git clone https://github.com/tulip-control/floras.git
```
We are using [pdm](https://pdm-project.org/en/latest/) to manage the dependencies.
```
pip install pdm
```
Navigate to the repo to install floras and all required dependencies:
```
cd floras
pdm install
```
Next, install [spot](https://spot.lre.epita.fr/) by running:
```
pdm run python get_spot.py
```
If you are using [conda](https://conda.org/), instead of the above command, you can install spot directly from [conda-forge](https://conda-forge.org/) (this is faster). This does not work on MacOS, please use the above command to build spot in that case.
```
conda install -c conda-forge spot
```
If the spot installation does not work, please install it according to the instructions on the [spot website](https://spot.lre.epita.fr/install.html).
To enter the virtual environment created by pdm:
```
$(pdm venv activate)
```
You can test your installation by running the following command:
```
pdm install -G tests
pdm run pytest -v tests
```
If these instructions don't work for you, you can find more information about the installation process and troubleshooting, please visit [the floras documentation](https://floras.readthedocs.io/en/latest/installing/).
You can also build the documentation by running:
```
pdm install -G docs
pdm run mkdocs build
```
The floras repository contains implementations of the algorithms developed in the following paper:
[Josefine B. Graebener*, Apurva S. Badithela*, Denizalp Goktas, Wyatt Ubellacker, Eric V. Mazumdar, Aaron D. Ames, and Richard M. Murray. "Flow-Based Synthesis of Reactive Tests for Discrete Decision-Making Systems with Temporal Logic Specifications." ArXiv abs/2404.09888 (2024).](https://arxiv.org/abs/2404.09888)