alpha_g_physics 0.1.5

Data analysis library for the ALPHA-g experiment
Documentation
use super::*;
use uom::si::angle::radian;
use uom::si::frequency::megahertz;
use uom::si::length::millimeter;

#[test]
fn anode_wires_radius() {
    let r = Length::new::<millimeter>(182.0);
    assert_eq!(ANODE_WIRES_RADIUS, r);
}

#[test]
fn trigger_clock_frequency() {
    let f = Frequency::new::<megahertz>(62.5);
    assert_eq!(TRG_CLOCK_FREQ, f);
}

#[test]
fn spacepoint_x_coordinate() {
    let p = SpacePoint {
        r: Length::new::<millimeter>(5.0),
        phi: Angle::new::<radian>(4.0f64.atan2(3.0)),
        z: Length::new::<millimeter>(0.0),
    };

    let diff = (p.x() - Length::new::<millimeter>(3.0)).abs();
    assert!(diff < Length::new::<millimeter>(1e-6));
}

#[test]
fn spacepoint_y_coordinate() {
    let p = SpacePoint {
        r: Length::new::<millimeter>(5.0),
        phi: Angle::new::<radian>(4.0f64.atan2(3.0)),
        z: Length::new::<millimeter>(0.0),
    };

    let diff = (p.y() - Length::new::<millimeter>(4.0)).abs();
    assert!(diff < Length::new::<millimeter>(1e-6));
}

#[test]
fn spacepoint_distance() {
    let p1 = SpacePoint {
        r: Length::new::<millimeter>(10.0),
        phi: Angle::new::<radian>(1.5),
        z: Length::new::<millimeter>(0.5),
    };
    let p2 = SpacePoint {
        r: Length::new::<millimeter>(5.0),
        phi: Angle::new::<radian>(0.5),
        z: Length::new::<millimeter>(-1.0),
    };

    assert_eq!(p1.distance(p2), p2.distance(p1));

    let diff = p1.distance(p2) - Length::new::<millimeter>(8.55685511232);
    assert!(diff.abs() < Length::new::<millimeter>(1e-6));

    let p3 = SpacePoint {
        r: Length::new::<millimeter>(15.0),
        phi: Angle::new::<radian>(1.5),
        z: Length::new::<millimeter>(0.5),
    };

    let diff = p1.distance(p3) - Length::new::<millimeter>(5.0);
    assert!(diff.abs() < Length::new::<millimeter>(1e-6));
}