Skip to content

Commit bb069b4

Browse files
Update EmTest
1 parent 5a4d6e6 commit bb069b4

12 files changed

Lines changed: 38 additions & 16 deletions

File tree

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/AIClassificationEMTestBase.kt

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,31 +39,53 @@ abstract class AIClassificationEMTestBase : SpringTestBase(){
3939
return ei
4040
}
4141

42+
private fun isWeakClassifier(
43+
model: AIResponseClassifier,
44+
action: RestCallAction,
45+
weaknessThreshold: Double
46+
): Boolean {
47+
48+
val metrics = model.estimateMetrics(action.endpoint)
49+
50+
return metrics.precision400 <= weaknessThreshold
51+
|| metrics.sensitivity400 <= weaknessThreshold
52+
|| metrics.specificity <= weaknessThreshold
53+
|| metrics.npv <= weaknessThreshold
54+
}
55+
4256
protected fun verifyModel(
4357
injector: Injector,
4458
ok2xx: List<RestCallAction>,
4559
fail400: List<RestCallAction>,
46-
threshold: Double = injector.getInstance(EMConfig::class.java).classificationRepairThreshold
60+
repairThreshold: Double = injector.getInstance(EMConfig::class.java).classificationRepairThreshold,
61+
weaknessThreshold: Double = injector.getInstance(EMConfig::class.java).aIResponseClassifierWeaknessThreshold
4762
) {
4863

4964
val model = injector.getInstance(AIResponseClassifier::class.java)
5065
model.disableLearning() // no side-effects
5166

67+
5268
for(ok in ok2xx){
69+
70+
if (isWeakClassifier(model, ok, weaknessThreshold)) continue
71+
5372
val resOK = evaluateAction(injector, ok)
5473
assertTrue(resOK.getStatusCode() in 200..299)
5574
val mOK= model.classify(ok)
5675
assertTrue(
57-
mOK.probabilityOf400() < threshold,
76+
mOK.probabilityOf400() < repairThreshold,
5877
"Too high probability of 400 for OK ${ok.getName()}: ${mOK.probabilityOf400()}")
5978
}
6079

6180
for(fail in fail400) {
81+
82+
if (isWeakClassifier(model, fail, weaknessThreshold)) continue
83+
6284
val resFail = evaluateAction(injector, fail)
6385
assertEquals(400, resFail.getStatusCode())
6486
val mFail = model.classify(fail)
6587
assertTrue(
66-
mFail.probabilityOf400() >= threshold,
88+
mFail.probabilityOf400() >= repairThreshold,
6789
"Too low probability of 400 for Fail ${fail.getName()}: ${mFail.probabilityOf400()}"
6890
)
6991
}

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/allornone/ACAllOrNoneEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class ACAllOrNoneEMTest : AIClassificationEMTestBase() {
2727
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
2828
}
2929

30-
@Disabled
30+
3131
@Test
3232
fun testRunGaussian(){
3333
testRunEM(AIResponseClassifierModel.GAUSSIAN)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/arithmetic/ACArithmeticEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class ACArithmeticEMTest : AIClassificationEMTestBase() {
2727
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
2828
}
2929

30-
@Disabled
30+
3131
@Test
3232
fun testRunGaussian(){
3333
testRunEM(AIResponseClassifierModel.GAUSSIAN)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/basic/ACBasicEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class ACBasicEMTest : AIClassificationEMTestBase() {
2626
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
2727
}
2828

29-
@Disabled
29+
3030
@Test
3131
fun testRunGaussian(){
3232
testRunEM(AIResponseClassifierModel.GAUSSIAN)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/imply/ACImplyEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class ACImplyEMTest : AIClassificationEMTestBase() {
3535
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
3636
}
3737

38-
@Disabled
38+
3939
@Test
4040
fun testRunGaussian(){
4141
testRunEM(AIResponseClassifierModel.GAUSSIAN)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/mixed/ACMixedEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ACMixedEMTest : AIClassificationEMTestBase() {
3636
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
3737
}
3838

39-
@Disabled
39+
4040
@Test
4141
fun testRunGaussian(){
4242
testRunEM(AIResponseClassifierModel.GAUSSIAN)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/onlyone/ACOnlyOneEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class ACOnlyOneEMTest : AIClassificationEMTestBase() {
3333
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
3434
}
3535

36-
@Disabled
36+
3737
@Test
3838
fun testRunGaussian(){
3939
testRunEM(AIResponseClassifierModel.GAUSSIAN)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/or/ACOrEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class ACOrEMTest : AIClassificationEMTestBase() {
3232
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
3333
}
3434

35-
@Disabled
35+
3636
@Test
3737
fun testRunGaussian(){
3838
testRunEM(AIResponseClassifierModel.GAUSSIAN)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/required/ACRequiredEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class ACRequiredEMTest : AIClassificationEMTestBase() {
3131
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
3232
}
3333

34-
@Disabled
34+
3535
@Test
3636
fun testRunGaussian(){
3737
testRunEM(AIResponseClassifierModel.GAUSSIAN)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/aiclassification/zeroorone/ACZeroOrOneEMTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class ACZeroOrOneEMTest : AIClassificationEMTestBase() {
3535
testRunEM(AIResponseClassifierModel.DETERMINISTIC)
3636
}
3737

38-
@Disabled
38+
3939
@Test
4040
fun testRunGaussian(){
4141
testRunEM(AIResponseClassifierModel.GAUSSIAN)

0 commit comments

Comments
 (0)