use token_value_map::*;
#[test]
fn empty_vec_validation() {
assert!(IntegerVec::new(vec![]).is_err());
assert!(RealVec::new(vec![]).is_err());
assert!(BooleanVec::new(vec![]).is_err());
assert!(StringVec::new(vec![]).is_err());
assert!(ColorVec::new(vec![]).is_err());
#[cfg(all(feature = "vector2", feature = "vec_variants"))]
assert!(Vector2Vec::new(vec![]).is_err());
#[cfg(all(feature = "vector3", feature = "vec_variants"))]
assert!(Vector3Vec::new(vec![]).is_err());
#[cfg(all(feature = "matrix3", feature = "vec_variants"))]
assert!(Matrix3Vec::new(vec![]).is_err());
}
#[test]
fn non_empty_vec_creation() {
assert!(IntegerVec::new(vec![1]).is_ok());
assert!(RealVec::new(vec![1.0]).is_ok());
assert!(BooleanVec::new(vec![true]).is_ok());
assert!(StringVec::new(vec!["test".to_string()]).is_ok());
assert!(ColorVec::new(vec![[1.0, 0.0, 0.0, 1.0]]).is_ok());
#[cfg(all(feature = "vector2", feature = "vec_variants"))]
assert!(Vector2Vec::new(vec![token_value_map::math::Vec2Impl::new(1.0, 2.0)]).is_ok());
#[cfg(all(feature = "vector3", feature = "vec_variants"))]
assert!(Vector3Vec::new(vec![token_value_map::math::Vec3Impl::new(1.0, 2.0, 3.0)]).is_ok());
#[cfg(all(feature = "matrix3", feature = "vec_variants"))]
assert!(Matrix3Vec::new(vec![token_value_map::math::mat3_identity()]).is_ok());
}
#[test]
fn vec_error_messages() {
let err = IntegerVec::new(vec![]).unwrap_err();
assert!(err.to_string().contains("IntegerVec cannot be empty"));
let err = RealVec::new(vec![]).unwrap_err();
assert!(err.to_string().contains("RealVec cannot be empty"));
let err = BooleanVec::new(vec![]).unwrap_err();
assert!(err.to_string().contains("BooleanVec cannot be empty"));
}