Skip to content

Feature Request: Advanced Custom Test Case Generation and Individual Test Execution #36

Description

@tanmaythegreat

There are some advanced use cases that could improve the experience significantly.

1. Run Individual Test Cases

Currently, the testing window provides a "Run All" option. It would be useful to also have an option to run a single selected test case.
Use cases:
* Quickly debugging a specific failing case.
* Avoiding unnecessary execution of all test cases when only one case needs verification.
Also i might need to debug a particular test case, via the IDE built-in debugging.

2. Advanced Custom Test Case Generator

Currently, custom test cases are useful for manually entering edge cases, which works well for small inputs.
However, for competitive programming, there are many situations where manually writing large test cases is impractical.
An advanced mode could allow users to define generated test cases, for example:

Large random arrays

Example:

  • Generate an array of size 200000.
  • Fill it with random values.
  • Shuffle the order randomly.

Ordered arrays

Generate:

  • Increasing order:
1 2 3 4 5 ...
  • Decreasing order:
200000 199999 199998 ...

Constant arrays

Generate:

1 1 1 1 1 1 ...

Adversarial inputs

Allow generating special inputs such as:

  • Anti-hash test cases.
  • Worst-case structures for common algorithms.
  • Inputs targeting specific edge cases.

The goal is not necessarily to verify correctness, but to test whether the solution respects the time limit and memory constraints.

3. Optional Expected Output

For generated test cases, it may not always be possible or practical to provide the expected output.
The expected output field could be optional.
Behavior:

  • If expected output is provided:
    • Compare the program output normally.
    • Show success/failure status.
  • If expected output is empty:
    • Run the program.
    • Only check execution status, runtime, and possible errors.
    • Display a neutral state instead of success/failure.

4. Handling Problems With Multiple Valid Answers

Some competitive programming problems allow multiple correct outputs.
It would be useful to know how the plugin currently handles such cases.
Possible future support:

  • Allow custom output validators/checkers.
  • Or provide a neutral verification mode when exact output matching is not possible.
    For such problems, showing a neutral result would be preferable over marking the test as failed due to output mismatch.

Motivation

The main goal is to make the testing environment closer to what competitive programmers use locally:

  • Stress testing solutions.
  • Finding TLE cases before submission.
  • Testing edge cases automatically.
  • Avoiding dependence on external scripts/tools.

These features would make the plugin much more powerful for advanced competitive programming workflows.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions