All Projects → DOMjudge → checktestdata

DOMjudge / checktestdata

Licence: other
checks integrity of test data in programming contests like the ACM ICPC

Programming Languages

M4
1887 projects
C++
36643 projects - #6 most used programming language
haskell
3896 projects
shell
77523 projects
Makefile
30231 projects
Yacc
648 projects
Lex
420 projects

Projects that are alternatives of or similar to checktestdata

BAPCtools
Tools for developing ICPC-style programming contest problems.
Stars: ✭ 36 (+89.47%)
Mutual labels:  icpc, programming-contests, domjudge
scoreboard
Online judge scoreboard parser
Stars: ✭ 23 (+21.05%)
Mutual labels:  icpc, programming-contests, domjudge
Cpeditor
The IDE for competitive programming 🎉 | Fetch, Code, Compile, Run, Check, Submit 🚀
Stars: ✭ 562 (+2857.89%)
Mutual labels:  acm-icpc, programming-contests
Programming Contest
My solutions of some problems from different online judges
Stars: ✭ 158 (+731.58%)
Mutual labels:  acm-icpc, programming-contests
CPTH
🌟 Competitive Programming Template Headers | With documentation, CI tests and Codecov
Stars: ✭ 23 (+21.05%)
Mutual labels:  icpc, acm-icpc
Project lemonlime
为了 OI 比赛而生的基于 Lemon + LemonPlus 的轻量评测系统 | 三大桌面系统支持
Stars: ✭ 255 (+1242.11%)
Mutual labels:  acm-icpc, programming-contests
OI-Source
OI代码仓库、复习笔记、代码模板、本地Judger
Stars: ✭ 25 (+31.58%)
Mutual labels:  icpc, acm-icpc
OI-wiki
🌟 Wiki of OI / ICPC for everyone. (某大型游戏线上攻略,内含炫酷算术魔法)
Stars: ✭ 12,821 (+67378.95%)
Mutual labels:  icpc, acm-icpc
Weekly Events
Slides and other materials for club meetings
Stars: ✭ 17 (-10.53%)
Mutual labels:  acm-icpc, programming-contests
algorithms
🎈My notebook and solutions for 300+ problems that I solved during practice for ACM-ICPC
Stars: ✭ 26 (+36.84%)
Mutual labels:  icpc, acm-icpc
playground
A place to play programming
Stars: ✭ 21 (+10.53%)
Mutual labels:  icpc, programming-contests
codeforces-go
Golang 算法竞赛模板库 | Solutions to Codeforces by Go 💭💡🎈
Stars: ✭ 842 (+4331.58%)
Mutual labels:  icpc, acm-icpc
ACM ICPC Materials
Preparation materials for ACM ICPC
Stars: ✭ 15 (-21.05%)
Mutual labels:  icpc, acm-icpc
react-form-validation-demo
React Form Validation Demo
Stars: ✭ 88 (+363.16%)
Mutual labels:  validation
cuda memtest
Fork of CUDA GPU memtest 👓
Stars: ✭ 68 (+257.89%)
Mutual labels:  validation
peppermint
Declarative data validation framework, written in Swift
Stars: ✭ 37 (+94.74%)
Mutual labels:  validation
python-valid8
Yet another validation lib ;). Provides tools for general-purpose variable validation, function inputs/outputs validation as well as class fields validation. All entry points raise consistent ValidationError including all contextual details, with dynamic inheritance of ValueError/TypeError as appropriate.
Stars: ✭ 24 (+26.32%)
Mutual labels:  validation
fastq utils
Validation and manipulation of FASTQ files, scRNA-seq barcode pre-processing and UMI quantification.
Stars: ✭ 25 (+31.58%)
Mutual labels:  validation
ValidatedTextInputLayout
An extension to Android Design Support library's TextInputLayout with integrated validation support
Stars: ✭ 54 (+184.21%)
Mutual labels:  validation
fastify-response-validation
A simple plugin that enables response validation for Fastify.
Stars: ✭ 20 (+5.26%)
Mutual labels:  validation

Checktestdata

Build Status Coverage Status Coverity Scan Status

Checktestdata is a tool to verify the syntactical integrity of test cases in programming contests like the ACM ICPC.

It allows you to specify a simple grammar for your testdata input files, according to which the testdata is checked. In the examples directory you find two sample scripts hello.ctd and fltcmp.ctd from the DOMjudge sample problems hello and fltcmp, and under examples/nwerc2008 the scripts used for the NWERC 2008 problemset.

Grammar specification

Checktestdata language specification

We also have a Haskell implementation of the checktestdata program, which supports this specification as well as a Haskell embedded domain-specific language.

Installation and use

Requirements:

If you don't have flexc++ and/or bisonc++ available, you may use the release branch where we've pre-generated the scanner/parser files.

Command line for installing the build dependencies on Debian or Ubuntu, when using the release branch:

apt-get install make g++ libboost-dev libgmp-dev autotools-dev automake

For Redhat-like distributions try:

yum install make g++ boost-devel gmp-devel automake

To compile checktestdata, run:

./bootstrap
make dist
make

Leave out the make dist step if you use the pre-generated scanner/parser files on the release branch.

Finally, you can run

make check

to run a number of tests. Note that a few of the tests are non-deterministic and may sometimes return an error. This is ok, but the make check command should run successfully more than 90% of the time.

For usage instructions run:

checktestdata --help

Library

The commandline program is built upon the separate library libchecktestdata.hpp (see checktestdata.cc as an example for how to use this library) that can be used to write the syntax checking part of special compare scripts. It can easily handle the tedious task of verifying that a team's submission output is syntactically valid, leaving just the task of semantic validation to another program.

When you want to support presentation error as a verdict, also in variable output problems, the option whitespace-ok can be useful. This allows any non-empty sequence of whitespace (no newlines though) where the SPACE command is used, as well as leading and trailing whitespace on lines (when using the NEWLINE command). Please note that with this option enabled, whitespace matching is greedy, so the script code

INT(1,2) SPACE SPACE INT(1,2)

does not match 1__2 (where the two underscores represent spaces), because the first SPACE command already matches both, so the second cannot match anything.

Copyright & Licencing

Checktestdata is Copyright © 2008 - 2019 by the checktestdata developers and all respective contributors. The current checktestdata developers are Jeroen Bransen, Jaap Eldering, Jan Kuipers, and Tobias Werth; see the git commits for a complete list of contributors.

Checktestdata, including its documentation, is free software; you can redistribute it and/or modify it under the terms of the two-clause BSD license. See the file COPYING.

The M4 autoconf macros are licenced under all-permissive and GPL3+ licences; see the respective files under m4/ for details.

Contact

The developers can be reached through the mailinglist [email protected]. You need to be subscribed before you can post. Information, subscription and archives are available at: https://www.domjudge.org/mailman/listinfo/domjudge-devel

DOMjudge has a Slack workspace where a number of developers and users of DOMjudge & checktestdata linger. More information can be found at https://www.domjudge.org/chat

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].