use crate::astronomy::unit::Coordinates;
#[derive(PartialEq, Debug, Copy, Clone)]
pub enum HighLatitudeRule {
MiddleOfTheNight,
SeventhOfTheNight,
TwilightAngle,
}
impl HighLatitudeRule {
pub fn recommended(coordinates: Coordinates) -> HighLatitudeRule {
if coordinates.latitude > 48.0 {
HighLatitudeRule::SeventhOfTheNight
} else {
HighLatitudeRule::MiddleOfTheNight
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn recommended_rule_seventh_of_night() {
let location = Coordinates {
latitude: 48.983226,
longitude: -3.216649,
};
assert_eq!(
HighLatitudeRule::recommended(location),
HighLatitudeRule::SeventhOfTheNight
);
}
#[test]
fn recommended_rule_middle_of_night() {
let location = Coordinates {
latitude: 45.983226,
longitude: -3.216649,
};
assert_eq!(
HighLatitudeRule::recommended(location),
HighLatitudeRule::MiddleOfTheNight
);
}
}