o192 0.2.2

ORION-192: ordered, resilient, independent, URL-safe 192-bit IDs for distributed systems.
Documentation
//! Cross-language conformance vectors.

mod common;

use common::{hex_to_bytes, vectors};
use o192::{decode_sortable64, encode_sortable64, parse};

#[test]
fn shared_conformance_vectors() {
    for vector in vectors() {
        let bytes = hex_to_bytes(vector.bytes_hex);
        assert_eq!(
            encode_sortable64(&bytes).unwrap(),
            vector.id,
            "encode {}",
            vector.name,
        );
        assert_eq!(
            decode_sortable64(vector.id).unwrap().to_vec(),
            bytes,
            "decode {}",
            vector.name,
        );

        let view = parse(vector.id, 0).unwrap();
        assert_eq!(
            view.relative_ms, vector.relative_ms,
            "relative_ms {}",
            vector.name
        );
        assert_eq!(
            view.fraction4096, vector.fraction4096,
            "fraction {}",
            vector.name
        );
        assert_eq!(view.counter, vector.counter, "counter {}", vector.name);
        assert_eq!(
            view.random_hex, vector.random_hex,
            "random_hex {}",
            vector.name
        );
    }
}