use test_log;
use glifparser::outline::{FromKurbo as _, IntoKurbo as _, RoundToInt as _, Outline};
use glifparser::Glif;
use glifparser;
use kurbo::BezPath;
use kurbo::Shape as _;
#[test_log::test]
fn test_kurbo_from() {
log::info!("logging OK");
let mut path: BezPath = kurbo::Circle{center:kurbo::Point::new(0., 0.), radius:50.0}.to_path(1.0);
path.extend(kurbo::Rect::new(0., 0., 100., 100.).to_path(1.0));
let outline = Outline::<()>::from_kurbo(&path);
let len1: usize = outline.first().map(|c|c.len()).unwrap_or(0);
let kpath = outline.clone().into_kurbo().unwrap();
let outline2 = Outline::<()>::from_kurbo(&kpath);
let len2: usize = outline2.first().map(|c|c.len()).unwrap_or(0);
assert_eq!(outline.clone().round_to_int(), outline2.clone().round_to_int());
let mut glif = Glif::new();
eprintln!("{:#?}", &path);
eprintln!("{:#?}", &kpath);
eprintln!("{:?}", &outline);
eprintln!("{:?}", &outline2);
glif.outline = Some(outline.clone());
println!("{}", glifparser::write(&glif).unwrap());
glif.outline = Some(outline2.clone());
println!("{}", glifparser::write(&glif).unwrap());
assert_eq!(len1, len2);
assert_eq!(&outline, &outline2);
}