use glifparser::{Handle, Point, PointType, WhichHandle};
#[test]
fn test_handles() {
let point: Point<()> = Point::from_x_y_a_b_type((0.0, 0.0), (Handle::At(1.0, 0.0), Handle::At(0.0, 1.0)), PointType::Move);
assert_eq!(point.a, Handle::At(1.0, 0.0));
assert_eq!(point.handle(WhichHandle::A), Handle::At(1.0, 0.0));
assert_eq!(point.handle(WhichHandle::Neither), Handle::Colocated);
let mut point = point;
point.set_handle(WhichHandle::A, Handle::Colocated);
assert_eq!(point.handle(WhichHandle::A), Handle::Colocated);
let wh = WhichHandle::A;
assert_eq!(wh.opposite(), WhichHandle::B);
assert_eq!(wh.opposite().opposite(), WhichHandle::A);
}
#[test]
fn test_which_handle() {
let wh1: WhichHandle = 'A'.into();
assert_eq!(wh1, WhichHandle::A);
let wh1: WhichHandle = 'A'.into();
assert_eq!(wh1, WhichHandle::A);
let wh1: WhichHandle = "A".into();
assert_eq!(wh1, WhichHandle::A);
let wh1: WhichHandle = "b".into();
assert_eq!(wh1, WhichHandle::B);
let wh1: WhichHandle = '\u{0}'.into();
assert_eq!(wh1, WhichHandle::Neither);
}
#[cfg(not(debug_assertions))]
#[test]
fn test_which_handle_nonstrict() {
use std::str::FromStr as _;
let wh1: WhichHandle = " b ".into();
assert_eq!(wh1, WhichHandle::B);
let wh1: WhichHandle = 'C'.into();
assert_eq!(wh1, WhichHandle::Neither);
let wh1 = WhichHandle::from_str("");
assert!(wh1.is_err());
let wh1 = WhichHandle::from_str(" BBBB ");
assert_eq!(wh1, Ok(WhichHandle::B));
}