jayver 1.0.0

A calendar versioning scheme for binaries developed by Emmett Jayhart
Documentation
//! Tests compatibility with semver behavior
use jayver::{Version as JayVer, VersionReq as JayReq};
use semver::{Version as SemVer, VersionReq as SemReq};

#[test]
fn test_version_equivalence() {
    // Test version equivalence with semver
    let jay_version = JayVer::parse("25.16.0").unwrap();
    let sem_version = SemVer::parse("25.16.0").unwrap();

    // Component equivalence - with type conversions
    assert_eq!(jay_version.year as u64, sem_version.major);
    assert_eq!(jay_version.week as u64, sem_version.minor);
    assert_eq!(jay_version.patch as u64, sem_version.patch);

    // String representation
    assert_eq!(jay_version.to_string(), sem_version.to_string());
}

#[test]
fn test_requirement_equivalence() {
    // Test requirement equivalence with semver
    let jay_version = JayVer::parse("25.16.0").unwrap();
    let sem_version = SemVer::parse("25.16.0").unwrap();

    // Basic requirement - greater than or equal
    let jay_req1 = JayReq::parse(">=25.10.0").unwrap();
    let sem_req1 = SemReq::parse(">=25.10.0").unwrap();
    assert_eq!(
        jay_req1.matches(&jay_version),
        sem_req1.matches(&sem_version)
    );

    // Testing with another requirement
    let jay_req2 = JayReq::parse("<26.1.0").unwrap();
    let sem_req2 = SemReq::parse("<26.1.0").unwrap();
    assert_eq!(
        jay_req2.matches(&jay_version),
        sem_req2.matches(&sem_version)
    );

    // For display comparison
    assert_eq!(jay_req1.to_string(), ">=25.10.0");
    assert_eq!(jay_req2.to_string(), "<26.1.0");
}