use pvlib::transformer::*;
#[test]
fn test_simple_efficiency_no_losses() {
let out = simple_efficiency(500.0, 1000.0, 0.0, 0.0);
assert!((out - 500.0).abs() < 1e-6, "Zero losses: output should equal input, got {}", out);
}
#[test]
fn test_simple_efficiency_with_losses() {
let out = simple_efficiency(1000.0, 1000.0, 0.01, 0.01);
assert!(out < 1000.0, "Should have losses, got {}", out);
assert!(out > 900.0, "Losses shouldn't be extreme, got {}", out);
}
#[test]
fn test_simple_efficiency_scales() {
let out1 = simple_efficiency(500.0, 1000.0, 0.01, 0.01);
let out2 = simple_efficiency(800.0, 1000.0, 0.01, 0.01);
assert!(out2 > out1, "Higher input should give higher output");
}
#[test]
fn test_simple_efficiency_no_load_loss_constant() {
let out_low = simple_efficiency(100.0, 1000.0, 0.02, 0.0);
let out_high = simple_efficiency(900.0, 1000.0, 0.02, 0.0);
let loss_low = 100.0 - out_low;
let loss_high = 900.0 - out_high;
assert!(
(loss_low - loss_high).abs() < 50.0,
"No-load losses should be roughly constant: {} vs {}",
loss_low, loss_high
);
}