rasterfakers 0.2.0

A Rust library and CLI tool to generate fake GeoTIFF files for testing and fixtures.
Documentation
use rasterfakers::{FakeGeoTiffBuilder, GeoTiffError};

#[test]
fn test_zero_dimensions() {
    let result = FakeGeoTiffBuilder::new().dimensions(0, 100);
    match result {
        Err(GeoTiffError::InvalidDimensions(msg)) => {
            assert_eq!(msg, "Width and height must be greater than 0");
        }
        _ => panic!("Expected InvalidDimensions error for zero width"),
    }

    let result = FakeGeoTiffBuilder::new().dimensions(100, 0);
    match result {
        Err(GeoTiffError::InvalidDimensions(msg)) => {
            assert_eq!(msg, "Width and height must be greater than 0");
        }
        _ => panic!("Expected InvalidDimensions error for zero height"),
    }
}

#[test]
fn test_zero_bands() {
    let result = FakeGeoTiffBuilder::new()
        .dimensions(100, 100)
        .unwrap()
        .bands(0);
    assert!(result.is_err());
    match result {
        Err(GeoTiffError::InvalidDimensions(msg)) => {
            assert_eq!(msg, "Number of bands must be greater than 0");
        }
        _ => panic!("Expected InvalidDimensions error for zero bands"),
    }
}

#[test]
fn test_missing_output_path() {
    let result = FakeGeoTiffBuilder::new()
        .dimensions(100, 100)
        .unwrap()
        .bands(1)
        .unwrap()
        .build::<f32>();
    assert!(result.is_err());
    match result {
        Err(GeoTiffError::MissingField(msg)) => {
            assert_eq!(msg, "Output path must be specified");
        }
        _ => panic!("Expced MissingField error for missing output path"),
    }
}

#[test]
fn test_valid_builder() {
    let result = FakeGeoTiffBuilder::new()
        .dimensions(100, 100)
        .unwrap()
        .bands(1)
        .unwrap()
        .output_path("test.tiff")
        .build::<f32>();
    assert!(result.is_ok());
}