Skip to content

Commit 063cdc7

Browse files
committed
change: add js unit tests for hyperparam validation for min/max/exclusiveMin/exclusiveMax text params
1 parent dd26117 commit 063cdc7

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

tests/unit/sagemaker/hyperparameters/jumpstart/test_validate.py

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,42 @@ def add_options_to_hyperparameter(*largs, **kwargs):
6565
"exclusive_max": 4,
6666
}
6767
),
68+
JumpStartHyperparameter(
69+
{
70+
"name": "test_exclusive_min_param_text",
71+
"type": "text",
72+
"default": "hello",
73+
"scope": "algorithm",
74+
"exclusive_min": 1,
75+
}
76+
),
77+
JumpStartHyperparameter(
78+
{
79+
"name": "test_exclusive_max_param_text",
80+
"type": "text",
81+
"default": "hello",
82+
"scope": "algorithm",
83+
"exclusive_max": 6,
84+
}
85+
),
86+
JumpStartHyperparameter(
87+
{
88+
"name": "test_min_param_text",
89+
"type": "text",
90+
"default": "hello",
91+
"scope": "algorithm",
92+
"min": 1,
93+
}
94+
),
95+
JumpStartHyperparameter(
96+
{
97+
"name": "test_max_param_text",
98+
"type": "text",
99+
"default": "hello",
100+
"scope": "algorithm",
101+
"max": 6,
102+
}
103+
),
68104
]
69105
)
70106
return spec
@@ -82,6 +118,10 @@ def add_options_to_hyperparameter(*largs, **kwargs):
82118
"test_bool_param": False,
83119
"test_exclusive_min_param": 4,
84120
"test_exclusive_max_param": -4,
121+
"test_exclusive_min_param_text": "hello",
122+
"test_exclusive_max_param_text": "hello",
123+
"test_min_param_text": "hello",
124+
"test_max_param_text": "hello",
85125
}
86126

87127
hyperparameters.validate(
@@ -219,6 +259,86 @@ def add_options_to_hyperparameter(*largs, **kwargs):
219259
)
220260
hyperparameter_to_test["test_exclusive_max_param"] = original_exclusive_max_val
221261

262+
original_exclusive_max_text_val = hyperparameter_to_test["test_exclusive_max_param_text"]
263+
for val in ["", "sd", "12345"]:
264+
hyperparameter_to_test["test_exclusive_max_param_text"] = val
265+
hyperparameters.validate(
266+
region=region,
267+
model_id=model_id,
268+
model_version=model_version,
269+
hyperparameters=hyperparameter_to_test,
270+
)
271+
for val in ["123456", "123456789"]:
272+
hyperparameter_to_test["test_exclusive_max_param_text"] = val
273+
with pytest.raises(JumpStartHyperparametersError):
274+
hyperparameters.validate(
275+
region=region,
276+
model_id=model_id,
277+
model_version=model_version,
278+
hyperparameters=hyperparameter_to_test,
279+
)
280+
hyperparameter_to_test["test_exclusive_max_param_text"] = original_exclusive_max_text_val
281+
282+
original_max_text_val = hyperparameter_to_test["test_max_param_text"]
283+
for val in ["", "sd", "12345", "123456"]:
284+
hyperparameter_to_test["test_max_param_text"] = val
285+
hyperparameters.validate(
286+
region=region,
287+
model_id=model_id,
288+
model_version=model_version,
289+
hyperparameters=hyperparameter_to_test,
290+
)
291+
for val in ["1234567", "123456789"]:
292+
hyperparameter_to_test["test_max_param_text"] = val
293+
with pytest.raises(JumpStartHyperparametersError):
294+
hyperparameters.validate(
295+
region=region,
296+
model_id=model_id,
297+
model_version=model_version,
298+
hyperparameters=hyperparameter_to_test,
299+
)
300+
hyperparameter_to_test["test_max_param_text"] = original_max_text_val
301+
302+
original_exclusive_min_text_val = hyperparameter_to_test["test_exclusive_min_param_text"]
303+
for val in ["12", "sdfs", "12345dsfs"]:
304+
hyperparameter_to_test["test_exclusive_min_param_text"] = val
305+
hyperparameters.validate(
306+
region=region,
307+
model_id=model_id,
308+
model_version=model_version,
309+
hyperparameters=hyperparameter_to_test,
310+
)
311+
for val in ["1", "d", ""]:
312+
hyperparameter_to_test["test_exclusive_min_param_text"] = val
313+
with pytest.raises(JumpStartHyperparametersError):
314+
hyperparameters.validate(
315+
region=region,
316+
model_id=model_id,
317+
model_version=model_version,
318+
hyperparameters=hyperparameter_to_test,
319+
)
320+
hyperparameter_to_test["test_exclusive_min_param_text"] = original_exclusive_min_text_val
321+
322+
original_min_text_val = hyperparameter_to_test["test_min_param_text"]
323+
for val in ["1", "s", "12", "sdfs", "12345dsfs"]:
324+
hyperparameter_to_test["test_min_param_text"] = val
325+
hyperparameters.validate(
326+
region=region,
327+
model_id=model_id,
328+
model_version=model_version,
329+
hyperparameters=hyperparameter_to_test,
330+
)
331+
for val in [""]:
332+
hyperparameter_to_test["test_min_param_text"] = val
333+
with pytest.raises(JumpStartHyperparametersError):
334+
hyperparameters.validate(
335+
region=region,
336+
model_id=model_id,
337+
model_version=model_version,
338+
hyperparameters=hyperparameter_to_test,
339+
)
340+
hyperparameter_to_test["test_min_param_text"] = original_min_text_val
341+
222342
del hyperparameter_to_test["batch-size"]
223343
hyperparameter_to_test["penalty"] = "blah"
224344
with pytest.raises(JumpStartHyperparametersError):

0 commit comments

Comments
 (0)