///|
fn main {
let data =
#|freq_hz,s11_db,s21_db
#|1000000000,-12.5,-1.2
#|2000000000,-18.3,-0.8
#|3000000000,-9.7,-1.5
let table = @csv.parse_table(data)
let profiles = @csv.profile_table(table)
let mut min_freq = 0.0
let mut max_freq = 0.0
let mut best_s11 = 0.0
let mut s21_sum = 0.0
for row_index in 0.. max_freq {
max_freq = freq
}
if row_index == 0 || s11 < best_s11 {
best_s11 = s11
}
s21_sum += s21
}
let avg_s21 = s21_sum / table.rows.length().to_double()
println("rows: \{table.rows.length()}")
println("frequency range: \{min_freq} Hz .. \{max_freq} Hz")
println("best S11: \{best_s11} dB")
println("average S21: \{avg_s21} dB")
println(
"freq_hz inferred type: \{@csv.inferred_type_name(profiles[0].inferred)}",
)
}
///|
fn parse_number(value : String) -> Double {
try @string.parse_double(value) catch {
_ => 0.0
} noraise {
number => number
}
}
///|