CF Stress is a highly customizable, no-code tool to stress test Codeforces problems.
You control all the parameters of the generator without writing a single line of code. Feeling lazy and want to pin down the error to an array of length 5? You can do that by adjusting the flags passed to the generator. Feeling adventurous and want to test your logic on test cases of length 1000? There's an option for that too. There's also a builtin diff checker for when you want to compare the output of large test cases. You can also seamlessly copy the input/output to your local machine.
Just plug in your submission ID and wait for the ticket to be processed.
It also has support for non-unique answers and interactive problems. The testcases are generated using testlib, the framework that's used to create the original test set.
Note: It only supports C++ and Python submissions for now. (For Java, I could not figure out how to make the name of the file the same as the class name).
If this proves to be useful, I'll add more features, such as user accounts to view tickets in one place, emailing the user on successful completion of the ticket, better concurrency support to handle multiple tickets, revamped UI, etc.
If you have any feedback/suggestions, or if you'd like to collaborate, please let me know in the comments (or drop me an email).
Website is down rn.
Fixed.
Down again :D
It's not working for recent contests, like if I put 1631 E it does nothing
It seems like it would be super cool to have this in general, but the amount of work it would require to accurately create generators for all problems on CF is insane and not really feasible to expand in general without a colossal amount of work being put into it. From my testing, it only works on a handful of rounds. For instance: https://mirror.codeforces.com/contest/1627/problem/E doesn't work in the generator at all, and this was the first test I did.
Yeah, fair enough. Although I should've mentioned in the blog that I don't really intend to support older problems, I've already created CF Debug (currently offline) for that which tells you the smallest testcase from the existing test-set on which your submission fails. However, it's not effective for problems with multiple test cases, the recent norm on Codeforces.
It only supports contests that happened after it was launched (i,e 22nd January, 2022 onwards). The plan was (and is) to update the generator repo a day or two after the contest ends. Considering the frequency of CF contests, I don't think it'd require more than 1 hour commitment per contest, as I already have templates prepared for array, trees, graphs, etc. Creating a good generator that covers corner cases is tricky, but creating a naive one that is correct should not take much time, I believe. It's a stress test after all.
Depending upon the usefulness, I also plan to make at least the generator repo open-source. In that case, all we need is just 1 participant contributing a generator per problem, and the benefits can be reaped by many.
Update: Added Contest 768 and made some minor improvements to the site:
Querying for Java submissions should now correctly display an error, rather than displaying the last stored test case.
The status page should now display the last ticket number.
If a counter example could not be found, the result would be displayed instantly upon completion, (previously it was only displayed once a valid ticket was processed).
Upon failures, help message to increase the constraints are displayed.
Update: Made some improvements to the site and added new features:
Why website is down :(
Will need to investigate, but fixed for now.
website down now.
Really? Seems to be working for me. (And the logs do not indicate any failure). Can you describe the exact issue that you faced?
Thanks a lot for creating this awesome website .
Does this not work without logging in? And how to reset password if you don't remember?
@variety-jones could you please add contest 839 to cf stress
Sorry, I currently do not add problems on demand. However, as a one time exception, I've added 839:C. You can find the counter example to your submission in Ticket 10633
The tree has one path of length 1, and two paths of length 2. The expected path length would be
but your code prints $$$1.66667$$$
could you please elaborate how did you get probability of first path as 1/2 and second path as 1/4 cause there total 3 paths and probability of first path is 1/3 and second is 2/3 expectation will be =(1/3)*1 + (2/3)*2 =5/3 =1.66667
Having 3 paths does not imply that the all the 3 paths are equally likely.
You start your journey at node $$$1$$$, which has edges to node $$$2$$$ and node $$$5$$$. With probability $$$\frac{1}{2}$$$, you'd end your journey at node $$$2$$$, and the remaining $$$\frac{1}{2}$$$ probability needs to be shared amongst all paths that start at node $$$5$$$. Since you make another choice at node $$$5$$$, nodes $$$3$$$ and $$$4$$$ will get an equal contribution of $$$\frac{1}{4}$$$ each. Hence, the result.
got it thank you
A request to add 2005 B1, I am a student and not able to afford the subscription. There should be a price plan for per question test.
Try this test:
This is just another easy test case.
I checked your last submission and it would fail on that test. But I realise now that your earlier submission would pass it.
Look at this one instead:
what will be the contest ID of edu round ??
You can see it in the URL of the contest page. It's 1697.
I just tried this for the first time, however I see that Python support has been temporarily disabled. Any idea when it will be available again?
Hi, it might take some time for Python support to be added. If you need to test something urgently, you can DM me the details, and I'll test it out locally.
Thanks. I will try some local testing first, to see if I can work out the problem, but may get back to you.
can u please add today B..
Since when this tool became subscription based? When i tried to find stress cases for a problem its asking to purchase subscription. Looking at its popularity among codeforces' users, have you started making profit from it?
Maybe. Is there anything wrong with earning money for the efforts that you need to put in to maintain a product?
And details about the upcoming subscription model has been present on the website for a long time now. I never promoted it as something that'd be forever free.
It’s not like binarysearch.com I think. And I wouldn’t rule out binarysearch.com being a paid site in the future as well. It’s just challenging and a money/time sink to maintain a free website without it being open-sourced
I searched 1702E which is after 22nd January but it is not showing anything :)
I was on vacation during that time. Won't be adding it.
ohk thanks
i have purchased the subscription and still it is showing the pricing..why??:(
Hi, it takes some time for the payments to be verified. You must have also gotten a similar message after completing the payment.
Your subscription is activated now.
Note for people stumbling on this thread: Your subscription should be activated within 12-24 hours after you make the payment.