Skip to main content

Lightweight markup for the description of running sessions of input/output based programs in the context of an online judge

Project description

https://travis-ci.org/fabiommendes/iospec.svg?branch=master https://coveralls.io/repos/github/fabiommendes/iospec/badge.svg?branch=master

The IoSpec format is a lightweight markup for specifying the expected inputs and outputs for running a program in an online judge setting. It is designed to be unobtrusive in the simple cases, while still having some some advanced features. This package defines the IoSpec format and provides a Python parser for it.

Basic syntax

A basic session of an input/output based program running on an online judge is specified like this:

Say your name: <John>
Hello, John!

In this example, the string between angle brackets is considered to be an input and everything else is the expected output. Different runs should be separated by blank lines:

Say your name: <John>
Hello, John!

Say your name: <Mary>
Hello, Mary!

We call each of these runs an iospec “test case”. The above example is declaring an interaction in which given the input John, the program should print Hello, John! while in the second run, when the input will be Mary, and the program will print Hello, Mary!.

A IoSpec source file consists of any number of test cases and some special blocks and directives that will be discussed afterwards.

This example is just the surface: IoSpec syntax has commands to define automatic inputs, capture patterns, execution errors and more! Check the manual if you want to learn more.

Project details


Download files

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

Source Distribution

iospec-0.3.13.tar.gz (30.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page