Build a test suite for TopCoder

Arena performs really awful, and I prefer to practise on my own

Posted by MewX on Aug 15, 2016

It’s been long time not writing a post, and I decide to write post in English.

In this term, I have a required course called Specilised Programming, and this class teaches algorithms. A reference textbook is Introduction to The Design and Analysis of Algorithm (3e.).

Well, this course needs use to submit a practise report each week. While the problems should be from TopCoder.

I found a complicated thing, we need to copy and paste all the test cases by hands. That’s unbearable! So write this program using JUnit to simulate online judge.

Scope of usage

  • Clone the repo:
  • Use IntelliJ IDEA to open the project
  • Find a problem in TopCoder Archive
  • Create a solution class of a problem, and download test case page file from detail page, to “testdata/”
  • Create a JUnit test for the class and destination function
  • Just use my utils library!

Structure of projects


This folder stores all the solution codes.


This folder stores all the test codes.

All the test codes should be JUnit test entities. And tests are available to access common test utils functions.


This folder stores all the web pages containing the whole set of test cases.

Sample test case:

public class TheLotteryBothDivsTest {
    private final double DELTA = 1e-9;

    public void find() throws Exception {
        List<ParsedResultMeta> parsedResultMeta = TestUtils.parseTestData(TestUtils.getFileContentById(;
        for (int i = 0; i < parsedResultMeta.size(); i ++) {
            assertEquals(TestUtils.getFailureMessage(i, parsedResultMeta.size(), BuiltinParser.parseToString(parsedResultMeta.get(i).getTestArgs())),
                    new TheLotteryBothDivs().find(BuiltinParser.parseToStringArray(parsedResultMeta.get(i).getTestArgs())), DELTA);

MewX comments powered by Disqus