use crate::model::Frequency;

use gio::{prelude::Cast, ListStore};

#[allow(non_snake_case)]
pub fn reactive_resistance_of_capacitor(Cm: f64, L: f64, f: f64) -> f64 {
    if f == 0.0 || Cm == 0.0 || L == 0.0 {
        0.0
    } else {
        1f64 / (2f64 * std::f64::consts::PI * f * Cm * L)
    }
}

#[allow(non_snake_case)]
pub fn full_resistance_of_capacitor(Xc: f64, Rs: f64, Rm: f64, L: f64) -> f64 {
    (Xc.powi(2) + (Rs + Rm * L).powi(2)).sqrt()
}

#[allow(non_snake_case)]
pub fn voltage_from_signal_source(Vs: f64, Xc: f64, Z: f64) -> f64 {
    if Z == 0.0 {
        0.0
    } else {
        (Vs * Xc) / Z
    }
}

#[allow(non_snake_case)]
pub fn coef_of_signal_reduce(Vs: f64, V: f64) -> f64 {
    if V == 0.0 {
        0.0
    } else {
        Vs / V
    }
}