Skip to content

Commit 98297fb

Browse files
kpunwatkadolfo-ab
authored andcommitted
Added a missing test cases for drift metrics
modified: tests/model_explainability/trustyai_service/drift/test_drift.py modified: tests/model_explainability/trustyai_service/trustyai_service_utils.py modified: tests/model_explainability/trustyai_service/drift/test_drift.py modified: tests/model_explainability/trustyai_service/trustyai_service_utils.py modified: tests/model_explainability/trustyai_service/drift/test_drift.py modified: tests/model_explainability/trustyai_service/trustyai_service_utils.py
1 parent 70f425b commit 98297fb

File tree

2 files changed

+31
-13
lines changed

2 files changed

+31
-13
lines changed

tests/model_explainability/trustyai_service/drift/test_drift.py

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
from utilities.manifests.openvino import OPENVINO_KSERVE_INFERENCE_CONFIG
1616
from utilities.monitoring import validate_metrics_field, get_metric_label
1717

18+
DRIFT_METRICS = [
19+
TrustyAIServiceMetrics.Drift.MEANSHIFT,
20+
TrustyAIServiceMetrics.Drift.KSTEST,
21+
TrustyAIServiceMetrics.Drift.APPROXKSTEST,
22+
TrustyAIServiceMetrics.Drift.FOURIERMMD,
23+
]
24+
1825

1926
@pytest.mark.parametrize(
2027
"model_namespace, minio_pod, minio_data_connection",
@@ -72,67 +79,76 @@ def test_upload_data_to_trustyai_service(
7279
data_path=f"{DRIFT_BASE_DATA_PATH}/training_data.json",
7380
)
7481

75-
def test_drift_metric_meanshift(
82+
@pytest.mark.parametrize("metric_name", DRIFT_METRICS)
83+
def test_drift_metric_request(
7684
self,
7785
admin_client,
7886
current_client_token,
7987
trustyai_service_with_pvc_storage,
8088
gaussian_credit_model,
89+
metric_name,
8190
):
8291
verify_trustyai_service_metric_request(
8392
client=admin_client,
8493
trustyai_service=trustyai_service_with_pvc_storage,
8594
token=current_client_token,
86-
metric_name=TrustyAIServiceMetrics.Drift.MEANSHIFT,
95+
metric_name=metric_name,
8796
json_data={
8897
"modelId": gaussian_credit_model.name,
8998
"referenceTag": "TRAINING",
9099
},
91100
)
92101

93-
def test_drift_metric_schedule_meanshift(
102+
@pytest.mark.parametrize("metric_name", DRIFT_METRICS)
103+
def test_drift_metric_schedule(
94104
self,
95105
admin_client,
96106
current_client_token,
97107
trustyai_service_with_pvc_storage,
98108
gaussian_credit_model,
109+
metric_name,
99110
):
100111
verify_trustyai_service_metric_scheduling_request(
101112
client=admin_client,
102113
trustyai_service=trustyai_service_with_pvc_storage,
103114
token=current_client_token,
104-
metric_name=TrustyAIServiceMetrics.Drift.MEANSHIFT,
115+
metric_name=metric_name,
105116
json_data={
106117
"modelId": gaussian_credit_model.name,
107118
"referenceTag": "TRAINING",
108119
},
109120
)
110121

122+
@pytest.mark.parametrize("metric_name", DRIFT_METRICS)
111123
def test_drift_metric_prometheus(
112124
self,
113125
admin_client,
114126
model_namespace,
115127
trustyai_service_with_pvc_storage,
116128
gaussian_credit_model,
117129
prometheus,
130+
metric_name
118131
):
119132
validate_metrics_field(
120133
prometheus=prometheus,
121-
metrics_query=f'trustyai_{TrustyAIServiceMetrics.Drift.MEANSHIFT}{{namespace="{model_namespace.name}"}}',
122-
expected_value=TrustyAIServiceMetrics.Drift.MEANSHIFT.upper(),
134+
metrics_query=f'trustyai_{metric_name}{{namespace="{model_namespace.name}"}}',
135+
expected_value=metric_name.upper(),
123136
field_getter=partial(get_metric_label, label_name="metricName"),
124137
)
125138

139+
@pytest.mark.parametrize("metric_name", DRIFT_METRICS)
126140
def test_drift_metric_delete(
127-
self,
128-
admin_client,
129-
minio_data_connection,
130-
current_client_token,
131-
trustyai_service_with_pvc_storage,
141+
self,
142+
admin_client,
143+
minio_data_connection,
144+
current_client_token,
145+
trustyai_service_with_pvc_storage,
146+
metric_name,
132147
):
133148
verify_trustyai_service_metric_delete_request(
134149
client=admin_client,
135150
trustyai_service=trustyai_service_with_pvc_storage,
136151
token=current_client_token,
137-
metric_name=TrustyAIServiceMetrics.Drift.MEANSHIFT,
152+
metric_name=metric_name,
138153
)
154+

tests/model_explainability/trustyai_service/trustyai_service_utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ class Fairness:
3535

3636
class Drift:
3737
MEANSHIFT: str = "meanshift"
38-
38+
KSTEST: str = "kstest"
39+
APPROXKSTEST: str = "approxkstest"
40+
FOURIERMMD: str = "fouriermmd"
3941

4042
class TrustyAIServiceClient:
4143
"""

0 commit comments

Comments
 (0)