use std::time::Instant;
use boring_parser::{boring_structs_300::Boring300, parser::Parse, coordinate::GeoCoordinate};
use boring_parser::transform::{JgdTransformer, SurveyStartDate};
fn main() {
let xml_bytes = std::fs::read("107282 (1).xml").unwrap();
let (utf8, _, _) = encoding_rs::SHIFT_JIS.decode(&xml_bytes);
let xml_str = utf8.to_string();
let start = Instant::now();
let boring = Boring300::parse_from_str(&xml_str).unwrap();
println!("Parse: {:?}", start.elapsed());
let start = Instant::now();
let transformer = JgdTransformer::with_survey_date(
"params/TKY2JGD.par",
"params/patch_files",
SurveyStartDate::new(2010, 5, 15),
).unwrap();
println!("Transformer init: {:?}", start.elapsed());
let start = Instant::now();
let loc = boring.geo_location();
let result = loc.to_wgs84(&transformer);
println!("Coordinate transform: {:?}", start.elapsed());
println!("Result: {:?}", result);
let start = Instant::now();
for _ in 0..100 {
let loc = boring.geo_location();
let _ = loc.to_wgs84(&transformer);
}
println!("100x transform: {:?}", start.elapsed());
}