vin-info 0.1.2

VIN (Vehicle identifier number) parser
Documentation
use vin_info::{Vin, Region};

#[test]
fn should_verify_vin() {
    let vin = Vin::new("1M8GDM9AXKP042788");
    assert!(vin.calculate_checksum_digit() == 'X');
    assert!(vin.is_checksum_valid());
    assert_eq!(vin.wmi().len(), 3);
    assert_eq!(vin.wmi(), "1M8");
    assert_eq!(vin.vds(), "GDM9AX");
    assert_eq!(vin.vic(), "KP042788");
    assert_eq!(vin.manufacturer_region().unwrap(), Region::NorthAmerica);
    assert_eq!(vin.manufacturer_country(), "United States");
    assert_eq!(vin.manufacturer_name(), "Motor Coach Industries, Inc.");

    let vin = Vin::new("5N1NJ01CXST000001");
    assert!(vin.calculate_checksum_digit() == 'X');
    assert!(vin.is_checksum_valid());
    assert_eq!(vin.wmi().len(), 3);
    assert_eq!(vin.wmi(), "5N1");
    assert_eq!(vin.vds(), "NJ01CX");
    assert_eq!(vin.vic(), "ST000001");
    assert_eq!(vin.manufacturer_region().unwrap(), Region::NorthAmerica);
    assert_eq!(vin.manufacturer_country(), "United States");
    assert_eq!(vin.manufacturer_name(), "Nissan North America, Inc.");
}