# Incyte: Stress Testing Made Easy

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Python: >=3.6](https://img.shields.io/badge/Python->=3.6-blue.svg)](https://www.python.org/)

Incyte is a powerful stress testing tool designed to make testing and comparing the output of your programs effortless. Whether you're a software developer, tester, or just want to ensure your code is robust, Incyte simplifies the process, saving you time and effort.

## Features

- **Automatic Test Case Generation:** Incyte generates random and custom test cases for your software, ensuring comprehensive testing.

- **Compile and Run:** Easily compile and run your code, tracking execution time for performance evaluation.

- **Output Comparison:** Compare the output of your code with a reference program to identify differences.

- **Customization:** Use a custom input generator or adjust build and run commands to fit your needs.

## Installation

You can install Incyte via pip:

```shell
pip install incyte
```

## Usage

Once installed, you can use Incyte from the command line. Here are the available command-line arguments:

- `-t`, `--testcases`: Specifies the number of test cases to generate (default: 10).
- `-f`, `--file`: Path to the program you want to test (required).
- `--good-file`: Path to the reference (good) program file (default: Good.cpp).
- `--input-file`: Input file for your program (default: input.txt).
- `--output-file`: Output file generated by your program (default: output.txt).
- `--good-output-file`: Reference (good) program's output file (default: output_good.txt).
- `--custom-generator`: Path to a custom input generator function (default: None).

Example usage:

```shell
incyte -t 10 -f your_program.cpp
```


## Configuration

Incyte uses a configuration file to manage custom generator functions and commands. You can modify this file located in the `~/.config/incyte/config.json` directory.

## License

Incyte is licensed under the [MIT License](LICENSE).

---

> Incyte: Taking the stress out of testing your software.
