1use pracstro::{moon, sol, time};
2use std::time::Instant;
3
4fn run_test(name: &str, n: u32, run: fn() -> ()) {
5 let start = Instant::now();
6 (1..n).for_each(|_| run());
7 let time = start.elapsed();
8 println!("{},{:?},{:?}", name, time / n, time);
9}
10
11fn main() {
12 let n = 40000;
13 println!("Test,Mean (n={}),Full", n);
14
15 run_test("Control (NOP)", n, || ());
16 run_test("Current time", n, || {
17 time::Date::now();
18 });
19 fn ephem() {
20 let now = time::Date::now();
21 for p in sol::PLANETS {
22 let (ra, de) = p.location(now).equatorial();
23 (ra.clock(), de.to_latitude().degminsec());
24 }
25 }
26 run_test("Full ephemeris", n, ephem);
27 run_test("Moon Phase", n, || {
28 moon::MOON.illumfrac(time::Date::now());
29 });
30}