Skip to content
Switch branches/tags

Testcase Generator

Handy script to generate Test Cases for HackerRank, HackerEarth and CodeChef Problems

Are you a Problem Author? The toughest part of creating a problem is creating tricky, correct and constrained Test Cases. Well, here is a handy Python Script, for your respective logic (solution).

Table of Contents


  • Blog post on experince in NWoC 2018 by Rounak Agarwal.
  • Selected as project in GSSoC 2019
  • Selected as project in NJACKWinterOfCode 2018

Supported Languages

The following languages are supported for testcase generation:


How to Use ? 😃

  • Clone the repository $ git clone

  • Create a virtual environment $ virtualenv venv (click here to read about activating virtualenv)

    • Activate virtualenv (Linux)

      $ source ./venv/bin/activate
    • Activate virtualenv (Windows)

       $ cd venv/Scripts/
       $ activate
  • Install requirements and modules

   $ pip install -r requirements.txt
   $ pip install -e .
  • Change directory to tc_generator
   $ cd tc_generator/
  • Edit the logic file of the language of your choice with the code for which you want to generate TCs NOTE: Make sure to keep the classname as 'logic' in java so that it can compile to 'logic.class'
  • Edit the Input area in according to the input format you wish to generate
  • Run the project
   $ python
  • Enter your choice of language when prompted
  • Enter the choice of platform when prompted
  • The input and output files would be generated and stored in for HackerRank & HackerEarth and test-cases directory for CodeChef.

Tip: If you're creating testcases for CodeChef then you can validate that the input sequence is generated according to the constraints using this validator file. 😉

How it Works ? 🤔


Setup using Docker 🐳

  docker build . --tag=tcgen
  docker run -p 4000:80 tcgen

Running Tests

  • Change Directory to Testcase-Generator
  $ cd Testcase-Generator/
  • Install requirements and modules
   $ pip install -r requirements.txt
   $ pip install -e .
  • Run pytest
  $ pytest
  • If no tests fail, the generator is working correctly.


  1. How do I compile with a different version of C++? Changing Line 22 in to the line below will compile the file with C++ 17. You can replace the '17' with '11', '14' or '20' in the line below to compile with the respective versions.
'compile': ['g++', f'{CMD}.cpp', '-o', CMD, '-std=c++17']},
  1. What line ending does it saves the testcases in? It saves the files with Linux style file endings (LF) in both Linux and Windows (unless the file is opened and saved again in WIndows that may change it to CRLF).


Thanks goes to these wonderful people (emoji key):

Aashutosh Rathi

🔧 📆 👀 🐛 💻

Pushkar Patel

🚧 ⚠️ 🐛 💻

Pritha Upadhyay

🚧 ⚠️ 🐛 💻

Vishnu Ramana


Tim Rossback


Sasivarnan R


Gerardo Gálvez




Sai Adarsh S


Rounak Agarwal

💻 📝

This project follows the all-contributors specification. Contributions of any kind welcome!

Stargazers over time 📈

Stargazers over time

Made with by Aashutosh Rathi


⚡️ Handy script for HackerRank, HackerEarth and CodeChef TCs Generation.





No releases published


No packages published