测试等价与墨西哥人(m) matlab函数
4视图(30天)
显示旧的评论
什么是最好的方法来创建一个测试比较输出从.mex和m函数?它已成为一个通用工作流在matlab编写处理管道,如果需要,找到瓶颈和试图重写他们与墨西哥人较低的语言。我想确认我的墨西哥人的功能和matlab函数产生相当于(或几乎相当于)的结果。有内装式运行matlab文件即使墨西哥人文件同名的存在吗?是matlab fallsback m文件如果没有康比尔墨西哥人文件,都应该是最佳实践,matlab和墨西哥人,版本的功能,因此,它应该是一个常见的需要编写测试,确保这两个是相同的。
如果没有运行matlab函数文件,我应该如何写这个测试吗?我可以写在不同的文件名(即foo_matlab功能。m foo_C.c),那么有一个包装器函数调用所需的函数(即默认为C如果它存在,但“购买”选项)。但这显然不是周围的matlab对这裙子,然后重写默认行为类似的逻辑。我能想到的另一个选择是删除文件(如果它存在的话)墨西哥人在测试设置,运行这个函数,然后编译在相同的测试,并重新运行该函数在相同的方式,并比较结果。这确保编译函数的好处是最新的,但它需要重新编译为每个测试或使用一个丑陋的方法用matlab函数运行所有测试,存储结果,墨西哥人函数编译,然后重新运行测试和比较。但这并不遵循正常的测试惯例,两个部分应该运行在相同的测试函数。
编辑
忘了最初提到,但我没有地面真值我的许多测试用例这是不够两个版本通过测试(见我反应1月的答案更多细节)。其次,解决方案应该能够处理包(函数被称为以不同的方式比流浪在matlab函数的路径)因为我任何代码测试是写成一个包。
0评论
接受的答案
1月
2021年9月6日
我将墨西哥人编译函数存储在特定的文件夹中。这是有用的还支持不同的Matlab版本,每个版金宝app本都有自己的墨西哥人文件的文件夹。
然后包括墨西哥人文件夹路径测试的墨西哥人的功能,如果没有这个文件夹,原来的文件夹中的M-files测试。如果两个函数通过已知答案测试和随机测试,可以认为,它们的输出是等价的。