<commit_before>use proc_macro::Literal;

pub fn test() {
    test_display_literal();
    test_parse_literal();
}

fn test_display_literal() {
    assert_eq!(Literal::isize_unsuffixed(-10).to_string(), "-10");
    assert_eq!(Literal::isize_suffixed(-10).to_string(), "-10isize");
    assert_eq!(Literal::f32_unsuffixed(-10.0).to_string(), "-10.0");
    assert_eq!(Literal::f32_suffixed(-10.0).to_string(), "-10f32");
    assert_eq!(Literal::f64_unsuffixed(-10.0).to_string(), "-10.0");
    assert_eq!(Literal::f64_suffixed(-10.0).to_string(), "-10f64");
}

fn test_parse_literal() {
    assert_eq!("1".parse::<Literal>().unwrap().to_string(), "1");
    assert_eq!("1.0".parse::<Literal>().unwrap().to_string(), "1.0");
    assert_eq!("'a'".parse::<Literal>().unwrap().to_string(), "'a'");
    assert_eq!("\"\n\"".parse::<Literal>().unwrap().to_string(), "\"\n\"");
    assert_eq!("b\"\"".parse::<Literal>().unwrap().to_string(), "b\"\"");
    assert_eq!("r##\"\"##".parse::<Literal>().unwrap().to_string(), "r##\"\"##");
    assert_eq!("10ulong".parse::<Literal>().unwrap().to_string(), "10ulong");
    assert_eq!("-10ulong".parse::<Literal>().unwrap().to_string(), "-10ulong");

    assert!("true".parse::<Literal>().is_err());
    assert!(".8".parse::<Literal>().is_err());
    assert!("0 1".parse::<Literal>().is_err());
    assert!("'a".parse::<Literal>().is_err());
    assert!(" 0".parse::<Literal>().is_err());
    assert!("0 ".parse::<Literal>().is_err());
    assert!("/* comment */0".parse::<Literal>().is_err());
    assert!("0/* comment */".parse::<Literal>().is_err());
    assert!("0// comment".parse::<Literal>().is_err());
    assert!("- 10".parse::<Literal>().is_err());
    assert!("-'x'".parse::<Literal>().is_err());
}<commit_msg>Add test to confirm fnn_unsuffixed does not emit exponent notation<commit_after>// ignore-tidy-linelength

use proc_macro::Literal;

pub fn test() {
    test_display_literal();
    test_parse_literal();
}

fn test_display_literal() {
    assert_eq!(Literal::isize_unsuffixed(-10).to_string(), "-10");
    assert_eq!(Literal::isize_suffixed(-10).to_string(), "-10isize");
    assert_eq!(Literal::f32_unsuffixed(-10.0).to_string(), "-10.0");
    assert_eq!(Literal::f32_suffixed(-10.0).to_string(), "-10f32");
    assert_eq!(Literal::f64_unsuffixed(-10.0).to_string(), "-10.0");
    assert_eq!(Literal::f64_suffixed(-10.0).to_string(), "-10f64");
    assert_eq!(
        Literal::f64_unsuffixed(1e100).to_string(),
        "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0",
    );
}

fn test_parse_literal() {
    assert_eq!("1".parse::<Literal>().unwrap().to_string(), "1");
    assert_eq!("1.0".parse::<Literal>().unwrap().to_string(), "1.0");
    assert_eq!("'a'".parse::<Literal>().unwrap().to_string(), "'a'");
    assert_eq!("\"\n\"".parse::<Literal>().unwrap().to_string(), "\"\n\"");
    assert_eq!("b\"\"".parse::<Literal>().unwrap().to_string(), "b\"\"");
    assert_eq!("r##\"\"##".parse::<Literal>().unwrap().to_string(), "r##\"\"##");
    assert_eq!("10ulong".parse::<Literal>().unwrap().to_string(), "10ulong");
    assert_eq!("-10ulong".parse::<Literal>().unwrap().to_string(), "-10ulong");

    assert!("true".parse::<Literal>().is_err());
    assert!(".8".parse::<Literal>().is_err());
    assert!("0 1".parse::<Literal>().is_err());
    assert!("'a".parse::<Literal>().is_err());
    assert!(" 0".parse::<Literal>().is_err());
    assert!("0 ".parse::<Literal>().is_err());
    assert!("/* comment */0".parse::<Literal>().is_err());
    assert!("0/* comment */".parse::<Literal>().is_err());
    assert!("0// comment".parse::<Literal>().is_err());
    assert!("- 10".parse::<Literal>().is_err());
    assert!("-'x'".parse::<Literal>().is_err());
}
{'fraction_non_alphanumeric': 0.2898089171974522, 'fraction_numerical': 0.06369426751592357, 'mean_word_length': 5.355817875210793, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 1, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6262578', 'n_tokens_mistral': 1457, 'n_tokens_neox': 1381, 'n_words': 132}