prop/test/microwaveprop/rover/link_margin_test.exs

37 lines
923 B
Elixir

defmodule Microwaveprop.Rover.LinkMarginTest do
use ExUnit.Case, async: true
alias Microwaveprop.Rover.LinkMargin
describe "score_to_db/1" do
test "0 maps to -25.0 dB" do
assert LinkMargin.score_to_db(0) == -25.0
end
test "50 maps to 0.0 dB" do
assert LinkMargin.score_to_db(50) == 0.0
end
test "100 maps to 25.0 dB" do
assert LinkMargin.score_to_db(100) == 25.0
end
test "nil maps to nil" do
assert LinkMargin.score_to_db(nil) == nil
end
end
describe "link_margin_from_score/2" do
test "score 80 in :ssb mode = 15.0 dB" do
assert LinkMargin.link_margin_from_score(80, :ssb) == 15.0
end
test "score 50 in :cw mode = 18.0 dB (0 - (-18))" do
assert LinkMargin.link_margin_from_score(50, :cw) == 18.0
end
test "nil score returns nil" do
assert LinkMargin.link_margin_from_score(nil, :ssb) == nil
end
end
end