https://github.com/toro-nicolas/setting_up
An algorithmic project in C consists in finding the largest square on a map as quickly as possible.
https://github.com/toro-nicolas/setting_up
algorythm bsq c epitech optimization setting-up
Last synced: 11 months ago
JSON representation
An algorithmic project in C consists in finding the largest square on a map as quickly as possible.
- Host: GitHub
- URL: https://github.com/toro-nicolas/setting_up
- Owner: toro-nicolas
- Created: 2024-01-31T19:25:39.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-20T10:05:30.000Z (almost 2 years ago)
- Last Synced: 2024-06-21T02:35:44.654Z (almost 2 years ago)
- Topics: algorythm, bsq, c, epitech, optimization, setting-up
- Language: C
- Homepage:
- Size: 52.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Setting Up 📏
## Table of contents 📑
- [Description](https://github.com/toro-nicolas/setting-up/blob/main/README.md#description-)
- [Usage](https://github.com/toro-nicolas/setting-up/blob/main/README.md#usage-%EF%B8%8F)
- [Result](https://github.com/toro-nicolas/setting-up/blob/main/README.md#result-)
- [Compilation](https://github.com/toro-nicolas/setting-up/blob/main/README.md#compilation-%EF%B8%8F)
- [Code mandatory](https://github.com/toro-nicolas/setting-up/blob/main/README.md#code-mandatory-)
- [What's next ?](https://github.com/toro-nicolas/setting-up/blob/main/README.md#whats-next--)
- [Contributors](https://github.com/toro-nicolas/setting-up/blob/main/README.md#contributors-)
## Description 📝
The **Setting Up** is a project carried out in **solo**, during our **1st year** in [**EPITECH**](https://www.epitech.eu/) Grand Ecole program.
Its purpose is to create in [**C**](https://en.wikipedia.org/wiki/C_(programming_language)) a program to **find the largest square in a zone**.
## Usage ⚔️
You can run the setting-up like this :
- Map resolution :
```sh
./setting-up exemple_files/maps/intermediate_map_100_100
```
- Map generation and resolution :
```sh
./setting_up 10000 "......o.."
```
## Result 🚩
The result of this project is a **perfect Setting Up**.
If you discover a **problem** or an **error**, don't hesitate to **create an issue** and **report it** to us as soon as possible.
### my.epitech.eu result
| Category | Percentage | Numbers of tests | Crash |
|-----------------------------------------|:----------:|:----------------:|:--------:|
| Algorithm app. - Generating column | 100% | 3/3 | No |
| Algorithm app. - Generating edges | 100% | 2/2 | No |
| Algorithm app. - Generating line | 100% | 3/3 | No |
| Algorithm app. - Generating square | 100% | 3/3 | No |
| Algorithm app. - Opening column | 100% | 3/3 | No |
| Algorithm app. - Opening edges | 100% | 2/2 | No |
| Algorithm app. - Opening line | 100% | 3/3 | No |
| Algorithm app. - Opening rectangle | 100% | 3/3 | No |
| Basics | 100% | 6/6 | No |
| Data structure - Generating | 100% | 3/3 | No |
| Data structure - Opening | 100% | 3/3 | No |
| Optimization - Generating 100 to 500 | 100% | 4/4 | No |
| Optimization - Generating 1000 to 2000 | 100% | 2/2 | No |
| Optimization - Generating 5000 to 10000 | 100% | 2/2 | No |
| Optimization - Opening 100 to 500 | 100% | 4/4 | No |
| Optimization - Opening 1000 to 2000 | 100% | 2/2 | No |
| Optimization - Opening 5000 to 10000 | 100% | 2/2 | No |
| Parsing - Opening | 100% | 3/3 | No |
| Robustness - Generating empty map | 100% | 4/4 | No |
| Robustness - Generating filled map | 100% | 2/2 | No |
| Robustness - Generating valid board | 100% | 5/5 | No |
| Robustness - Opening empty map | 100% | 6/6 | No |
| Robustness - Opening filled map | 100% | 6/6 | No |
| Robustness - Opening valid file | 100% | 5/5 | No |
| **Results** | **100%** | **81/81** | **No** |
### Tests and code coverage
**Unit tests** were performed using [criterion](https://criterion.readthedocs.io/en/master/intro.html).
In this project, **only** the **library code is covered**.
Unit tests are still to be performed, but a large part of the code is already covered.
You can compile the project and run the unit tests with this command :
```sh
make tests_run
```
## Compilation 🛠️
You can compile the project with this command :
```sh
make
```
If you want clean the project, you can run this command :
```sh
make fclean
```
You can clean and compile the project with ```make re```.
You can compile the unit tests with this command :
```sh
make unit_tests
```
## Code mandatory 📦
- You'll need to create a branch where you'll push your code. Once you've completed your tasks on this branch, we'll work together to merge it and check that everything works.
- Every function you add must be code-style.
- Before merging, you'll need to check that all unit tests pass by running ```make tests_run```.
- Each commit will contain ```[+]``` or ```[-]``` or ```[~]``` followed by a message
- ```[+]``` : Add feature
- ```[-]``` : Delete feature
- ```[~]``` : Edit feature
**Of course, in exceptional cases, we may depart from these rules.**
## What's next ? 🚀
- Add help section
- Add a graphical visualization
- Add github actions
- Improve the memory management
- Add a documentation for each function
- Add unit tests on each piece of code
## Contributors 👤
This project was carried out alone by [**Nicolas TORO**](https://github.com/toro-nicolas).