[英]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.