【发布时间】:2022-01-25 14:49:39
【问题描述】:
我正在用 pyomo 实现几个优化程序。
到目前为止,我已经用unittest 编写了一些关于最优目标值和最优变量值的集成测试。
我想为每个目标和约束编写单元测试,以确保它们得到正确实施。正确的做法是什么?
【问题讨论】:
-
我认为这在很大程度上取决于您正在处理的问题的类型和,如果您有某些情况下您知道正确(最佳)答案。如果您有一些输入组合绑定了一个约束,您可以运行它,检查约束 ant OBJ 函数,然后将驱动绑定约束的输入加倍并确保没有任何变化,等等。我发现的另一种策略很有用是将 obj 函数(假设它有点复杂)分解成表达式,然后分别检查/测试它们
-
@AirSquid 感谢您的评论。我不确定我是否理解“将驱动绑定约束的输入加倍并确保没有任何变化等”部分。能否请您给出一些精确的信息?
-
是的,我不确定我说的是否正确...让我发布一个更完整的概念作为答案...
-
我通常专注于对输入数据和解决方案。每次发生奇怪的事情时,尝试添加可以防止这种情况发生的测试。
标签: python unit-testing mathematical-optimization pyomo