https://github.com/khanhtran0111/gentest
Generate testcase for CP
https://github.com/khanhtran0111/gentest
autobat competitive-programming cpp testcases testgenerator
Last synced: 19 days ago
JSON representation
Generate testcase for CP
- Host: GitHub
- URL: https://github.com/khanhtran0111/gentest
- Owner: khanhtran0111
- License: mit
- Created: 2024-05-28T09:22:20.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-06T07:46:05.000Z (12 months ago)
- Last Synced: 2025-07-06T08:37:48.786Z (12 months ago)
- Topics: autobat, competitive-programming, cpp, testcases, testgenerator
- Language: Python
- Homepage:
- Size: 23.4 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hướng Dẫn Sử Dụng Script Sinh Test
Authors: Khanh Tran, Ngat Do - Code Dream Programming Learning Center
## Bước 1: Tạo Folder Chứa Bài Tập cần được sinh test
Tạo một folder mới bên trong thư mục `problems`, đặt tên theo mã bài tập. Ví dụ:
```
problems/
bai1/
bai2/
...
```
## Bước 2: Thêm File Solution vào Thư mục `solutions`
Thêm file solution **C++ hoặc Python** vào folder `solutions`.
- **Tên file phải trùng với tên folder của bài tập trong thư mục `problems`**.
- Nếu viết bằng **C++**, đặt tên file là `.cpp`.
- Nếu viết bằng **Python**, đặt tên file là `.py`.
Ví dụ với bài `bonghong`:
```
solutions/
bonghong.cpp (hoặc bonghong.py)
```
## Bước 3: Cấu Hình File `config.py`
- **Copy file** `config_sample.py` vào thư mục bài tập.
- **Đổi tên file** thành `config.py`.
- **Chỉnh sửa các tham số** bên trong `config.py` như sau:
```python
# Tên bài toán (trùng với tên folder và file code)
problemName = "bonghong"
# Số lượng test case cần sinh
totalOfTests = 20
# Phân chia điểm theo subtask
subtasks = [50, 50] # Subtask 1: 50%, Subtask 2: 50%. Thêm và điều chỉnh số lượng subtasks và % tương ứng nếu cần.
# Giới hạn đầu vào của bài toán
minN = 1
maxN = [1000, 1000000] # Giới hạn đầu vào cho các subtasks tương ứng.
```
- Hàm `genInputContent(testID, curSubtask)` chịu trách nhiệm sinh dữ liệu đầu vào cho từng test case. Chỉnh sửa hàm sao cho phù hợp với dữ liệu từng đề bài. File `genUltils.py` chứa các hàm hỗ trợ sinh dữ liệu ngẫu nhiên và xử lý định dạng. Hãy tham khảo file này để biết thêm các hàm tiện ích.
## Bước 4: Chạy Script Sinh Test
Chạy file `genTest.py` để tạo bộ test tự động:
```sh
python genTest.py
```
Sau khi chạy xong, test cases sẽ được tạo trong thư mục bài tập. Bạn có thể kiểm tra output trong các file `*.out` tương ứng.
---
Nếu muốn đơn giản hoá các bước, ít thao tác, có thể chạy file `app.py` để có thể một app trực quan nhất về sinh test cũng như thao tác đơn giản hơn. (Vẫn đang trong quá trình hoàn thiện, đây là phiên bản demo nên mong quý bạn đọc có thể sử dụng thử)
Nếu có vấn đề, góp ý, xin hãy gửi qua mail: giakhanhcnh@gmail.com