quant-indicators 0.7.0

Pure indicator math library for trading — MA, RSI, Bollinger, MACD, ATR, HRP
Documentation
use super::*;
use chrono::{DateTime, Utc};
use rust_decimal_macros::dec;

fn make_ts(secs: i64) -> DateTime<Utc> {
    DateTime::from_timestamp(secs, 0).expect("valid timestamp")
}

#[test]
fn series_basics() {
    let values = vec![
        (make_ts(1000), dec!(100)),
        (make_ts(2000), dec!(101)),
        (make_ts(3000), dec!(102)),
    ];
    let series = Series::new(values);

    assert_eq!(series.len(), 3);
    assert!(!series.is_empty());
    assert_eq!(series.first().expect("non-empty series").1, dec!(100));
    assert_eq!(series.last().expect("non-empty series").1, dec!(102));
}

#[test]
fn series_decimal_values() {
    let values = vec![(make_ts(1000), dec!(10)), (make_ts(2000), dec!(20))];
    let series = Series::new(values);

    assert_eq!(series.decimal_values(), vec![dec!(10), dec!(20)]);
}

#[test]
fn series_empty() {
    let series = Series::empty();
    assert!(series.is_empty());
    assert_eq!(series.len(), 0);
    assert!(series.first().is_none());
}