-
Notifications
You must be signed in to change notification settings - Fork 169
对拍器 Compare
Toto Lin edited this page May 17, 2017
·
10 revisions
将对拍器与您的数据生成器结合使用,您可以方便地检测您的程序的正确性。
- 对拍输出文件
# 默认比较器为NOIP风格,忽略最后空行和行尾空格
Compare.output("1.out", "2.out", std="std.out")
# 以std.out为标准,对比1.out和2.out的正确性
std_io = IO()
std_io.output_writeln(1, 2, 3) # 往std_io的output里写入一些东西
Compare.output("1.out", "2.out", std=std_io)
# 以std_io这个IO对象中的output为标准,对拍1.out和2.out,
- 对拍程序
input_io = IO()
input_io.input_write("1111\n")
Compare.program("a.exe", "b.exe", input=input_io, std_program="std.exe")
# 以input_io这个IO对象中的input为stdin输入。
# std.exe的输出为标准输出,以此为标准对拍a.exe, b.exe的输出。
Compare.program("a.exe", "b.exe", "c.exe", input="data.in", std="std.out")
# 当然input也可以简单地是文件,并以std.out这个输出文件的内容来对a.exe, b.exe, c.exe对拍。
# 这里std也可以是IO对象。
Compare.program("a.exe", "b.exe", input=input_io, std_program="std.exe", stop_on_incorrect=True)
# 出现错误时停下。假如a.exe出错,则会停下不再对拍b.exe,
# 并在工作目录下输出a.exe.out, std.out, error_input.in三个文件方便您进一步调试。
文档
高级使用
贡献相关