Testing 用于测试输入文件和输出解决方案的脚本
我有一组*.in文件和一组带有匹配文件名的*.soln文件。我想以*.in文件作为输入运行我的程序,并将输出与*.soln文件中的输出进行比较。最好的办法是什么?我可以想出3个选择Testing 用于测试输入文件和输出解决方案的脚本,testing,scripting,Testing,Scripting,我有一组*.in文件和一组带有匹配文件名的*.soln文件。我想以*.in文件作为输入运行我的程序,并将输出与*.soln文件中的输出进行比较。最好的办法是什么?我可以想出3个选择 用Java编写一些驱动程序,列出文件夹中的文件,运行程序,并进行比较。这将是艰难的 编写一个bash脚本来实现这一点。怎么做 编写一个python脚本来实现这一点 如果程序存在,我怀疑bash脚本是最好的选择。 如果您的soln文件命名正确,则类似于 对于base*.soln中的文件 做 myprogram>新建_u
如果程序存在,我怀疑bash脚本是最好的选择。 如果您的soln文件命名正确,则类似于 对于base*.soln中的文件 做 myprogram>新建_u$file diff$文件新文件 完成 当然,您可以检查diff和 执行各种其他操作以创建测试报告 在我看来这很简单
Karl这主要是一个需要使用逻辑最少的文件系统的问题。对于这些问题,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
cd dir_与_文件
程序=您的_程序
input_ext=“.in”
将_与_ext=“.soIn”进行比较
对于扩展名为*的文件,$from_;做
diff我会选择bash解决方案。另外,考虑到您正在做的是一个测试,我将始终保存myprogram
的输出,以便在出现故障时,您始终可以将其与输出进行比较
#!/bin/bash
for infile in *.in; do
basename=${infile%.*}
myprogram $infile > $basename.output
diff $basename.output $basename.soln
done
根据报告的要求添加检查或退出状态等