From 8aec2ffe6e3b488974f2ca97f7d63324e47742ab Mon Sep 17 00:00:00 2001 From: Marius Gavrilescu Date: Mon, 3 Feb 2014 01:06:54 +0200 Subject: [PATCH] Add more POD --- lib/Gruntmaster/Daemon/Judge/Absolute.pm | 31 +++++++++++++++++ lib/Gruntmaster/Daemon/Judge/Points.pm | 34 +++++++++++++++++- lib/Gruntmaster/Daemon/Runner/Interactive.pm | 36 +++++++++++++++++++- 3 files changed, 99 insertions(+), 2 deletions(-) diff --git a/lib/Gruntmaster/Daemon/Judge/Absolute.pm b/lib/Gruntmaster/Daemon/Judge/Absolute.pm index c90fcf8..b661681 100644 --- a/lib/Gruntmaster/Daemon/Judge/Absolute.pm +++ b/lib/Gruntmaster/Daemon/Judge/Absolute.pm @@ -17,3 +17,34 @@ sub judge{ 1; __END__ + +=encoding utf-8 + +=head1 NAME + +Gruntmaster::Daemon::Judge::Absolute - All-or-nothing ACM-style judge + +=head1 SYNOPSIS + + use Gruntmaster::Daemon::Judge::Absolute; + Gruntmaster::Daemon::Judge::Absolute->judge($result1, $result2, $result3, ...); + +=head1 DESCRIPTION + +Gruntmaster::Daemon::Judge::Absolute is a judge which returns the result of the last test executed. Gruntmaster::Daemon stops running tests if the judge is Gruntmaster::Daemon::Judge::Absolute and a test fails, so the last test result is Accepted if and only if all tests succeeded. + +=head1 AUTHOR + +Marius Gavrilescu Emarius@ieval.roE + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2014 by Marius Gavrilescu + +This library is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + + +=cut diff --git a/lib/Gruntmaster/Daemon/Judge/Points.pm b/lib/Gruntmaster/Daemon/Judge/Points.pm index 0ddc71f..6decaad 100644 --- a/lib/Gruntmaster/Daemon/Judge/Points.pm +++ b/lib/Gruntmaster/Daemon/Judge/Points.pm @@ -19,4 +19,36 @@ sub judge{ $points == 100 ? (result => AC, result_text => 'Accepted') : (result => REJ, result_text => "$points points", points => $points) } -1 +1; +__END__ + +=encoding utf-8 + +=head1 NAME + +Gruntmaster::Daemon::Judge::Points - 0 to 100 points IOI-style judge + +=head1 SYNOPSIS + + use Gruntmaster::Daemon::Judge::Points; + Gruntmaster::Daemon::Judge::Points->judge($result1, $result2, $result3, ...); + +=head1 DESCRIPTION + +Gruntmaster::Daemon::Judge::Points is a judge which adds up the given results and returns C if the final score is 100 points or C otherwise. + +=head1 AUTHOR + +Marius Gavrilescu Emarius@ieval.roE + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2014 by Marius Gavrilescu + +This library is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + + +=cut diff --git a/lib/Gruntmaster/Daemon/Runner/Interactive.pm b/lib/Gruntmaster/Daemon/Runner/Interactive.pm index f761113..aea381a 100644 --- a/lib/Gruntmaster/Daemon/Runner/Interactive.pm +++ b/lib/Gruntmaster/Daemon/Runner/Interactive.pm @@ -38,4 +38,38 @@ sub run{ scalar slurp 'result' } -1 +1; +__END__ + +=encoding utf-8 + +=head1 NAME + +Gruntmaster::Daemon::Runner::Interactive - Make an interactive verifier talk to the program + +=head1 SYNOPSIS + + use Gruntmaster::Daemon::Runner::Interactive; + Gruntmaster::Daemon::Runner::Interactive->run(5, $meta); + +=head1 DESCRIPTION + +B + +Gruntmaster::Daemon::Runner::Interactive is a runner which runs the program and an interactive verifier in parallel, connecting each program's STDIN to the other's STDOUT. The verifier, C<< $meta->{files}{int} >>, should return nonzero if the program gives an incorrect answer, and print the test score to fd 4 then return 0 if the answer is correct. + +=head1 AUTHOR + +Marius Gavrilescu Emarius@ieval.roE + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2014 by Marius Gavrilescu + +This library is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + + +=cut -- 2.30.2