def __init__(self, results: AttrDict) -> None: super(SystemEquationResult, self).__init__(results) self._eq_label = results.eq_label self._dependent = results.dependent self._f_statistic = results.f_stat self._r2a = results.r2a self._instruments = results.instruments self._endog = results.endog self._weight_estimator = results.get("weight_estimator", None)
def __init__(self, results: AttrDict) -> None: super(SystemResults, self).__init__(results) self._individual = AttrDict() for key in results.individual: self._individual[key] = SystemEquationResult(results.individual[key]) self._system_r2 = results.system_r2 self._sigma = results.sigma self._model = results.model self._constraints = results.constraints self._num_constraints = "None" if results.constraints is not None: self._num_constraints = str(results.constraints.r.shape[0]) self._weight_estimtor = results.get("weight_estimator", None)
def test_attr_dict(): ad = AttrDict() ad["one"] = "one" ad[1] = 1 ad[("a", 2)] = ("a", 2) assert list(ad.keys()) == ["one", 1, ("a", 2)] assert len(ad) == 3 plk = pickle.dumps(ad) pad = pickle.loads(plk) assert list(pad.keys()) == ["one", 1, ("a", 2)] assert len(pad) == 3 ad2 = ad.copy() assert list(ad2.keys()) == list(ad.keys()) assert ad.get("one", None) == "one" assert ad.get("two", False) is False k, v = ad.popitem() assert k == "one" assert v == "one" items = ad.items() assert (1, 1) in items assert (("a", 2), ("a", 2)) in items assert len(items) == 2 values = ad.values() assert 1 in values assert ("a", 2) in values assert len(values) == 2 ad2 = AttrDict() ad2[1] = 3 ad2["one"] = "one" ad2["a"] = "a" ad.update(ad2) assert ad[1] == 3 assert "a" in ad ad.__str__() with pytest.raises(AttributeError): ad.__private_dict__ = None with pytest.raises(AttributeError): ad.some_other_key with pytest.raises(KeyError): ad["__private_dict__"] = None del ad[1] assert 1 not in ad.keys() ad.new_value = "new_value" assert "new_value" in ad.keys() assert ad.new_value == ad["new_value"] for key in ad.keys(): if isinstance(key, str): assert key in dir(ad) new_value = ad.pop("new_value") assert new_value == "new_value" del ad.one assert "one" not in ad.keys() ad.clear() assert list(ad.keys()) == []