Skip to content

Commit 288178a

Browse files
kpunwatkpre-commit-ci[bot]sheltoncyril
authored
feat: added tests for dir fairness metrics (#390)
* modified: tests/model_explainability/trustyai_service/fairness/test_fairness.py modified: tests/model_explainability/trustyai_service/trustyai_service_utils.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Shelton Cyril <sheltoncyril@gmail.com>
1 parent 608ad1e commit 288178a

File tree

2 files changed

+29
-24
lines changed

2 files changed

+29
-24
lines changed

tests/model_explainability/trustyai_service/fairness/test_fairness.py

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
}
3535
OUTPUT_NAME_MAPPINGS: dict[str, str] = {"predict": WILL_DEFAULT}
3636

37+
FAIRNESS_METRICS = [TrustyAIServiceMetrics.Fairness.SPD, TrustyAIServiceMetrics.Fairness.DIR]
38+
3739

3840
def get_fairness_request_json_data(isvc: InferenceService) -> dict[str, Any]:
3941
return {
@@ -102,51 +104,50 @@ def test_name_mappings_with_pvc_storage(
102104
output_mappings=OUTPUT_NAME_MAPPINGS,
103105
)
104106

105-
def test_fairness_metric_spd_with_pvc_storage(
106-
self, admin_client, current_client_token, trustyai_service_with_pvc_storage, onnx_loan_model
107+
@pytest.mark.parametrize("metric_name", FAIRNESS_METRICS)
108+
def test_fairness_metric_with_pvc_storage(
109+
self, admin_client, current_client_token, trustyai_service_with_pvc_storage, onnx_loan_model, metric_name
107110
):
108111
verify_trustyai_service_metric_request(
109112
client=admin_client,
110113
trustyai_service=trustyai_service_with_pvc_storage,
111114
token=current_client_token,
112-
metric_name=TrustyAIServiceMetrics.Fairness.SPD,
115+
metric_name=metric_name,
113116
json_data=get_fairness_request_json_data(isvc=onnx_loan_model),
114117
)
115118

116-
def test_fairness_metric_schedule_spd_with_pvc_storage(
117-
self, admin_client, current_client_token, trustyai_service_with_pvc_storage, onnx_loan_model
119+
@pytest.mark.parametrize("metric_name", FAIRNESS_METRICS)
120+
def test_fairness_metric_schedule_with_pvc_storage(
121+
self, admin_client, current_client_token, trustyai_service_with_pvc_storage, onnx_loan_model, metric_name
118122
):
119123
verify_trustyai_service_metric_scheduling_request(
120124
client=admin_client,
121125
trustyai_service=trustyai_service_with_pvc_storage,
122126
token=current_client_token,
123-
metric_name=TrustyAIServiceMetrics.Fairness.SPD,
127+
metric_name=metric_name,
124128
json_data=get_fairness_request_json_data(isvc=onnx_loan_model),
125129
)
126130

131+
@pytest.mark.parametrize("metric_name", FAIRNESS_METRICS)
127132
def test_fairness_metric_prometheus(
128-
self,
129-
admin_client,
130-
model_namespace,
131-
trustyai_service_with_pvc_storage,
132-
onnx_loan_model,
133-
prometheus,
133+
self, admin_client, model_namespace, trustyai_service_with_pvc_storage, onnx_loan_model, prometheus, metric_name
134134
):
135135
validate_metrics_field(
136136
prometheus=prometheus,
137-
metrics_query=f'trustyai_{TrustyAIServiceMetrics.Fairness.SPD}{{namespace="{model_namespace.name}"}}',
138-
expected_value=TrustyAIServiceMetrics.Fairness.SPD.upper(),
137+
metrics_query=f'trustyai_{metric_name}{{namespace="{model_namespace.name}"}}',
138+
expected_value=metric_name.upper(),
139139
field_getter=partial(get_metric_label, label_name="metricName"),
140140
)
141141

142+
@pytest.mark.parametrize("metric_name", FAIRNESS_METRICS)
142143
def test_fairness_metric_delete_with_pvc_storage(
143-
self, admin_client, current_client_token, trustyai_service_with_pvc_storage, onnx_loan_model
144+
self, admin_client, current_client_token, trustyai_service_with_pvc_storage, onnx_loan_model, metric_name
144145
):
145146
verify_trustyai_service_metric_delete_request(
146147
client=admin_client,
147148
trustyai_service=trustyai_service_with_pvc_storage,
148149
token=current_client_token,
149-
metric_name=TrustyAIServiceMetrics.Fairness.SPD,
150+
metric_name=metric_name,
150151
)
151152

152153

@@ -204,34 +205,37 @@ def test_name_mappings_with_db_storage(
204205
output_mappings=OUTPUT_NAME_MAPPINGS,
205206
)
206207

207-
def test_fairness_metric_spd_with_db_storage(
208-
self, admin_client, current_client_token, trustyai_service_with_db_storage, onnx_loan_model
208+
@pytest.mark.parametrize("metric_name", FAIRNESS_METRICS)
209+
def test_fairness_metric_with_db_storage(
210+
self, admin_client, current_client_token, trustyai_service_with_db_storage, onnx_loan_model, metric_name
209211
):
210212
verify_trustyai_service_metric_request(
211213
client=admin_client,
212214
trustyai_service=trustyai_service_with_db_storage,
213215
token=current_client_token,
214-
metric_name=TrustyAIServiceMetrics.Fairness.SPD,
216+
metric_name=metric_name,
215217
json_data=get_fairness_request_json_data(isvc=onnx_loan_model),
216218
)
217219

218-
def test_fairness_metric_schedule_spd_with_db_storage(
219-
self, admin_client, current_client_token, trustyai_service_with_db_storage, onnx_loan_model
220+
@pytest.mark.parametrize("metric_name", FAIRNESS_METRICS)
221+
def test_fairness_metric_schedule_with_db_storage(
222+
self, admin_client, current_client_token, trustyai_service_with_db_storage, onnx_loan_model, metric_name
220223
):
221224
verify_trustyai_service_metric_scheduling_request(
222225
client=admin_client,
223226
trustyai_service=trustyai_service_with_db_storage,
224227
token=current_client_token,
225-
metric_name=TrustyAIServiceMetrics.Fairness.SPD,
228+
metric_name=metric_name,
226229
json_data=get_fairness_request_json_data(isvc=onnx_loan_model),
227230
)
228231

232+
@pytest.mark.parametrize("metric_name", FAIRNESS_METRICS)
229233
def test_fairness_metric_delete_with_db_storage(
230-
self, admin_client, current_client_token, trustyai_service_with_db_storage, onnx_loan_model
234+
self, admin_client, current_client_token, trustyai_service_with_db_storage, onnx_loan_model, metric_name
231235
):
232236
verify_trustyai_service_metric_delete_request(
233237
client=admin_client,
234238
trustyai_service=trustyai_service_with_db_storage,
235239
token=current_client_token,
236-
metric_name=TrustyAIServiceMetrics.Fairness.SPD,
240+
metric_name=metric_name,
237241
)

tests/model_explainability/trustyai_service/trustyai_service_utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class NoMetricsFoundError(ValueError):
3232
class TrustyAIServiceMetrics:
3333
class Fairness:
3434
SPD: str = "spd"
35+
DIR: str = "dir"
3536

3637
class Drift:
3738
MEANSHIFT: str = "meanshift"

0 commit comments

Comments
 (0)