tickerforge 0.1.15

Generate and parse derivatives tickers from tickerforge-spec (Rust).
Documentation
mod common;

use tickerforge::TickerForge;

use crate::common::spec_path;

#[test]
fn generate_ind_front_contract_before_expiry() {
    let forge = TickerForge::with_spec_path(&spec_path()).expect("forge");
    let ticker = forge.generate("IND", "2026-06-01", 0).expect("gen");
    assert_eq!(ticker, "INDM26");
}

#[test]
fn generate_ind_rolls_after_expiry() {
    let forge = TickerForge::with_spec_path(&spec_path()).expect("forge");
    let ticker = forge.generate("IND", "2026-06-18", 0).expect("gen");
    assert_eq!(ticker, "INDQ26");
}

#[test]
fn gen_defaults_to_today() {
    let forge = TickerForge::with_spec_path(&spec_path()).expect("forge");
    let today = chrono::Local::now()
        .date_naive()
        .format("%Y-%m-%d")
        .to_string();

    assert_eq!(
        forge.gen("DOL").expect("today"),
        forge.generate("DOL", &today, 0).expect("explicit today")
    );
}