// TODO: Investigate writing a proc macro to make specifying these combinations easier. For example, currently I am only setting 1 setting per test to keep the repetition reasonable when I should be mixing all the different combinations.

{expect_fail}
#[tokio::test]
async fn autogen_default_{name}() -> Result<(), Box<dyn std::error::Error>> {{
    let org_path = "{path}";
    let org_contents = std::fs::read_to_string(org_path).expect("Read org file.");
    assert!(organic::compare::run_anonymous_compare(org_contents.as_str()).await?);
    Ok(())
}}

{expect_fail}
#[tokio::test]
async fn autogen_la_{name}() -> Result<(), Box<dyn std::error::Error>> {{
    let org_path = "{path}";
    let org_contents = std::fs::read_to_string(org_path).expect("Read org file.");
    let global_settings = organic::settings::GlobalSettings {{
        list_allow_alphabetical: true,
        ..Default::default()
    }};
    assert!(organic::compare::run_anonymous_compare_with_settings(org_contents.as_str(), &global_settings, false).await?);
    Ok(())
}}

{expect_fail}
#[tokio::test]
async fn autogen_t1_{name}() -> Result<(), Box<dyn std::error::Error>> {{
    let org_path = "{path}";
    let org_contents = std::fs::read_to_string(org_path).expect("Read org file.");
    let global_settings = organic::settings::GlobalSettings {{
        tab_width: 1,
        ..Default::default()
    }};
    assert!(organic::compare::run_anonymous_compare_with_settings(org_contents.as_str(), &global_settings, false).await?);
    Ok(())
}}

{expect_fail}
#[tokio::test]
async fn autogen_t16_{name}() -> Result<(), Box<dyn std::error::Error>> {{
    let org_path = "{path}";
    let org_contents = std::fs::read_to_string(org_path).expect("Read org file.");
    let global_settings = organic::settings::GlobalSettings {{
        tab_width: 16,
        ..Default::default()
    }};
    assert!(organic::compare::run_anonymous_compare_with_settings(org_contents.as_str(), &global_settings, false).await?);
    Ok(())
}}

{expect_fail}
#[tokio::test]
async fn autogen_odd_{name}() -> Result<(), Box<dyn std::error::Error>> {{
    let org_path = "{path}";
    let org_contents = std::fs::read_to_string(org_path).expect("Read org file.");
    let global_settings = organic::settings::GlobalSettings {{
        odd_levels_only: organic::settings::HeadlineLevelFilter::Odd,
        ..Default::default()
    }};
    assert!(organic::compare::run_anonymous_compare_with_settings(org_contents.as_str(), &global_settings, false).await?);
    Ok(())
}}