首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试使用impact()代替奖励()或that ()的约束

测试使用impact()代替奖励()或that ()的约束
EN

Stack Overflow用户
提问于 2022-10-13 09:40:55
回答 1查看 43关注 0票数 0

我有一个使用impactConfigurable的约束,但是SingleConstraintAssertion接口只支持测试约束是否奖励或惩罚。例如,我不能做以下工作:

代码语言:javascript
复制
constraintVerifier.verifyThat(myConstraint).given(obj1, obj2).impactsBy(1);

代码语言:javascript
复制
constraintVerifier.verifyThat(myConstraint).given(obj1, obj2).impactsBy(-1);

有办法绕道吗?

我使用的是OptaPlanner版本8.25.0.Final。

EN

回答 1

Stack Overflow用户

发布于 2022-10-13 11:05:34

那是故意的。不管你的约束是惩罚、奖励还是影响,最终的结果仍然是惩罚还是奖励。因此,在测试中,您需要指定预期的结果。例如,如果您预期会产生负面影响,那么实际上,您期待的是一种惩罚:

代码语言:javascript
复制
constraintVerifier.verifyThat(myConstraint).given(obj1, obj2).penalizesBy(1);

顺便提一句:我们真的很好奇现实世界中的约束实际上需要使用impact()而不是penalize()reward()。我们无法同时想到任何现实的限制,这将是积极的和消极的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74053615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档