require_relative '../../../../spec_helper'
describe AIXM::Feature::NavigationalAid::TACAN do
subject do
AIXM::Factory.tacan
end
describe :channel= do
it "fails on invalid values" do
[nil, :foobar, 123, '0X', '127Y', '12Z'].wont_be_written_to subject, :channel
end
end
describe :ghost_f do
it "must be derived from the channel" do
subject.tap { |s| s.channel = '1X' }.ghost_f.freq.must_equal 134.4
subject.tap { |s| s.channel = '12Y' }.ghost_f.freq.must_equal 135.55
subject.tap { |s| s.channel = '16Y' }.ghost_f.freq.must_equal 135.95
subject.tap { |s| s.channel = '17X' }.ghost_f.freq.must_equal 108
subject.tap { |s| s.channel = '30X' }.ghost_f.freq.must_equal 109.3
subject.tap { |s| s.channel = '59Y' }.ghost_f.freq.must_equal 112.25
subject.tap { |s| s.channel = '60X' }.ghost_f.freq.must_equal 133.3
subject.tap { |s| s.channel = '64Y' }.ghost_f.freq.must_equal 133.75
subject.tap { |s| s.channel = '69Y' }.ghost_f.freq.must_equal 134.25
subject.tap { |s| s.channel = '70X' }.ghost_f.freq.must_equal 112.30
subject.tap { |s| s.channel = '100X' }.ghost_f.freq.must_equal 115.3
subject.tap { |s| s.channel = '126Y' }.ghost_f.freq.must_equal 117.95
end
end
describe :kind do
it "must return class/type combo" do
subject.kind.must_equal "TACAN"
end
end
describe :to_xml do
it "builds correct complete OFMX" do
AIXM.ofmx!
subject.to_xml.must_equal <<~END
TTT
47.85916667N
007.56000000E
FRANCE
TACAN NAVAID
29X
109.2
MHZ
WGE
500
FT
H24
tacan navaid
END
end
it "builds correct minimal OFMX" do
AIXM.ofmx!
subject.name = subject.z = subject.timetable = subject.remarks = nil
subject.to_xml.must_equal <<~END
TTT
47.85916667N
007.56000000E
FRANCE
29X
109.2
MHZ
WGE
END
end
end
end