use stern4rust::finding::model::import_path::ImportPath;
#[test]
fn decides_order_of_a_camel_case_segment_beside_a_screaming_case_one_is_true() {
let decides = ImportPath::decides_order("use block::Block;", "use block::BLOCK_GAS_LIMIT;");
assert!(decides);
}
#[test]
fn decides_order_of_a_pair_diverging_at_the_first_segment_is_false() {
let decides = ImportPath::decides_order("use serde_json::Value;", "use stern4rust::a::B;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_pair_diverging_by_case_is_true() {
let decides = ImportPath::decides_order("use serde_json::Value;", "use serde_json::from_str;");
assert!(decides);
}
#[test]
fn decides_order_of_a_pair_of_lowercase_segments_is_false() {
let decides = ImportPath::decides_order("use std::fs;", "use std::path::PathBuf;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_pair_of_screaming_case_segments_is_false() {
let decides = ImportPath::decides_order("use gas::ALPHA_TWO;", "use gas::ZETA_ONE;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_pair_of_segments_holding_digits_is_false() {
let decides = ImportPath::decides_order("use wire::alpha2;", "use wire::zeta2;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_pair_of_uppercase_segments_is_false() {
let decides = ImportPath::decides_order("use syn::Item;", "use syn::Type;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_pair_with_a_crate_path_is_true() {
let decides = ImportPath::decides_order("use anyhow::Result;", "use crate::support::Thing;");
assert!(decides);
}
#[test]
fn decides_order_of_a_path_extended_by_a_brace_group_is_true() {
let decides = ImportPath::decides_order("use aaa::bbb;", "use aaa::bbb::{ccc, Ddd};");
assert!(decides);
}
#[test]
fn decides_order_of_a_path_extended_by_a_glob_is_true() {
let decides = ImportPath::decides_order("use hhh::iii;", "use hhh::iii::*;");
assert!(decides);
}
#[test]
fn decides_order_of_a_path_extended_by_a_group_opened_on_the_line_is_true() {
let decides = ImportPath::decides_order("use xxx::yyy;", "use xxx::yyy::{");
assert!(decides);
}
#[test]
fn decides_order_of_a_path_extended_by_a_lowercase_segment_is_true() {
let decides = ImportPath::decides_order("use aaa::bbb;", "use aaa::bbb::ccc;");
assert!(decides);
}
#[test]
fn decides_order_of_a_path_extended_by_an_uppercase_segment_is_true() {
let decides = ImportPath::decides_order("use alloc::vec;", "use alloc::vec::Vec;");
assert!(decides);
}
#[test]
fn decides_order_of_a_renamed_path_beside_a_longer_one_is_false() {
let decides = ImportPath::decides_order("use ddd::eee as ggg;", "use ddd::eee::fff;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_renamed_path_beside_its_bare_form_is_false() {
let decides = ImportPath::decides_order("use aaa::bbb as ccc;", "use aaa::bbb;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_screaming_case_segment_beside_a_camel_case_one_is_true() {
let decides = ImportPath::decides_order(
"use wal_record::WAL_V2_MAGIC;",
"use wal_record::WalRecord;",
);
assert!(decides);
}
#[test]
fn decides_order_of_two_identical_paths_is_false() {
let decides = ImportPath::decides_order("use aaa::bbb;", "use aaa::bbb;");
assert!(!decides);
}
#[test]
fn is_ordered_of_a_pair_whose_first_path_prefixes_the_second_is_true() {
let ordered = ImportPath::is_ordered("use aaa::select::select;", "use aaa::select::select4;");
assert!(ordered);
}
#[test]
fn is_ordered_of_a_pair_whose_second_path_prefixes_the_first_is_false() {
let ordered = ImportPath::is_ordered("use aaa::select::select4;", "use aaa::select::select;");
assert!(!ordered);
}
#[test]
fn is_ordered_of_a_re_export_after_an_import_it_sorts_behind_is_true() {
let ordered = ImportPath::is_ordered("use aaa::Alpha;", "pub use zzz::Zed;");
assert!(ordered);
}
#[test]
fn is_ordered_of_a_re_export_before_an_import_it_sorts_behind_is_false() {
let ordered = ImportPath::is_ordered("use zzz::Zed;", "pub use aaa::Alpha;");
assert!(!ordered);
}
#[test]
fn is_ordered_of_an_identical_pair_is_true() {
let ordered = ImportPath::is_ordered("use aaa::Alpha;", "use aaa::Alpha;");
assert!(ordered);
}
#[test]
fn is_specially_ordered_of_a_crate_path_is_true() {
let special = ImportPath::is_specially_ordered("use crate::support::builders::a_widget;");
assert!(special);
}
#[test]
fn is_specially_ordered_of_a_path_named_crateful_is_false() {
let special = ImportPath::is_specially_ordered("use crateful::Thing;");
assert!(!special);
}
#[test]
fn is_specially_ordered_of_a_pub_use_is_judged_on_its_path() {
let special = ImportPath::is_specially_ordered("pub use crate::support::Thing;");
assert!(special);
}
#[test]
fn is_specially_ordered_of_a_self_path_is_true() {
let special = ImportPath::is_specially_ordered("use self::inner::Thing;");
assert!(special);
}
#[test]
fn is_specially_ordered_of_a_std_path_is_false() {
let special = ImportPath::is_specially_ordered("use std::path::PathBuf;");
assert!(!special);
}
#[test]
fn is_specially_ordered_of_a_super_path_is_true() {
let special = ImportPath::is_specially_ordered("use super::Parent;");
assert!(special);
}
#[test]
fn is_specially_ordered_of_an_ordinary_path_is_false() {
let special = ImportPath::is_specially_ordered("use anyhow::Result;");
assert!(!special);
}
#[test]
fn is_specially_ordered_of_an_uppercase_path_is_true() {
let special = ImportPath::is_specially_ordered("use Uppercase::Thing;");
assert!(special);
}