macro_rules! twoway {
    (
        $(

            // doc attrs
            $( #[doc = $doc:expr] )*
            $name:ident,
        )*
    ) => {
        $(
            $( #[doc = $doc] )*
            #[test]
            fn $name() {
                let src = include_str!(concat!("./samples/", stringify!($name), ".rsx"));
                let formatted = dioxus_autofmt::fmt_file(src);
                let out = dioxus_autofmt::apply_formats(src, formatted);
                // normalize line endings
                let out = out.replace("\r", "");
                let src = src.replace("\r", "");
                pretty_assertions::assert_eq!(&src, &out);
            }
        )*
    };
}

twoway![
    attributes,
    collapse_expr,
    comments,
    commentshard,
    complex,
    emoji,
    ifchain_forloop,
    immediate_expr,
    key,
    long_exprs,
    long,
    manual_props,
    messy_indent,
    multirsx,
    raw_strings,
    reallylong,
    simple,
    t2,
    tiny,
    tinynoopt,
    trailing_expr,
];
