[英]Script for Testing with Input files and Output Solutions
我有一组* .in文件和一组* .soln文件,它们具有匹配的文件名。 我想以* .in文件作为输入来运行我的程序,并将输出与* .soln文件中的输出进行比较。 最好的方法是什么? 我可以想到3个选择。
如果程序存在,我怀疑bash脚本是最好的选择。 如果您的soln文件命名正确,则类似
对于base * .soln中的文件,请执行myprogram> new_ $ file diff $ file new_ $ file完成
当然,您可以检查diff的退出代码并执行其他各种操作来创建测试报告。 。 。
在我看来,这最简单。 。 。
卡尔
这主要是一个问题,需要使用最少逻辑的文件系统。 对于此类问题,Bash并不是一个不错的选择。 如果事实证明,您想要做的事情不仅仅只是比较是否相等,Python就会成为更有吸引力的选择。 对于这样的一次性脚本,Java似乎不是一个不错的选择。
基本的bash实现可能看起来像这样:
cd dir_with_files
program=your_program
input_ext=".in"
compare_to_ext=".soIn"
for file in *$from_extension; do
diff <("$program" "$i") "${file:0:$((${#file}-3))}$compare_to_ext"
done
未经测试。
我会寻求一个bash解决方案。 还要考虑到您正在做的是测试,所以我将始终保存myprogram
的输出,以便在出现故障时始终可以将其与之进行比较。
#!/bin/bash
for infile in *.in; do
basename=${infile%.*}
myprogram $infile > $basename.output
diff $basename.output $basename.soln
done
根据报告的要求添加检查或退出状态等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.