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

1# 

2# Copyright (c) Microsoft Corporation. 

3# Licensed under the MIT License. 

4# 

5""" 

6Tests for Identity space adapter. 

7""" 

8 

9# pylint: disable=missing-function-docstring 

10 

11import ConfigSpace as CS 

12import pandas as pd 

13 

14from mlos_core.spaces.adapters import IdentityAdapter 

15 

16 

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'])) 

28 

29 adapter = IdentityAdapter(orig_parameter_space=input_space) 

30 

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