MCPcopy Index your code
hub / github.com/bayesian-optimization/BayesianOptimization / test_cat_parameters

Function test_cat_parameters

tests/test_parameter.py:90–128  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

88
89
90def test_cat_parameters():
91 fruit_ratings = {"apple": 1.0, "banana": 2.0, "mango": 5.0, "honeydew melon": -10.0, "strawberry": np.pi}
92
93 def target_func(fruit: str):
94 return fruit_ratings[fruit]
95
96 fruits = ("apple", "banana", "mango", "honeydew melon", "strawberry")
97 pbounds = {"fruit": ("apple", "banana", "mango", "honeydew melon", "strawberry")}
98 space = TargetSpace(target_func, pbounds)
99
100 assert space.dim == len(fruits)
101 assert space.empty
102 assert space.keys == ["fruit"]
103
104 assert isinstance(space._params_config["fruit"], CategoricalParameter)
105
106 assert space.bounds.shape == (len(fruits), 2)
107 assert (space.bounds[:, 0] == np.zeros(len(fruits))).all()
108 assert (space.bounds[:, 1] == np.ones(len(fruits))).all()
109
110 point1 = {"fruit": "banana"}
111 target1 = 2.0
112 space.probe(point1)
113
114 point2 = {"fruit": "honeydew melon"}
115 target2 = -10.0
116 space.probe(point2)
117
118 assert (space.params[0] == np.array([0, 1, 0, 0, 0])).all()
119 assert (space.params[1] == np.array([0, 0, 0, 1, 0])).all()
120
121 assert (space.target == np.array([target1, target2])).all()
122
123 p1 = space._params_config["fruit"]
124 for i, fruit in enumerate(fruits):
125 assert (p1.to_float(fruit) == np.eye(5)[i]).all()
126
127 assert (p1.kernel_transform(np.array([0.8, 0.2, 0.3, 0.5, 0.78])) == np.array([1, 0, 0, 0, 0])).all()
128 assert (p1.kernel_transform(np.array([0.78, 0.2, 0.3, 0.5, 0.8])) == np.array([0, 0, 0, 0, 1.0])).all()
129
130
131def test_cateogrical_valid_bounds():

Callers

nothing calls this directly

Calls 4

probeMethod · 0.95
TargetSpaceClass · 0.90
to_floatMethod · 0.45
kernel_transformMethod · 0.45

Tested by

no test coverage detected