Coverage for mlos_bench/mlos_bench/tests/tunables/tunable_accessors_test.py: 100%
18 statements
« prev ^ index » next coverage.py v7.6.7, created at 2024-11-22 01:18 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2024-11-22 01:18 +0000
1#
2# Copyright (c) Microsoft Corporation.
3# Licensed under the MIT License.
4#
5"""Unit tests for accessing values to the individual parameters within tunable
6groups.
7"""
9import pytest
11from mlos_bench.tunables.covariant_group import CovariantTunableGroup
12from mlos_bench.tunables.tunable import Tunable
15def test_categorical_access_to_numerical_tunable(tunable_int: Tunable) -> None:
16 """Make sure we throw an error on accessing a numerical tunable as a categorical."""
17 with pytest.raises(ValueError):
18 print(tunable_int.category)
19 with pytest.raises(AssertionError):
20 print(tunable_int.categories)
23def test_numerical_access_to_categorical_tunable(tunable_categorical: Tunable) -> None:
24 """Make sure we throw an error on accessing a numerical tunable as a categorical."""
25 with pytest.raises(ValueError):
26 print(tunable_categorical.numerical_value)
27 with pytest.raises(AssertionError):
28 print(tunable_categorical.range)
31def test_covariant_group_repr(covariant_group: CovariantTunableGroup) -> None:
32 """Tests that the covariant group representation works as expected."""
33 assert repr(covariant_group).startswith(f"{covariant_group.name}:")
36def test_covariant_group_tunables(covariant_group: CovariantTunableGroup) -> None:
37 """Tests that we can access the tunables in the covariant group."""
38 for tunable in covariant_group.get_tunables():
39 assert isinstance(tunable, Tunable)