在我的python编程中,我使用“If name == main :”测试将测试用例包含在我的各个模块中。这是一个典型的设置:
def addition (a, b):
return a+b
if __name__ == '__main__':
x = 4
y = 6
print addition(x,y)
“添加”是我的功能。如果从另一个模块调用函数,传递一些输入a和b,则将返回总和。另外,我可以直接运行这个脚本(假设它保存为addition.py),在这种情况下,if子句将返回True并继续执行print语句,这是一个简单的测试用例。
有关“if name == main”构造的更详细说明,请参阅此SO post。
我的问题:
有没有办法在Octave编程语言中模仿这个结构?我想知道是否有类似的方法将测试用例写入我的Octave脚本中,这样如果我直接运行脚本就会运行测试用例,但如果脚本被另一个程序调用则不会运行。
答案 0 :(得分:2)
Octave有测试和演示块,这些块记录在manual上。但是,我仍然会指出它的示例来源(因为Octave在内部使用它们),而不是手册。查看strjoin和rot90函数文件的底部进行测试。
您的具体示例可能会变成(为了示例,我使用了两种不同类型的测试):
function c = addition (a, b)
c = a+b;
endfunction
%!assert (addition (4, 6), 10)
%!test
%! a = 4;
%! b = -4;
%! c = addition (a, b);
%! assert (c, 0)
可以使用test addition
从Octave提示轻松测试。