* mln/world/kn/accu/max_interval.hh, * mln/world/kn/accu/min_interval.hh: Here. --- milena/ChangeLog | 7 +++++++ milena/mln/world/kn/accu/max_interval.hh | 6 ++++++ milena/mln/world/kn/accu/min_interval.hh | 5 +++++ 3 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog index b3bc9f7..d925cb5 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,12 @@ 2012-11-01 Guillaume Lazzara z@lrde.epita.fr
+ Add preconditions. + + * mln/world/kn/accu/max_interval.hh, + * mln/world/kn/accu/min_interval.hh: Here. + +2012-11-01 Guillaume Lazzara z@lrde.epita.fr + Move files to proper directories.
* mln/accu/stat/median_few.hh, diff --git a/milena/mln/world/kn/accu/max_interval.hh b/milena/mln/world/kn/accu/max_interval.hh index e53be7e..dc183ef 100644 --- a/milena/mln/world/kn/accu/max_interval.hh +++ b/milena/mln/world/kn/accu/max_interval.hh @@ -147,6 +147,7 @@ namespace mln { mlc_converts_to(U,T)::check(); mlc_converts_to(V,T)::check(); + mln_precondition(first <= last); inter_ = value::interval<T>(first, last); init(); } @@ -164,6 +165,7 @@ namespace mln void max_interval<T>::take_as_init_(const argument& t) { + mln_precondition(inter_.has(t)); t_ = t; }
@@ -172,6 +174,7 @@ namespace mln void max_interval<T>::take(const argument& t) { + mln_precondition(inter_.has(t)); if (t > t_) t_ = t; } @@ -181,6 +184,8 @@ namespace mln void max_interval<T>::take(const max_interval<T>& other) { + mln_precondition(inter_.first() <= other.inter_.first()); + mln_precondition(inter_.last() >= other.inter_.last()); if (other.t_ > t_) t_ = other.t_; } @@ -190,6 +195,7 @@ namespace mln void max_interval<T>::set_value(const T& t) { + mln_precondition(inter_.has(t)); t_ = t; }
diff --git a/milena/mln/world/kn/accu/min_interval.hh b/milena/mln/world/kn/accu/min_interval.hh index 7081a07..e95fe34 100644 --- a/milena/mln/world/kn/accu/min_interval.hh +++ b/milena/mln/world/kn/accu/min_interval.hh @@ -145,6 +145,7 @@ namespace mln { mlc_converts_to(U,T)::check(); mlc_converts_to(V,T)::check(); + mln_precondition(first <= last); inter_ = value::interval<T>(first, last); init(); } @@ -161,6 +162,7 @@ namespace mln inline void min_interval<T>::take_as_init_(const argument& t) { + mln_precondition(inter_.has(t)); t_ = t; }
@@ -168,6 +170,7 @@ namespace mln inline void min_interval<T>::take(const argument& t) { + mln_precondition(inter_.has(t)); if (t < t_) t_ = t; } @@ -177,6 +180,8 @@ namespace mln void min_interval<T>::take(const min_interval<T>& other) { + mln_precondition(inter_.first() <= other.inter_.first()); + mln_precondition(inter_.last() >= other.inter_.last()); if (other.t_ < t_) t_ = other.t_; }