Coverage for mlos_bench/mlos_bench/tests/environments/local/__init__.py: 100%
10 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"""
6Tests for mlos_bench.environments.local.
8Used to make mypy happy about multiple conftest.py modules.
9"""
11from typing import Any, Dict, List
13from mlos_bench.environments.composite_env import CompositeEnv
14from mlos_bench.environments.local.local_env import LocalEnv
15from mlos_bench.services.config_persistence import ConfigPersistenceService
16from mlos_bench.services.local.local_exec import LocalExecService
17from mlos_bench.tunables.tunable_groups import TunableGroups
20def create_local_env(tunable_groups: TunableGroups, config: Dict[str, Any]) -> LocalEnv:
21 """
22 Create a LocalEnv with the given configuration.
24 Parameters
25 ----------
26 tunable_groups : TunableGroups
27 Tunable parameters (usually come from a fixture).
28 config : Dict[str, Any]
29 Environment configuration.
31 Returns
32 -------
33 env : LocalEnv
34 A new instance of the local environment.
35 """
36 return LocalEnv(
37 name="TestLocalEnv",
38 config=config,
39 tunables=tunable_groups,
40 service=LocalExecService(parent=ConfigPersistenceService()),
41 )
44def create_composite_local_env(
45 tunable_groups: TunableGroups,
46 global_config: Dict[str, Any],
47 params: Dict[str, Any],
48 local_configs: List[Dict[str, Any]],
49) -> CompositeEnv:
50 """
51 Create a CompositeEnv with several LocalEnv instances.
53 Parameters
54 ----------
55 tunable_groups : TunableGroups
56 Tunable parameters (usually come from a fixture).
57 global_config : Dict[str, Any]
58 Global configuration parameters.
59 params: Dict[str, Any]
60 Additional config params for the CompositeEnv.
61 local_configs: List[Dict[str, Any]]
62 Configurations of the local environments.
64 Returns
65 -------
66 env : CompositeEnv
67 A new instance of the local environment.
68 """
69 return CompositeEnv(
70 name="TestCompositeEnv",
71 config={
72 **params,
73 "children": [
74 {
75 "name": f"TestLocalEnv{i}",
76 "class": "mlos_bench.environments.local.local_env.LocalEnv",
77 "config": config,
78 }
79 for (i, config) in enumerate(local_configs)
80 ],
81 },
82 tunables=tunable_groups,
83 global_config=global_config,
84 service=LocalExecService(parent=ConfigPersistenceService()),
85 )