use std::path::PathBuf;
fn fixture_dir() -> PathBuf {
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/testdata/hocon/byte-single-letter")
}
fn load(stem: &str) -> hocon::Config {
let path = fixture_dir().join(format!("{}.conf", stem));
hocon::parse_file(&path).unwrap_or_else(|e| panic!("failed to load {}: {}", stem, e))
}
#[test]
fn bsl01_bare_k_uppercase_is_1024() {
let cfg = load("bsl01-1K");
assert_eq!(
cfg.get_bytes("b").unwrap(),
1024,
"bsl01: '1K' must yield 1024 bytes (K=2^10, HOCON.md L1385)"
);
}
#[test]
fn bsl02_bare_k_lowercase_is_1024() {
let cfg = load("bsl02-1k");
assert_eq!(
cfg.get_bytes("b").unwrap(),
1024,
"bsl02: '1k' must yield 1024 bytes (k=2^10)"
);
}
#[test]
fn bsl03_bare_m_is_1048576() {
let cfg = load("bsl03-1M");
assert_eq!(
cfg.get_bytes("b").unwrap(),
1_048_576,
"bsl03: '1M' must yield 1_048_576 bytes (M=2^20)"
);
}
#[test]
fn bsl04_bare_g_is_1073741824() {
let cfg = load("bsl04-1G");
assert_eq!(
cfg.get_bytes("b").unwrap(),
1_073_741_824,
"bsl04: '1G' must yield 1_073_741_824 bytes (G=2^30)"
);
}
#[test]
fn bsl05_bare_t_is_1099511627776() {
let cfg = load("bsl05-1T");
assert_eq!(
cfg.get_bytes("b").unwrap(),
1_099_511_627_776,
"bsl05: '1T' must yield 1_099_511_627_776 bytes (T=2^40)"
);
}
#[test]
fn bsl06_bare_p_is_1125899906842624() {
let cfg = load("bsl06-1P");
assert_eq!(
cfg.get_bytes("b").unwrap(),
1_125_899_906_842_624,
"bsl06: '1P' must yield 1_125_899_906_842_624 bytes (P=2^50)"
);
}
#[test]
fn bsl07_bare_e_is_1152921504606846976() {
let cfg = load("bsl07-1E");
assert_eq!(
cfg.get_bytes("b").unwrap(),
1_152_921_504_606_846_976,
"bsl07: '1E' must yield 1_152_921_504_606_846_976 bytes (E=2^60)"
);
}
#[test]
fn bsl08_multiplier_1024k_is_1048576() {
let cfg = load("bsl08-1024K");
assert_eq!(
cfg.get_bytes("b").unwrap(),
1_048_576,
"bsl08: '1024K' must yield 1_048_576 bytes (K=1024 binary, Lightbend ground truth)"
);
}
#[test]
fn bsl09_fractional_k_is_512() {
let cfg = load("bsl09-05K");
assert_eq!(
cfg.get_bytes("b").unwrap(),
512,
"bsl09: '0.5K' must yield 512 bytes (0.5 × 1024)"
);
}