From fff1371133729371b1045ccc948a11bb2bf94780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 23 Mar 2017 13:49:52 +0100 Subject: [PATCH] [apps/probability] Clip parameters Change-Id: Ifb966b97afb15b2e876c506aff097999d012ec17 --- apps/probability/law/binomial_law.cpp | 2 +- apps/probability/law/exponential_law.cpp | 2 +- apps/probability/law/poisson_law.cpp | 2 +- apps/probability/law/uniform_law.cpp | 10 +++++++--- apps/probability/law/uniform_law.h | 1 + apps/probability/parameters_controller.cpp | 6 ++++++ apps/probability/parameters_controller.h | 1 + 7 files changed, 18 insertions(+), 6 deletions(-) diff --git a/apps/probability/law/binomial_law.cpp b/apps/probability/law/binomial_law.cpp index 1204f5c92..226c4ba5d 100644 --- a/apps/probability/law/binomial_law.cpp +++ b/apps/probability/law/binomial_law.cpp @@ -99,7 +99,7 @@ float BinomialLaw::evaluateAtAbscissa(float x) const { bool BinomialLaw::authorizedValueAtIndex(float x, int index) const { if (index == 0) { - if (x != (int)x || x < 0) { + if (x != (int)x || x < 0.0f || x > 999.0f) { return false; } return true; diff --git a/apps/probability/law/exponential_law.cpp b/apps/probability/law/exponential_law.cpp index b7de0df73..df00bac55 100644 --- a/apps/probability/law/exponential_law.cpp +++ b/apps/probability/law/exponential_law.cpp @@ -70,7 +70,7 @@ float ExponentialLaw::evaluateAtAbscissa(float x) const { } bool ExponentialLaw::authorizedValueAtIndex(float x, int index) const { - if (x <= 0.0f) { + if (x <= 0.0f || x > 7500.0f) { return false; } return true; diff --git a/apps/probability/law/poisson_law.cpp b/apps/probability/law/poisson_law.cpp index f925ca991..117551729 100644 --- a/apps/probability/law/poisson_law.cpp +++ b/apps/probability/law/poisson_law.cpp @@ -64,7 +64,7 @@ float PoissonLaw::evaluateAtAbscissa(float x) const { } bool PoissonLaw::authorizedValueAtIndex(float x, int index) const { - if (x <= 0.0f) { + if (x <= 0.0f || x > 999.0f) { return false; } return true; diff --git a/apps/probability/law/uniform_law.cpp b/apps/probability/law/uniform_law.cpp index 22ab9a550..7139b150f 100644 --- a/apps/probability/law/uniform_law.cpp +++ b/apps/probability/law/uniform_law.cpp @@ -80,9 +80,6 @@ float UniformLaw::evaluateAtAbscissa(float t) const { bool UniformLaw::authorizedValueAtIndex(float x, int index) const { if (index == 0) { - if (x > m_parameter2) { - return false; - } return true; } if (m_parameter1 > x) { @@ -91,6 +88,13 @@ bool UniformLaw::authorizedValueAtIndex(float x, int index) const { return true; } +void UniformLaw::setParameterAtIndex(float f, int index) { + TwoParameterLaw::setParameterAtIndex(f, index); + if (index == 0 && m_parameter2 < m_parameter1) { + m_parameter2 = m_parameter1+1.0f; + } +} + float UniformLaw::cumulativeDistributiveFunctionAtAbscissa(float x) const { if (x < m_parameter1) { return 0.0f; diff --git a/apps/probability/law/uniform_law.h b/apps/probability/law/uniform_law.h index 572ff95b1..1d759f824 100644 --- a/apps/probability/law/uniform_law.h +++ b/apps/probability/law/uniform_law.h @@ -20,6 +20,7 @@ public: I18n::Message parameterDefinitionAtIndex(int index) override; float evaluateAtAbscissa(float x) const override; bool authorizedValueAtIndex(float x, int index) const override; + void setParameterAtIndex(float f, int index) override; float cumulativeDistributiveFunctionAtAbscissa(float x) const override; float cumulativeDistributiveInverseForProbability(float * probability) override; private: diff --git a/apps/probability/parameters_controller.cpp b/apps/probability/parameters_controller.cpp index efb49ff59..089bf0cb9 100644 --- a/apps/probability/parameters_controller.cpp +++ b/apps/probability/parameters_controller.cpp @@ -150,6 +150,12 @@ bool ParametersController::setParameterAtIndex(int parameterIndex, float f) { return true; } +bool ParametersController::textFieldDidFinishEditing(TextField * textField, const char * text) { + FloatParameterController::textFieldDidFinishEditing(textField, text); + m_selectableTableView.reloadData(); + return true; +} + void ParametersController::buttonAction() { m_calculationController.setCalculationAccordingToIndex(0); m_calculationController.selectSubview(1); diff --git a/apps/probability/parameters_controller.h b/apps/probability/parameters_controller.h index beda9fda9..c718625de 100644 --- a/apps/probability/parameters_controller.h +++ b/apps/probability/parameters_controller.h @@ -24,6 +24,7 @@ private: float previousParameterAtIndex(int index) override; float parameterAtIndex(int index) override; bool setParameterAtIndex(int parameterIndex, float f) override; + bool textFieldDidFinishEditing(TextField * textField, const char * text) override; class ContentView : public View { public: ContentView(Responder * parentResponder, SelectableTableView * selectableTableView);