https://github.com/ai091/function_plotter
GUI function plotter
https://github.com/ai091/function_plotter
matplotlib pyside2 pytest python
Last synced: 12 months ago
JSON representation
GUI function plotter
- Host: GitHub
- URL: https://github.com/ai091/function_plotter
- Owner: AI091
- Created: 2023-01-13T13:23:45.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-26T20:25:16.000Z (over 3 years ago)
- Last Synced: 2025-04-04T08:45:54.394Z (about 1 year ago)
- Topics: matplotlib, pyside2, pytest, python
- Language: Python
- Homepage:
- Size: 164 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GUI Function Plotter
## Description
This project is a mathematical function plotter developed with PySide2 and Matplotlib.
## Using this project
First clone the repo using
```
git clone https://github.com/AI091/Function_Plotter.git
```
Then go into the directory
```
cd
```
Then install the dependencies using
```
pip install -r requirements.txt
```
## Working examples
Listed below are examples of correct input with their corresponding output
## Wrong examples
Demonstrated below is some wrong input with their corresponding error messages
Using Y which is not a supported operand
Empty Input
Invalid Mathematical expression
Min larger than max
# Project Layout
```
└── Function_Plotter
├── app.py
├── canvas.py
├── config.py
├── custom_errors.py
├── function_input.py
├── helper.py
├── test.py
├── requirements.txt
├── pytest.ini
```
- **app.py** : defines the main window and runs the application .
- **canvas.py** : defines the plotting canvas .
- **config.py** : defines some plotting parameters like the number of points used for plotting .
- **custom_errors.py** : defines custom errors used in the project .
- **function_input.py** : defines the widget that takes the input function .
- **helper.py** : defines helper functions for parsing the input in a modular fashion .
- **test.py** : defines the automated tests for the functionality of the app's separate parts and end to end as a whole .
- **requirements.txt** : defines the required dependencies to install the project.
- **pytest.ini** : defines the required configuration for pytest to run the tests properly.
## Testing
The project has automated tests defined in ``` test.py ``` that are written using pytest and pytest-qt .
To run the tests :
```
pytest test.py
```