gpt4 book ai didi

optaplanner - ConstraintVerifier 在测试类中未使用 ConstraintConfiguration?

转载 作者:行者123 更新时间:2023-12-05 02:35:53 27 4
gpt4 key购买 nike

我目前正在使用在 ConstraintConfiguration 类中配置的动态权重。但是在执行我编写的测试时似乎没有使用该类。然而,它是在实际执行求解器时使用的。

例如:配置类中有一个权重为16,测试时分数为1,不会与权重相乘,结果为1。但实际求解时,会使用它,它将按预期为 16。

我猜我在测试课上遗漏了一些东西。是不是要告诉ConstraintVerifier或者测试类中的测试方法有ConstraintConfiguration?还是我遗漏了什么?

提前致谢。

我当前的约束验证器:

ConstraintVerifier<ExamScheduleConstraintProvider, ExamSchedule> constraintVerifier = ConstraintVerifier.build(
new ExamScheduleConstraintProvider(), ExamSchedule.class, Exam.class);

无法通过的测试代码示例:

constraintVerifier.verifyThat(ExamScheduleConstraintProvider::TestConstraint)
.given(firstExam, secondExam)
.penalizesBy(16);

最佳答案

ConstraintVerifier提供两种验证方式:

  1. verifyThat(constraintFunction);
  2. verifyThat();

verifyThat(constraintFunction)接受对单个约束的方法引用,并验证在给定某些实体和事实或整个解决方案的情况下,该约束按预期的匹配权重进行惩罚或奖励。需要注意的重要一点是,此验证器完全忽略了约束权重。

verifyThat()不接受任何参数并检查 ConstraintConfiguration 中定义的所有约束的分数影响(包括来自 ConstraintProvider 的约束权重)对提供的实体和事实或整个解决方案的实现。

关于optaplanner - ConstraintVerifier 在测试类中未使用 ConstraintConfiguration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70429212/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com