1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use crate::hermite;
use crate::legendre;

#[cfg(test)]
mod tests {
    use super::*;
    use crate::{GaussHermite, GaussLegendre, PI};

    #[test]
    fn integrate_linear_legendre() {
        let quad = GaussLegendre::init(5);
        let integral = quad.integrate(0.0, 1.0, |x| x);
        assert_float_absolute_eq!(integral, 0.5);
    }
    #[test]
    fn integrate_parabola_legendre() {
        let quad = GaussLegendre::init(5);
        let integral = quad.integrate(0.0, 3.0, |x| x.powi(2));
        assert_float_absolute_eq!(integral, 9.0);
    }
    #[test]
    fn integrate_one_hermite() {
        let quad = GaussHermite::init(5);
        let integral = quad.integrate(|_x| 1.0);
        assert_float_absolute_eq!(integral, PI.sqrt());
    }
}