数值回归检验

nrtest的Python项目详细描述


nretest

PyPI PackageBuild StatusCode CoverageDocumentation Status

nrtest是一个端到端回归测试框架,专为执行数值计算的科学软件设计。

功能

nrtest旨在简化您的工作流程:

  • json文件描述了正在测试的软件和测试本身
  • 结果文件存储在可移植的基准目录中
  • 通过迭代测试和测试结果来比较基准
  • 可以通过扩展轻松添加自定义比较

基本用法

作为示例用法,我们考虑测试TOPAS。这是一个用于粒子模拟的蒙特卡罗工具,专为医学物理研究而设计。当然,这样的工具必须根据实验数据进行严格的验证。但是,经常运行较短的测试也很有用,通过将结果与以前的版本进行比较来检查回归。

首先,我们在名为apps/topas-2.0.3.json的配置文件中描述正在测试的软件。请注意,setup_script定义了运行软件所需的环境。

{"name":"topas","version":"2.0.3","setup_script":"/path/to/topas-2.0.3/setup.sh","exe":"topas"}

然后,我们在名为tests/Scoring_01.json的第二个配置文件中描述测试。在此过程中,我们定义了呈现给可执行文件的命令行参数和运行测试所需的输入文件。最后,我们还指定预期的输出文件,并声明如何将它们与基准进行比较。这里我们使用topas binned,这是一个自定义的比较例程,尽管一些比较例程与nrtest绑定在一起。也很容易添加自己的。

{"name":"Scoring_01","version":"1.0","description":"Basic test shooting a 6cm diameter proton beam into a water phantom.","args":["Scoring_01.txt"],"input_files":["Scoring_01.txt","GlobalParameters.txt"],"output_files":{"Dose.csv":"topas binned"}}

为了执行测试,我们告诉nrtest在哪里找到配置文件以及在哪里输出基准。注意,nrtest将搜索tests/进行测试,尽管我们可以指定tests/Scoring_01.json

$ nrtest execute apps/topas-2.0.3.json tests/ -o benchmarks/2.0.3
INFO: Found 1 tests
Scoring_01: pass
INFO: Finished

要与以前的基准进行比较:

$ nrtest compare benchmarks/2.0.3 benchmarks/2.0.2
Scoring_01: pass
INFO: Finished

更高级的用法在documentation中有详细说明。

历史记录

0.2.0(2016-02-21)

  • 为比较函数添加扩展名

0.1.0(2016-02-21)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何阻止actor不断拾取对象?   相当于JavaScript的Java密码   如何访问非静态克隆arrayList以用于Java中的静态方法   java为什么可序列化的内部类不可序列化?   JavaJSP通过JavaBean中的ArrayList循环   mysql如何在Java中将所选列从数据库获取到JTable   java如何使用单个if语句测试字符是否为元音?   java如何将List<Person>转换为Map<String,List<Double>>而不是Map<String,List<Person>>?   Java绘图到JPanel图形,使用字节数组,白色闪烁   使用webEngine事件的JavaScriptJavaNashorn   java在特定位置插入列表<List<Map<Integer,Integer>>   swing Java如何获取JSpinner所选项目的索引?   java Groovy和Grails vs Scala,Twitter为什么选择Scala?   java从一个片段调用另一个片段中的方法   java如何以JSON格式保存对象并将其放入控制器中的列表或映射中   java iText PdfPTable不显示西里尔(俄语)符号