Блог пользователя variety-jones

Автор variety-jones, 3 года назад, По-английски

cfstress.com

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).

A Sample Result

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).

  • Проголосовать: нравится
  • +126
  • Проголосовать: не нравится

»
3 года назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Website is down rn.

»
3 года назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

It's not working for recent contests, like if I put 1631 E it does nothing

»
3 года назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится

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.

  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    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.

»
3 года назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

Update: Added Contest 768 and made some minor improvements to the site:

  1. Querying for Java submissions should now correctly display an error, rather than displaying the last stored test case.

  2. The status page should now display the last ticket number.

  3. 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).

  4. Upon failures, help message to increase the constraints are displayed.

»
3 года назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

Update: Made some improvements to the site and added new features:

  1. The time limit for a single stress test has been reduced to 1 minute per submission (Earlier it was 3 minutes, which caused unnecessary delays if you accidentally enter an AC submission).
  2. A new feature of getting additional sample test cases for every problem has been added.
  3. The sample test case display page should now only display the Input and Expected Output (and not "Your output" and "Diff"). It also has new help messages for getting alternate counter examples.
»
3 года назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Why website is down :(

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Thanks a lot for creating this awesome website .

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Does this not work without logging in? And how to reset password if you don't remember?

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

@variety-jones could you please add contest 839 to cf stress

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +16 Проголосовать: не нравится

    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

    $$$ \frac{1}{2} \times 1 + \frac{1}{4} \times 2 + \frac{1}{4} \times 2 = 1.5 $$$

    but your code prints $$$1.66667$$$

    • »
      »
      »
      2 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      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

      • »
        »
        »
        »
        2 года назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        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.

        • »
          »
          »
          »
          »
          2 года назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          got it thank you

        • »
          »
          »
          »
          »
          2 месяца назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          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.

          • »
            »
            »
            »
            »
            »
            2 месяца назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Try this test:

            1
            10 2 1
            9 8
            7
            
            
            • »
              »
              »
              »
              »
              »
              »
              2 месяца назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится

              This is just another easy test case.

              • »
                »
                »
                »
                »
                »
                »
                »
                2 месяца назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится

                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:

                1
                10 2 1
                1 10
                2
                
»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

what will be the contest ID of edu round ??

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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?

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится

    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.

    • »
      »
      »
      2 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Thanks. I will try some local testing first, to see if I can work out the problem, but may get back to you.

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

can u please add today B..

»
2 года назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

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?

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится

    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.

  • »
    »
    2 года назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    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

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I searched 1702E which is after 22nd January but it is not showing anything :)

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

i have purchased the subscription and still it is showing the pricing..why??:(

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    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.