比较cpp和python上的程序结果

时间:2016-11-25 11:58:50

标签: python c++ testing

我想使用cpp测试Python代码。

我有下一个代码和a.exe文件,我在完成后会得到:

int main() {
    std::istream& input_stream = std::cin;
    std::ostream& output_stream = std::cout;
    Data input_data = ReadData(input_stream);
    Data output_data = DoSomethingWithData(input_data);
    OutputData(output_data, output_stream);
    return 0;
}

我有py代码:

input_data = ''
for line in sys.stdin:
    input_data += line
output_data = do_something_with_data(input_data)
print(output_data)

我想制作py脚本,它可以为cpp程序和py程序提供相同的输入并比较输出。有没有简单的方法呢?

2 个答案:

答案 0 :(得分:0)

您可以使用input_data = "some-data" cpp_output = subprocess.check_output(["a.exe", input_data]) python_output = subprocess.check_output(["python", "test.py", input_data]) assert cpp_output == python_output Selenide):

{{1}}

答案 1 :(得分:0)

看起来你正在使用Windows。我会将两个程序的输出重定向到一个文件,然后比较文件。在cmd.exe中:

a.exe > a_output.txt
your_python_script.py > py_output.txt
FC a_output.txt py_output.txt

您可以使用“>”将输出重定向到文本。命令FC(文件比较)检查文件之间的差异。