以八度为单位测试模块

时间:2014-02-02 22:22:04

标签: python testing octave

在我的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脚本中,这样如果我直接运行脚本就会运行测试用例,但如果脚本被另一个程序调用则不会运行。

1 个答案:

答案 0 :(得分:2)

Octave有测试和演示块,这些块记录在manual上。但是,我仍然会指出它的示例来源(因为Octave在内部使用它们),而不是手册。查看strjoinrot90函数文件的底部进行测试。

您的具体示例可能会变成(为了示例,我使用了两种不同类型的测试):

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提示轻松测试。