8000 Input validation for add_categorical_param. by copybara-service[bot] · Pull Request #952 · google/vizier · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion vizier/_src/pyvizier/shared/parameter_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -977,8 +977,13 @@ def add_categorical_param(
ParameterConfigSelector for the newly added parameter(s).

Raises:
ValueError: If `index` is invalid (e.g. negative).
ValueError: If `index` is invalid (e.g. negative), or `feasible_values`
are invalid (not strings).
"""
for value in feasible_values:
if not isinstance(value, str):
raise ValueError(f'feasible_values must be strings; got: {value}')

param_names = self._get_parameter_names_to_create(name=name, index=index)

new_params = []
Expand Down
6 changes: 6 additions & 0 deletions vizier/_src/pyvizier/shared/parameter_config_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,12 @@ def testParseMultiDimensionalParameterName(self, name, expected):
name)
self.assertEqual(base_name_index, expected)

def testValidateCategoricalInput(self):
space = pc.SearchSpace()
root = space.select_root()
with self.assertRaises(ValueError):
root.add_categorical_param('categorical', ['3.2', '2', 5])


class SearchSpaceContainsTest(absltest.TestCase):

Expand Down
0