dashu-int 0.3.1

A big integer library with good performance
Documentation
mod helper_macros;
use serde_test::{assert_de_tokens, assert_tokens, Configure, Token};

#[test]
fn test_ubig_serde() {
    assert_tokens(&ubig!(0).compact(), &[Token::Seq { len: Some(0) }, Token::SeqEnd]);
    assert_tokens(&ubig!(0).readable(), &[Token::BorrowedStr("0")]);
    assert_de_tokens(&ubig!(0).compact(), &[Token::Seq { len: None }, Token::SeqEnd]);
    assert_de_tokens(&ubig!(0).readable(), &[Token::BorrowedStr("0")]);
    assert_tokens(
        &ubig!(17).compact(),
        &[Token::Seq { len: Some(1) }, Token::U64(17), Token::SeqEnd],
    );
    assert_tokens(&ubig!(17).readable(), &[Token::BorrowedStr("17")]);
    assert_de_tokens(
        &ubig!(17).compact(),
        &[Token::Seq { len: None }, Token::U8(17), Token::SeqEnd],
    );
    assert_de_tokens(&ubig!(17).readable(), &[Token::BorrowedStr("17")]);
    assert_tokens(
        &ubig!(0x123451234567890abcdef).compact(),
        &[
            Token::Seq { len: Some(2) },
            Token::U64(0x1234567890abcdef),
            Token::U64(0x12345),
            Token::SeqEnd,
        ],
    );
    assert_tokens(
        &ubig!(0x123451234567890abcdef).readable(),
        &[Token::BorrowedStr("1375482783624620011146735")],
    );
    assert_de_tokens(
        &ubig!(0x123451234567890abcdef).compact(),
        &[
            Token::Seq { len: None },
            Token::U64(0x1234567890abcdef),
            Token::U64(0x12345),
            Token::SeqEnd,
        ],
    );
    assert_de_tokens(
        &ubig!(0x123451234567890abcdef).readable(),
        &[Token::BorrowedStr("0x123451234567890abcdef")],
    );
}

#[test]
fn test_ibig_serde() {
    assert_tokens(
        &ibig!(0).compact(),
        &[
            Token::Tuple { len: 2 },
            Token::Bool(false),
            Token::Seq { len: Some(0) },
            Token::SeqEnd,
            Token::TupleEnd,
        ],
    );
    assert_tokens(&ibig!(0).readable(), &[Token::BorrowedStr("0")]);
    assert_de_tokens(
        &ibig!(0).compact(),
        &[
            Token::Seq { len: None },
            Token::Bool(true),
            Token::Seq { len: None },
            Token::SeqEnd,
            Token::SeqEnd,
        ],
    );
    assert_de_tokens(&ibig!(0).readable(), &[Token::BorrowedStr("0")]);
    assert_tokens(
        &ibig!(17).compact(),
        &[
            Token::Tuple { len: 2 },
            Token::Bool(false),
            Token::Seq { len: Some(1) },
            Token::U64(17),
            Token::SeqEnd,
            Token::TupleEnd,
        ],
    );
    assert_tokens(&ibig!(17).readable(), &[Token::BorrowedStr("17")]);
    assert_de_tokens(&ibig!(17).readable(), &[Token::BorrowedStr("0x11")]);
    assert_tokens(
        &ibig!(-17).compact(),
        &[
            Token::Tuple { len: 2 },
            Token::Bool(true),
            Token::Seq { len: Some(1) },
            Token::U64(17),
            Token::SeqEnd,
            Token::TupleEnd,
        ],
    );
    assert_tokens(&ibig!(-17).readable(), &[Token::BorrowedStr("-17")]);
    assert_de_tokens(&ibig!(-17).readable(), &[Token::BorrowedStr("-0x11")]);
}