def test_validators(self): gt = ParamValidators.gt(10) self.assertFalse(gt.validate(None)) self.assertFalse(gt.validate(5)) self.assertFalse(gt.validate(10)) self.assertTrue(gt.validate(15)) gt_eq = ParamValidators.gt_eq(10) self.assertFalse(gt_eq.validate(None)) self.assertFalse(gt_eq.validate(5)) self.assertTrue(gt_eq.validate(10)) self.assertTrue(gt_eq.validate(15)) lt = ParamValidators.lt(10) self.assertFalse(lt.validate(None)) self.assertTrue(lt.validate(5)) self.assertFalse(lt.validate(10)) self.assertFalse(lt.validate(15)) lt_eq = ParamValidators.lt_eq(10) self.assertFalse(lt_eq.validate(None)) self.assertTrue(lt_eq.validate(5)) self.assertTrue(lt_eq.validate(10)) self.assertFalse(lt_eq.validate(15)) in_range_inclusive = ParamValidators.in_range(5, 15) self.assertFalse(in_range_inclusive.validate(None)) self.assertFalse(in_range_inclusive.validate(0)) self.assertTrue(in_range_inclusive.validate(5)) self.assertTrue(in_range_inclusive.validate(10)) self.assertTrue(in_range_inclusive.validate(15)) self.assertFalse(in_range_inclusive.validate(20)) in_range_exclusive = ParamValidators.in_range(5, 15, False, False) self.assertFalse(in_range_exclusive.validate(None)) self.assertFalse(in_range_exclusive.validate(0)) self.assertFalse(in_range_exclusive.validate(5)) self.assertTrue(in_range_exclusive.validate(10)) self.assertFalse(in_range_exclusive.validate(15)) self.assertFalse(in_range_exclusive.validate(20)) in_array = ParamValidators.in_array([1, 2, 3]) self.assertFalse(in_array.validate(None)) self.assertTrue(in_array.validate(1)) self.assertFalse(in_array.validate(0)) not_null = ParamValidators.not_null() self.assertTrue(not_null.validate(5)) self.assertFalse(not_null.validate(None))
class HasElasticNet(WithParams, ABC): """ Base class for the shared decay factor param. """ ELASTIC_NET: Param[float] = FloatParam("elastic_net", "ElasticNet parameter.", 0., ParamValidators.in_range(0.0, 1.0)) def set_elastic_net(self, value: float): return self.set(self.ELASTIC_NET, value) def get_elastic_net(self) -> float: return self.get(self.ELASTIC_NET) @property def elastic_net(self): return self.get(self.ELASTIC_NET)
class HasDecayFactor(WithParams, ABC): """ Base class for the shared decay factor param. """ DECAY_FACTOR: Param[float] = FloatParam( "decay_factor", "The forgetfulness of the previous centroids.", 0., ParamValidators.in_range(0, 1)) def set_decay_factor(self, value: float): return self.set(self.DECAY_FACTOR, value) def get_decay_factor(self) -> float: return self.get(self.DECAY_FACTOR) @property def decay_factor(self): return self.get(self.DECAY_FACTOR)