use embedded_graphics::{prelude::*, primitives::Rectangle};
use std::iter::repeat;
use tinytga::{ParseError, RawPixel, RawTga};
#[test]
fn color_map() {
assert_eq!(
RawTga::from_slice(include_bytes!("../tests/error_color_map.tga")),
Err(ParseError::ColorMap)
);
}
#[test]
fn image_data_missing() {
let tga = RawTga::from_slice(include_bytes!("../tests/error_no_image_data.tga")).unwrap();
assert!(tga.image_data().is_empty());
let expected: Vec<_> = Rectangle::new(Point::zero(), tga.size())
.points()
.map(|p| RawPixel::new(p, 0))
.collect();
let pixels: Vec<_> = tga.pixels().collect();
assert_eq!(pixels, expected);
}
#[test]
fn image_data_truncated() {
let tga =
RawTga::from_slice(include_bytes!("../tests/error_truncated_image_data.tga")).unwrap();
assert_eq!(tga.image_data(), &[1, 2, 3, 4, 5, 6, 7, 8]);
let expected: Vec<_> = Rectangle::new(Point::zero(), tga.size())
.points()
.zip((1..=8).chain(repeat(0)))
.map(|(p, c)| RawPixel::new(p, c))
.collect();
let pixels: Vec<_> = tga.pixels().collect();
assert_eq!(pixels, expected);
}