Code Monkey home page Code Monkey logo

checktestdata's Introduction

DOMjudge-logo

DOMjudge

pipeline status Coverity Scan Status CodeQL alerts

This is the Programming Contest Jury System "DOMjudge" version 8.4.0DEV

DOMjudge is a system for running a programming contest, like the ICPC regional and world championship programming contests.

Documentation

For more information on installation and requirements see the documentation under the doc/manual directory. There is an HTML version of the documentation available, prebuilt from reStructuredText sources.

There's also team documentation available, prebuilt in PDF format from reStructuredText sources, but it contains default/example settings. To include the correct settings for your local environment, DOMjudge has to be properly configured first, as parts of the configuration are used in it (e.g. the URL to the team interface of DOMjudge). For more information, see the documentation.

All documentation is also available online at the DOMjudge homepage: https://www.domjudge.org/documentation Please note that this documentation is from the latest stable release and thus might not apply to your version.

A fresh copy of the repository source tree must first be bootstrapped, generating the configure script and documentation. This can be done by running 'make dist', see the online documentation, section "Developer information" for more details.

There is a wiki which collects other pieces of information about specific configurations or integrations: https://github.com/DOMjudge/domjudge/wiki

Copyright & Licensing

DOMjudge is Copyright (c) 2004 - 2024 by the DOMjudge developers and all respective contributors. The current DOMjudge developers are Jaap Eldering, Nicky Gerritsen, Keith Johnson, Thijs Kinkhorst, Mart Pluijmaekers, Michael Vasseur and Tobias Werth; see the manual for a complete list of contributors.

DOMjudge, including its documentation, is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. See the file COPYING.

Additionally, parts of this system are based on other programs, which are covered by other copyrights. This will be noted in the files themselves and these copyrights/attributions can also be found in the DOMjudge manual.

The following JavaScript libraries/snippets are included:

  • coloris: Momo Bassit, licensed under the MIT license, see COPYING.MIT.
  • Ace editor: licensed under the BSD licence, see COPYING.BSD.

The default validator from the Kattis problemtools package is included, licensed under the MIT licence, see COPYING.MIT.

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

The DOMjudge tarball ships external library dependencies in the webapp/vendor directory. These are covered by their individual licenses as specified in the file composer.lock.

Contact

The DOMjudge homepage can be found at: https://www.domjudge.org/

Announcements of new releases are sent to our low volume announcements mailinglist. Subscription to this list is done via https://www.domjudge.org/mailman/postorius/lists/domjudge-announce.domjudge.org/

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/postorius/lists/domjudge-devel.domjudge.org/

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

checktestdata's People

Contributors

austrin avatar davidv1992 avatar eldering avatar jbransen avatar meistert avatar pwerken avatar ragnargrootkoerkamp avatar simonlindholm avatar thijskh avatar tpolzer avatar ubergeek42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

checktestdata's Issues

Add a flag to pass a deterministic seed in combination with `--generate`

Currently --generate output is non-reproducible because the random seed is not deterministic.

It would be nice to add a --seed {seed}/-s {seed} flag to make this deterministic. That way, .ctd files can be used to deterministically generate testdata from generators/generators.yaml files:

Create (or symlink) generators/ctd/input_format.ctd.
Create generators/ctd/run shell script with contents checktestdata --generate --seed $1 ./input_format.ctd.
Call it from generators.yaml using ctd {seed}.

Compile Error in current master

Hi,

I'm building checktestdata on WSL. When compiling on master, I get:

g++ -g -O2 -Wall -fstack-protector -fPIE -D_FORTIFY_SOURCE=2 -std=c++14 -DVERSION="\"20200702\"" -I/usr/include  -c -o parse.o parse.cc
In file included from parse.cc:6:0:
parser.ih: In member function ‘int Parser::lex()’:
parser.ih:23:2: error: ‘d_val_’ was not declared in this scope
  d_val_ = STYPE_(d_scanner.matched());
  ^~~~~~
parser.ih:23:2: note: suggested alternative: ‘d_val__’
  d_val_ = STYPE_(d_scanner.matched());
  ^~~~~~
  d_val__
parser.ih:23:11: error: ‘STYPE_’ was not declared in this scope
  d_val_ = STYPE_(d_scanner.matched());
           ^~~~~~
parser.ih:23:11: note: suggested alternative: ‘STYPE__’
  d_val_ = STYPE_(d_scanner.matched());
           ^~~~~~
           STYPE__
parse.cc: At global scope:
parse.cc:2363:30: error: no ‘void Parser::errorRecovery__()’ member function declared in class ‘Parser’
 void Parser::errorRecovery__()
                              ^
parse.cc:2395:44: error: no ‘void Parser::executeAction__(int)’ member function declared in class ‘Parser’
 void Parser::executeAction__(int production)
                                            ^
checktestdata.y:154:1: error: expected unqualified-id before ‘catch’
checktestdata.y:160:26: error: no ‘void Parser::nextCycle__()’ member function declared in class ‘Parser’
checktestdata.y:192:1: error: expected unqualified-id before ‘catch’
checktestdata.y:206:26: error: no ‘void Parser::nextToken__()’ member function declared in class ‘Parser’
checktestdata.y:233:22: error: no ‘void Parser::print__()’ member function declared in class ‘Parser’
checktestdata.y: In member function ‘int Parser::parse()’:
checktestdata.y:269:9: error: ‘nextCycle__’ was not declared in this scope
checktestdata.y:269:9: note: suggested alternative: ‘nextCycle_’
<builtin>: recipe for target 'parse.o' failed
make: *** [parse.o] Error 1

The release branch builds successfully. I'm a C++ noob and I've no idea what you might need to help :-) Feel free to ask! Some versions:

  • g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
  • bisonc++ V6.01.00
  • flexc++ V2.06.02

Specifying precision of reals

Feature request: for the FLOAT command, it would be very good if it was possible to specify the number of allowed digits after the decimal point, since input specifications are not really complete without such bounds. It should then be possible both to specify an upper bound on the number of decimals, and an exact bound (probably it is easiest to think of it as specifying a range).

leading zeros in front of real numbers not rejected

Consider the following script:

INT(0, 10, n) SPACE FLOATP(0, 10, 0, 5, x) NEWLINE

It rejects the following input:

05 5.23

But accepts the following input:

5 00000000000000000000000005.23

(using FLOAT instead of FLOATP gives the same results).

Is there a rationale for this, or just an oversight?

Unusually poor performance in current release version

The Oct 21 release version of problemtools seems to have severe performance degradation from the April 22 release, on slow-running scripts.

Concrete examples include the ascendingphoto problem from NWERC 2017 (e.g. case 07-big.in went from 4.7 to 6.0 seconds) even though b281d3f, added between the two versions, claims to improve performance on that specific set.

As an extreme example, I found one script that took ~5 minutes to run on the April 22 release, and more than 3 hours (after which I decided to stop waiting) to run on the Oct 21 release.

Improve performance

For some checktestdata programs performance is terrible. Are there low hanging fruits that improve the general performance of checktestdata?

`FLOAT` never matches `0`

For example, running FLOAT(-1, 1) against 0 gives:

0
 ^


ERROR: line 1 character 2 of testdata doesn't match FLOAT(-(1),1): prefix zero(s)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.