Skip to main content

A package for network flow-based test synthesis.

Project description

Build Status

MacOS Build with PDM MacOS Build with conda

Ubuntu Build with PDM Ubuntu Build with conda

codecov Lint

Floras: Flow-Based Reactive Test Synthesis for Autonomous Systems

Detailed installation instruction and the user's guide can be found in the floras documentation.

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 and pygraphviz. If you are using a Mac, please install it via brew and 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 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 by running:

pdm run python get_spot.py

If you are using conda, instead of the above command, you can install spot directly from conda-forge (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.

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.

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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

floras-0.1.0.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

floras-0.1.0-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file floras-0.1.0.tar.gz.

File metadata

  • Download URL: floras-0.1.0.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.19.1 CPython/3.9.18 Darwin/23.6.0

File hashes

Hashes for floras-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e323cb9d3e95bd92c6153da8bbab43da57f1939c09cd30c994792cc0a050dc04
MD5 26787181f340c33b35618df8221eac9b
BLAKE2b-256 f2c307c94e5868805cbf6be68947a6ed1846c07d26ae2ae3c7eae04e30af995b

See more details on using hashes here.

File details

Details for the file floras-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: floras-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 27.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.19.1 CPython/3.9.18 Darwin/23.6.0

File hashes

Hashes for floras-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f1e4e4b32e2f7ec187ba480ddd6c21f2b0bd7eb7cee2d1f4ba418e88729e940
MD5 cd12e749525fc3f04ec9e35eadeea7e5
BLAKE2b-256 7f5fa9dcea3b58364596a200a992569dd49b1242753b28ef30ed08fea1259044

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page