Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A python tool to distributively run GCJ/FB hacker cup testcases on several machines.

Project Description

A python tool to distributively run GCJ/FB hacker cup testcases on several machines.

How does it work

  • First the splitter runs on the input file to split it into seprate test cases.
  • Test cases with the actuall code are sent to the server.
  • The server distributes the test cases and the actuall code to its registered nodes.
  • Each node computes the result for its testcases and sends the result back to the server
  • The server collects the results and sort them by their testcase number and sends them back to the calling script.

Installation

pip install dTests

Running dTests

  • Create new project:

    dtests_job new project_name language
    
  • The only supported languages now are “cpp” and “java”.

  • Open the new folder and code your splitter to read from the input.in file.

  • Between each test cases print “–split–\n”. The split marker can be configured in “config.json” file. This will split the input file into single test cases which will be distributed on the machines running.

  • Code your program file to read from stdin as if it is reading a single test cases.

  • Run the server

    dtests_server
    
  • Run one or many nodes on other machines ( or for testing on the same machine ):

    dtests_node --host host --port port
    
  • Finally run the job:

    dtests_job run
    
  • Check the help of these commands for further customizations

Sample project

This is a sample cpp project that takes input and multiply it by itself https://github.com/MohamedBassem/dTests/tree/master/samples/power2

  • The config.json file contains the project configuration. The language and the splitter syntax.
  • The splitter.cpp file contains the code that reads the input from the “input.in” file and splits it to single test cases.
  • The program.cpp file that reads a single test cases from stdin and computes the result.
  • To Run this project, run the server and at least one node. Then run “dtests_job run” in the project’s directory.

TODO

  • Finding a way to pass the testcase number to the program
  • Writing Tests.
  • Making the system fault tolerant.
  • Finding a better way for splitting the input file.
  • Supporting more programming languages.

For more info visit https://github.com/MohamedBassem/dTests

Contributing

Your contributions ( Ideas, improvments, etc.. ) are more than welcome.

LICENSE

Licensed under the MIT license.

Release History

Release History

This version
History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
dTests-0.1.7.tar.gz (6.8 kB) Copy SHA256 Checksum SHA256 Source Jul 31, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting