diff --git a/public/styles.scss b/public/styles.scss index 46fde96..5ec6c25 100644 --- a/public/styles.scss +++ b/public/styles.scss @@ -24,7 +24,7 @@ body { header { display: flex; align-items: center; - justify-content: end; + justify-content: space-between; } header > select { diff --git a/src/calc.rs b/src/calc.rs index 9dc6038..4a51aed 100644 --- a/src/calc.rs +++ b/src/calc.rs @@ -55,6 +55,23 @@ pub fn hyper_geometric( } } +#[derive(Default)] +pub struct BinomialProb { + pub exactly: f64, + pub less_than: f64, + pub less_or_equal: f64, + pub greater_than: f64, + pub greater_or_equal: f64, +} + +pub fn binomial( + success_probability: f64, + trials_number: u8, + successes_number: u8, +) -> Option { + None +} + /// Computes the probability of drawing exactly `sample_successes` in a sample of `sample_size` /// from a population of size `population_size` and `successes` total successes in the population. /// diff --git a/src/components/calculator.rs b/src/components/calculator.rs index 264b939..58bfc10 100644 --- a/src/components/calculator.rs +++ b/src/components/calculator.rs @@ -6,7 +6,7 @@ use leptos::prelude::{ use leptos::{IntoView, component, view}; use leptos_fluent::move_tr; -use crate::calc::hyper_geometric; +use crate::calc::{binomial, hyper_geometric}; #[component] pub fn HyperCalculator() -> impl IntoView { @@ -109,74 +109,60 @@ pub fn HyperCalculator() -> impl IntoView { {move || display_rounded(result().greater_or_equal)} +
{move_tr!("hyper-description")}
} } #[component] pub fn BinomCalculator() -> impl IntoView { - let (population, set_population) = signal(0u8); - let (successes, set_successes) = signal(0u8); - let (sample, set_sample) = signal(0u8); - let (sample_successes, set_sample_successes) = signal(0u8); + let (success_probability, set_success_probability) = signal(0f64); + let (trials_number, set_trials_number) = signal(0u8); + let (successes_number, set_successes_number) = signal(0u8); let result = move || { - hyper_geometric( - population.get(), - successes.get(), - sample.get(), - sample_successes.get(), + binomial( + success_probability.get(), + trials_number.get(), + successes_number.get(), ) .unwrap_or_default() }; view! {

- +

- +

- + -

-

- -

@@ -184,35 +170,36 @@ pub fn BinomCalculator() -> impl IntoView {
"P(X = " - {sample_successes} + {successes_number} "): " {move || display_rounded(result().exactly)} "P(X < " - {sample_successes} + {successes_number} "): " {move || display_rounded(result().less_than)} "P(X ≤ " - {sample_successes} + {successes_number} "): " {move || display_rounded(result().less_or_equal)} "P(X > " - {sample_successes} + {successes_number} "): " {move || display_rounded(result().greater_than)} "P(X ≥ " - {sample_successes} + {successes_number} "): " {move || display_rounded(result().greater_or_equal)}
+
{move_tr!("binom-description")}
} } diff --git a/src/components/common.rs b/src/components/common.rs index bf1064c..0feac4e 100644 --- a/src/components/common.rs +++ b/src/components/common.rs @@ -9,7 +9,7 @@ pub fn Common() -> impl IntoView { view! {
- Home + "🏡"