testlib, 从 code.google.com/p/testlib 自动导出

分享于 

4分钟阅读

GitHub

  繁體 雙語
Automatically exported from code.google.com/p/testlib
  • 源代码名称:testlib
  • 源代码网址:http://www.github.com/MikeMirzayanov/testlib
  • testlib源代码文档
  • testlib源代码下载
  • Git URL:
    git://www.github.com/MikeMirzayanov/testlib.git
    Git Clone代码到本地:
    git clone http://www.github.com/MikeMirzayanov/testlib
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/MikeMirzayanov/testlib
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Testlib

    介绍

    这里项目包含testlib的C++ 实现。 它已经在俄罗斯( 俄罗斯国家学学学,acm的不同阶段)的许多编程竞赛中被使用。 加入 !

    library C++ 代码is与 BORLAND C++ ( 5.6 )。微软 Visual C++ ( 2003 + )。G++ ( MINGW 4.0.2 )的兼容性。 另外,我们没有听到关于与其他编译器的错误工作的任何问题。

    在Linux平台上,在开放的团队编程中多次使用这段代码,在Linux平台上运行,并由编译器编译。

    示例

    检查器

    这是在输出和回答相同整数的示例检查器。 它忽略所有空白。请参见包中的更多示例。

    #include"testlib.h"intmain(int argc, char * argv[])
    {
     setName("compares two signed integers");
     registerTestlibCmd(argc, argv);
     int ja = ans.readInt();
     int pa = ouf.readInt();
     if (ja!= pa)
     quitf(_wa, "expected %d, found %d", ja, pa);
     quitf(_ok, "answer is %d", ja);
    }

    Interactor

    这个示例interactor读取来自输入文件的数字对,发送到其他程序,读取结果并将它的写入输出文件( 以后进行验证)。 另一个选项可能是使用 quitf(_wa, <comment>) 终止 interactor。

    #include"testlib.h"#include<iostream>usingnamespacestd;intmain(int argc, char* argv[])
    {
     setName("Interactor A+B");
     registerInteraction(argc, argv);
     // reads number of queries from test (input) fileint n = inf.readInt();
     for (int i = 0; i <n; i++)
     {
     // reads query from test (input) fileint a = inf.readInt();
     int b = inf.readInt();
     // writes query to the solution, endl makes flush cout <<a <<"" <<b <<endl;
     // writes output file to be verified by checker later tout <<ouf.readInt() <<endl;
     }
     // just messagequitf(_ok, "%d queries processed", n);
    }

    验证器

    这里代码从标准输入读取输入,并检查它是否包含 1和 100之间的唯一整数,包括。 同时验证文件以EOLN和 eof 结尾。 在 Windows 上,它期望 #13#10 作为 EOLN,并且在其他平台上期望 #10 为 EOLN。 它不忽略空格,所以它非常严格。 如果输入非法,它将返回非零代码,并将消息写入标准输出。 查看包中的更多示例。

    #include"testlib.h"intmain(int argc, char* argv[])
    {
     registerValidation(argc, argv);
     inf.readInt(1, 100);
     inf.readEoln();
     inf.readEof();
    }

    发生器

    这里生成器输出到标准输出随机标记中,包含拉丁文字母或者数字。 令牌的长度将在 1和 1000之间,包括。 它将使用均匀分布的随机随机。 若要生成不同的值,请使用不同的命令行 参数调用它。 用 命令行 设置randseed是testlib发生器的典型行为。 查看包中的更多示例。

    #include"testlib.h"#include<iostream>usingnamespacestd;intmain(int argc, char* argv[])
    {
     registerGen(argc, argv, 1);
     cout <<rnd.next(1, 10) <<endl; /* Random number in the range [1,10]. */ cout <<rnd.next("[a-zA-Z0-9]{1,1000}") <<endl; /* Random word of length [1,1000]. */}

    COM  cod  EXP  AUTO  导出  
    相关文章