diff --git a/ConfigSpace/hyperparameters.pyx b/ConfigSpace/hyperparameters.pyx index 765eac58..97b493af 100644 --- a/ConfigSpace/hyperparameters.pyx +++ b/ConfigSpace/hyperparameters.pyx @@ -1506,7 +1506,7 @@ cdef class CategoricalHyperparameter(Hyperparameter): return ( self.name == other.name and - self.choices == other.choices + set(self.choices) == set(other.choices) ) def __hash__(self): diff --git a/test/test_hyperparameters.py b/test/test_hyperparameters.py index 8235a965..d5f5cd8f 100644 --- a/test/test_hyperparameters.py +++ b/test/test_hyperparameters.py @@ -577,6 +577,11 @@ def test_categorical(self): self.assertNotEqual(f1, f2) self.assertNotEqual(f1, "UniformFloat") + # Test that order of categoricals does not matter + f7 = CategoricalHyperparameter("param", ["a", "b"]) + f7_ = CategoricalHyperparameter("param", ["b", "a"]) + assert f7 == f7_ + # test that meta-data is stored correctly f_meta = CategoricalHyperparameter("param", ["a", "b"], default_value="a", meta=dict(self.meta_data))