Coverage for mlos_core/mlos_core/tests/spaces/adapters/identity_adapter_test.py: 100%
21 statements
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-06 00:35 +0000
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-06 00:35 +0000
1#
2# Copyright (c) Microsoft Corporation.
3# Licensed under the MIT License.
4#
5"""
6Tests for Identity space adapter.
7"""
9# pylint: disable=missing-function-docstring
11import ConfigSpace as CS
12import pandas as pd
14from mlos_core.spaces.adapters import IdentityAdapter
17def test_identity_adapter() -> None:
18 """
19 Tests identity adapter
20 """
21 input_space = CS.ConfigurationSpace(seed=1234)
22 input_space.add_hyperparameter(
23 CS.UniformIntegerHyperparameter(name='int_1', lower=0, upper=100))
24 input_space.add_hyperparameter(
25 CS.UniformFloatHyperparameter(name='float_1', lower=0, upper=100))
26 input_space.add_hyperparameter(
27 CS.CategoricalHyperparameter(name='str_1', choices=['on', 'off']))
29 adapter = IdentityAdapter(orig_parameter_space=input_space)
31 num_configs = 10
32 for sampled_config in input_space.sample_configuration(size=num_configs): # pylint: disable=not-an-iterable # (false positive)
33 sampled_config_df = pd.DataFrame([sampled_config.values()], columns=list(sampled_config.keys()))
34 target_config_df = adapter.inverse_transform(sampled_config_df)
35 assert target_config_df.equals(sampled_config_df)
36 target_config = CS.Configuration(adapter.target_parameter_space, values=target_config_df.iloc[0].to_dict())
37 assert target_config == sampled_config
38 orig_config_df = adapter.transform(target_config_df)
39 assert orig_config_df.equals(sampled_config_df)
40 orig_config = CS.Configuration(adapter.orig_parameter_space, values=orig_config_df.iloc[0].to_dict())
41 assert orig_config == sampled_config