#![cfg(feature = "binomial")]
mod nocover;
use basic_stats::{
binomial::*,
core::{AltHyp, Ci},
};
use nocover::nocover;
#[test]
fn test_bernoulli_p_hat() {
assert!(bernoulli_p_hat(0, 0).is_err());
assert!(bernoulli_p_hat(1, 2).is_err());
if nocover() {
assert!(bernoulli_p_hat(1, 0).unwrap().is_finite());
}
}
#[test]
fn test_binomial_z() {
assert!(binomial_z(0, 0, 0.5).is_err());
assert!(binomial_z(1, 0, 0.).is_err());
assert!(binomial_z(1, 0, 1.).is_err());
if nocover() {
assert!(binomial_z(1, 0, 0.5).unwrap().is_finite());
}
}
#[test]
fn test_binomial_z_p() {
assert!(binomial_z_p(0, 0, 0.5, AltHyp::Ne).is_err());
assert!(binomial_z_p(1, 0, 0., AltHyp::Ne).is_err());
assert!(binomial_z_p(1, 0, 1., AltHyp::Ne).is_err());
if nocover() {
assert!(binomial_z_p(1, 0, 0.5, AltHyp::Ne).unwrap().is_finite());
}
}
#[test]
fn test_one_proportion_z_test() {
assert!(one_proportion_z_test(0, 0, 0.5, AltHyp::Ne, 0.5).is_err());
assert!(one_proportion_z_test(1, 0, 0., AltHyp::Ne, 0.5).is_err());
assert!(one_proportion_z_test(1, 0, 1., AltHyp::Ne, 0.5).is_err());
assert!(one_proportion_z_test(1, 0, 0.5, AltHyp::Ne, 0.).is_err());
assert!(one_proportion_z_test(1, 0, 0.5, AltHyp::Ne, 1.).is_err());
if nocover() {
assert!(one_proportion_z_test(1, 0, 0.5, AltHyp::Ne, 0.5).is_ok());
}
}
#[test]
fn test_binomial_ws_alt_hyp_ci() {
}
#[test]
fn test_binomial_ws_ci() {
assert!(binomial_ws_ci(0, 0, 0.5).is_err());
assert!(binomial_ws_ci(0, 1, 0.5).is_err());
assert!(binomial_ws_ci(2, 1, 0.).is_err());
assert!(binomial_ws_ci(2, 1, 1.).is_err());
assert!(binomial_ws_ci(2, 1, f64::NAN).is_err());
assert!(binomial_ws_ci(2, 1, f64::INFINITY).is_err());
if nocover() {
let Ci(lo, hi) = binomial_ws_ci(1, 1, 0.5).unwrap();
assert!(lo.is_finite());
assert!(hi.is_finite());
}
}
#[test]
fn test_binomial_cp_alt_hyp_ci() {
}
#[test]
fn test_binomial_cp_ci() {
assert!(binomial_cp_ci(0, 0, 0.5).is_err());
assert!(binomial_cp_ci(2, 3, 0.5).is_err());
assert!(binomial_cp_ci(2, 1, 0.).is_err());
assert!(binomial_cp_ci(2, 1, 1.).is_err());
}
#[test]
fn test_exact_binomial_p() {
assert!(exact_binomial_p(0, 0, 0.5, AltHyp::Ne).is_err());
assert!(exact_binomial_p(2, 3, 0.5, AltHyp::Ne).is_err());
assert!(exact_binomial_p(2, 1, -1., AltHyp::Ne).is_err());
assert!(exact_binomial_p(2, 1, 2., AltHyp::Ne).is_err());
if nocover() {
assert!(exact_binomial_p(1, 0, 0., AltHyp::Ne).unwrap().is_finite());
assert!(exact_binomial_p(1, 0, 1., AltHyp::Ne).unwrap().is_finite());
assert!(exact_binomial_p(1, 1, 0., AltHyp::Ne).unwrap().is_finite());
assert!(exact_binomial_p(1, 1, 1., AltHyp::Ne).unwrap().is_finite());
}
}
#[test]
fn test_exact_binomial_test() {
assert!(exact_binomial_test(0, 0, 0.5, AltHyp::Ne, 0.5).is_err());
assert!(exact_binomial_test(2, 3, 0.5, AltHyp::Ne, 0.5).is_err());
assert!(exact_binomial_test(2, 1, -1., AltHyp::Ne, 0.5).is_err());
assert!(exact_binomial_test(2, 1, 2., AltHyp::Ne, 0.5).is_err());
assert!(exact_binomial_test(2, 1, 0.5, AltHyp::Ne, 0.).is_err());
assert!(exact_binomial_test(2, 1, 0.5, AltHyp::Ne, 1.).is_err());
if nocover() {
assert!(exact_binomial_test(1, 0, 0., AltHyp::Ne, 0.5).is_ok());
assert!(exact_binomial_test(1, 0, 1., AltHyp::Ne, 0.5).is_ok());
assert!(exact_binomial_test(1, 1, 0., AltHyp::Ne, 0.5).is_ok());
assert!(exact_binomial_test(1, 1, 1., AltHyp::Ne, 0.5).is_ok());
}
}