aixm 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +96 -72
  4. data/README.md +0 -1
  5. data/lib/aixm/component/geometry.rb +8 -2
  6. data/lib/aixm/component/layer.rb +83 -2
  7. data/lib/aixm/document.rb +11 -2
  8. data/lib/aixm/errors.rb +14 -2
  9. data/lib/aixm/feature.rb +2 -14
  10. data/lib/aixm/feature/airport.rb +19 -18
  11. data/lib/aixm/feature/airspace.rb +19 -21
  12. data/lib/aixm/feature/navigational_aid.rb +2 -2
  13. data/lib/aixm/feature/navigational_aid/designated_point.rb +1 -2
  14. data/lib/aixm/feature/navigational_aid/dme.rb +25 -4
  15. data/lib/aixm/feature/navigational_aid/marker.rb +1 -2
  16. data/lib/aixm/feature/navigational_aid/ndb.rb +1 -2
  17. data/lib/aixm/feature/navigational_aid/tacan.rb +5 -2
  18. data/lib/aixm/feature/navigational_aid/vor.rb +3 -4
  19. data/lib/aixm/feature/organisation.rb +3 -4
  20. data/lib/aixm/feature/unit.rb +3 -4
  21. data/lib/aixm/version.rb +1 -1
  22. data/schemas/ofmx/0/OFMX-CSV-Obstacle.json +209 -0
  23. data/schemas/ofmx/0/OFMX-CSV.json +12 -0
  24. data/schemas/ofmx/0/OFMX-DataTypes.xsd +64 -5
  25. data/schemas/ofmx/0/OFMX-Features.xsd +73 -23
  26. data/schemas/ofmx/0/OFMX-Snapshot.xsd +7 -2
  27. data/spec/factory.rb +8 -18
  28. data/spec/lib/aixm/component/geometry_spec.rb +27 -4
  29. data/spec/lib/aixm/component/helipad_spec.rb +2 -2
  30. data/spec/lib/aixm/component/layer_spec.rb +27 -0
  31. data/spec/lib/aixm/component/runway_spec.rb +13 -13
  32. data/spec/lib/aixm/document_spec.rb +56 -42
  33. data/spec/lib/aixm/feature/airport_spec.rb +15 -15
  34. data/spec/lib/aixm/feature/airspace_spec.rb +38 -30
  35. data/spec/lib/aixm/feature/navigational_aid/designated_point_spec.rb +2 -2
  36. data/spec/lib/aixm/feature/navigational_aid/dme_spec.rb +24 -7
  37. data/spec/lib/aixm/feature/navigational_aid/marker_spec.rb +4 -4
  38. data/spec/lib/aixm/feature/navigational_aid/ndb_spec.rb +4 -4
  39. data/spec/lib/aixm/feature/navigational_aid/tacan_spec.rb +24 -7
  40. data/spec/lib/aixm/feature/navigational_aid/vor_spec.rb +14 -14
  41. data/spec/lib/aixm/feature/organisation_spec.rb +2 -2
  42. data/spec/lib/aixm/feature/unit_spec.rb +11 -11
  43. data/spec/lib/aixm/feature_spec.rb +0 -20
  44. metadata +4 -2
@@ -9,7 +9,7 @@ describe AIXM::Feature::Airport do
9
9
  it "sets defaults" do
10
10
  subject = AIXM::Feature::Airport.new(
11
11
  organisation: AIXM::Factory.organisation,
12
- code: 'LFNT',
12
+ id: 'LFNT',
13
13
  name: 'Avignon-Pujaut',
14
14
  xy: AIXM.xy(lat: %q(43°59'46"N), long: %q(004°45'16"E))
15
15
  )
@@ -25,13 +25,13 @@ describe AIXM::Feature::Airport do
25
25
  end
26
26
  end
27
27
 
28
- describe :code= do
28
+ describe :id= do
29
29
  it "fails on invalid values" do
30
- [nil, 'A', 'AB', 'ABCDE', 'AB12345'].wont_be_written_to subject, :code
30
+ [nil, 'A', 'AB', 'ABCDE', 'AB 1234'].wont_be_written_to subject, :id
31
31
  end
32
32
 
33
33
  it "upcases valid values" do
34
- subject.tap { |s| s.code = 'lfnt' }.code.must_equal 'LFNT'
34
+ subject.tap { |s| s.id = 'lfnt' }.id.must_equal 'LFNT'
35
35
  end
36
36
  end
37
37
 
@@ -184,10 +184,10 @@ describe AIXM::Feature::Airport do
184
184
  subject.to_xml.must_equal <<~END
185
185
  <!-- Airport: LFNT AVIGNON-PUJAUT -->
186
186
  <Ahp source="LF|GEN|0.0 FACTORY|0|0">
187
- <AhpUid region="LF">
187
+ <AhpUid>
188
188
  <codeId>LFNT</codeId>
189
189
  </AhpUid>
190
- <OrgUid region="LF">
190
+ <OrgUid>
191
191
  <txtName>FRANCE</txtName>
192
192
  </OrgUid>
193
193
  <txtName>AVIGNON-PUJAUT</txtName>
@@ -206,7 +206,7 @@ describe AIXM::Feature::Airport do
206
206
  </Ahp>
207
207
  <Rwy>
208
208
  <RwyUid>
209
- <AhpUid region="LF">
209
+ <AhpUid>
210
210
  <codeId>LFNT</codeId>
211
211
  </AhpUid>
212
212
  <txtDesig>16L/34R</txtDesig>
@@ -221,7 +221,7 @@ describe AIXM::Feature::Airport do
221
221
  <Rdn>
222
222
  <RdnUid>
223
223
  <RwyUid>
224
- <AhpUid region="LF">
224
+ <AhpUid>
225
225
  <codeId>LFNT</codeId>
226
226
  </AhpUid>
227
227
  <txtDesig>16L/34R</txtDesig>
@@ -240,7 +240,7 @@ describe AIXM::Feature::Airport do
240
240
  <RddUid>
241
241
  <RdnUid>
242
242
  <RwyUid>
243
- <AhpUid region="LF">
243
+ <AhpUid>
244
244
  <codeId>LFNT</codeId>
245
245
  </AhpUid>
246
246
  <txtDesig>16L/34R</txtDesig>
@@ -257,7 +257,7 @@ describe AIXM::Feature::Airport do
257
257
  <Rdn>
258
258
  <RdnUid>
259
259
  <RwyUid>
260
- <AhpUid region="LF">
260
+ <AhpUid>
261
261
  <codeId>LFNT</codeId>
262
262
  </AhpUid>
263
263
  <txtDesig>16L/34R</txtDesig>
@@ -274,7 +274,7 @@ describe AIXM::Feature::Airport do
274
274
  <RddUid>
275
275
  <RdnUid>
276
276
  <RwyUid>
277
- <AhpUid region="LF">
277
+ <AhpUid>
278
278
  <codeId>LFNT</codeId>
279
279
  </AhpUid>
280
280
  <txtDesig>16L/34R</txtDesig>
@@ -290,7 +290,7 @@ describe AIXM::Feature::Airport do
290
290
  </Rdd>
291
291
  <Tla>
292
292
  <TlaUid>
293
- <AhpUid region=\"LF\">
293
+ <AhpUid>
294
294
  <codeId>LFNT</codeId>
295
295
  </AhpUid>
296
296
  <txtDesig>H1</txtDesig>
@@ -309,7 +309,7 @@ describe AIXM::Feature::Airport do
309
309
  </Tla>
310
310
  <Ahu>
311
311
  <AhuUid>
312
- <AhpUid region="LF">
312
+ <AhpUid>
313
313
  <codeId>LFNT</codeId>
314
314
  </AhpUid>
315
315
  </AhuUid>
@@ -346,10 +346,10 @@ describe AIXM::Feature::Airport do
346
346
  subject.to_xml.must_equal <<~END
347
347
  <!-- Airport: LFNT AVIGNON-PUJAUT -->
348
348
  <Ahp source="LF|GEN|0.0 FACTORY|0|0">
349
- <AhpUid region="LF">
349
+ <AhpUid>
350
350
  <codeId>LFNT</codeId>
351
351
  </AhpUid>
352
- <OrgUid region="LF">
352
+ <OrgUid>
353
353
  <txtName>FRANCE</txtName>
354
354
  </OrgUid>
355
355
  <txtName>AVIGNON-PUJAUT</txtName>
@@ -9,7 +9,7 @@ describe AIXM::Feature::Airspace do
9
9
 
10
10
  describe :initialize do
11
11
  it "sets defaults" do
12
- subject.id.must_equal '22E2F734'
12
+ subject.id.must_equal 'C55466EC'
13
13
  subject.layers.must_equal []
14
14
  subject.geometry.must_be_instance_of AIXM::Component::Geometry
15
15
  end
@@ -20,8 +20,8 @@ describe AIXM::Feature::Airspace do
20
20
  [:foobar, 123].wont_be_written_to subject, :id
21
21
  end
22
22
 
23
- it "falls back to id derived from digest of id, name and short_name" do
24
- subject.tap { |s| s.id = nil }.id.must_equal '22E2F734'
23
+ it "falls back to id derived from digest of type, local_type and name" do
24
+ subject.tap { |s| s.id = nil }.id.must_equal 'C55466EC'
25
25
  end
26
26
 
27
27
  it "upcases value" do
@@ -40,31 +40,31 @@ describe AIXM::Feature::Airspace do
40
40
  end
41
41
  end
42
42
 
43
- describe :name= do
43
+ describe :local_type= do
44
44
  it "fails on invalid values" do
45
- [:foobar, 123].wont_be_written_to subject, :name
45
+ [:foobar, 123].wont_be_written_to subject, :local_type
46
46
  end
47
47
 
48
48
  it "accepts nil value" do
49
- [nil].must_be_written_to subject, :name
49
+ [nil].must_be_written_to subject, :local_type
50
50
  end
51
51
 
52
52
  it "upcases value" do
53
- subject.tap { |s| s.name = 'löl' }.name.must_equal 'LOEL'
53
+ subject.tap { |s| s.local_type = 'löl' }.local_type.must_equal 'LOEL'
54
54
  end
55
55
  end
56
56
 
57
- describe :short_name= do
57
+ describe :name= do
58
58
  it "fails on invalid values" do
59
- [:foobar, 123].wont_be_written_to subject, :short_name
59
+ [:foobar, 123].wont_be_written_to subject, :name
60
60
  end
61
61
 
62
62
  it "accepts nil value" do
63
- [nil].must_be_written_to subject, :short_name
63
+ [nil].must_be_written_to subject, :name
64
64
  end
65
65
 
66
66
  it "upcases value" do
67
- subject.tap { |s| s.short_name = 'löl' }.short_name.must_equal 'LOEL'
67
+ subject.tap { |s| s.name = 'löl' }.name.must_equal 'LOEL'
68
68
  end
69
69
  end
70
70
 
@@ -99,7 +99,7 @@ describe AIXM::Feature::Airspace do
99
99
  describe :to_xml do
100
100
  it "builds correct AIXM without id" do
101
101
  AIXM.aixm!
102
- subject.to_xml.must_match(%r{<codeId>22E2F734</codeId>})
102
+ subject.to_xml.must_match(%r{<codeId>C55466EC</codeId>})
103
103
  end
104
104
 
105
105
  it "builds correct AIXM without short name" do
@@ -125,13 +125,15 @@ describe AIXM::Feature::Airspace do
125
125
  subject.to_xml.must_equal <<~"END"
126
126
  <!-- Airspace: [D] POLYGON AIRSPACE -->
127
127
  <Ase source="LF|GEN|0.0 FACTORY|0|0">
128
- <AseUid region="LF">
128
+ <AseUid>
129
129
  <codeType>D</codeType>
130
130
  <codeId>PA</codeId>
131
131
  </AseUid>
132
132
  <txtLocalType>POLYGON</txtLocalType>
133
133
  <txtName>POLYGON AIRSPACE</txtName>
134
134
  <codeClass>C</codeClass>
135
+ <codeLocInd>XXXX</codeLocInd>
136
+ <codeActivity>TFC-AD</codeActivity>
135
137
  <codeDistVerUpper>STD</codeDistVerUpper>
136
138
  <valDistVerUpper>65</valDistVerUpper>
137
139
  <uomDistVerUpper>FL</uomDistVerUpper>
@@ -152,7 +154,7 @@ describe AIXM::Feature::Airspace do
152
154
  </Ase>
153
155
  <Abd>
154
156
  <AbdUid>
155
- <AseUid region="LF">
157
+ <AseUid>
156
158
  <codeType>D</codeType>
157
159
  <codeId>PA</codeId>
158
160
  </AseUid>
@@ -186,15 +188,17 @@ describe AIXM::Feature::Airspace do
186
188
 
187
189
  it "builds correct minimal OFMX" do
188
190
  AIXM.ofmx!
189
- subject.short_name = subject.name = nil
191
+ subject.local_type = subject.name = nil
190
192
  subject.to_xml.must_equal <<~"END"
191
193
  <!-- Airspace: [D] UNNAMED -->
192
194
  <Ase source="LF|GEN|0.0 FACTORY|0|0">
193
- <AseUid region="LF">
195
+ <AseUid>
194
196
  <codeType>D</codeType>
195
197
  <codeId>PA</codeId>
196
198
  </AseUid>
197
199
  <codeClass>C</codeClass>
200
+ <codeLocInd>XXXX</codeLocInd>
201
+ <codeActivity>TFC-AD</codeActivity>
198
202
  <codeDistVerUpper>STD</codeDistVerUpper>
199
203
  <valDistVerUpper>65</valDistVerUpper>
200
204
  <uomDistVerUpper>FL</uomDistVerUpper>
@@ -215,7 +219,7 @@ describe AIXM::Feature::Airspace do
215
219
  </Ase>
216
220
  <Abd>
217
221
  <AbdUid>
218
- <AseUid region="LF">
222
+ <AseUid>
219
223
  <codeType>D</codeType>
220
224
  <codeId>PA</codeId>
221
225
  </AseUid>
@@ -261,8 +265,8 @@ describe AIXM::Feature::Airspace do
261
265
  AIXM.ofmx!
262
266
  subject.to_xml.must_equal <<~"END"
263
267
  <!-- Airspace: [D] POLYGON AIRSPACE -->
264
- <Ase source="LF|GEN|0.0 FACTORY|0|0" classLayers="2">
265
- <AseUid region="LF">
268
+ <Ase source="LF|GEN|0.0 FACTORY|0|0">
269
+ <AseUid>
266
270
  <codeType>D</codeType>
267
271
  <codeId>PA</codeId>
268
272
  </AseUid>
@@ -271,7 +275,7 @@ describe AIXM::Feature::Airspace do
271
275
  </Ase>
272
276
  <Abd>
273
277
  <AbdUid>
274
- <AseUid region="LF">
278
+ <AseUid>
275
279
  <codeType>D</codeType>
276
280
  <codeId>PA</codeId>
277
281
  </AseUid>
@@ -301,12 +305,14 @@ describe AIXM::Feature::Airspace do
301
305
  </Avx>
302
306
  </Abd>
303
307
  <Ase>
304
- <AseUid region="LF">
308
+ <AseUid>
305
309
  <codeType>CLASS</codeType>
306
- <codeId>522496D6</codeId>
310
+ <codeId>B794588D</codeId>
307
311
  </AseUid>
308
312
  <txtName>POLYGON AIRSPACE LAYER 1</txtName>
309
313
  <codeClass>C</codeClass>
314
+ <codeLocInd>XXXX</codeLocInd>
315
+ <codeActivity>TFC-AD</codeActivity>
310
316
  <codeDistVerUpper>STD</codeDistVerUpper>
311
317
  <valDistVerUpper>65</valDistVerUpper>
312
318
  <uomDistVerUpper>FL</uomDistVerUpper>
@@ -327,23 +333,25 @@ describe AIXM::Feature::Airspace do
327
333
  </Ase>
328
334
  <Adg>
329
335
  <AdgUid>
330
- <AseUid region="LF">
336
+ <AseUid>
331
337
  <codeType>CLASS</codeType>
332
- <codeId>522496D6</codeId>
338
+ <codeId>B794588D</codeId>
333
339
  </AseUid>
334
340
  </AdgUid>
335
- <AseUidSameExtent region="LF">
341
+ <AseUidSameExtent>
336
342
  <codeType>D</codeType>
337
343
  <codeId>PA</codeId>
338
344
  </AseUidSameExtent>
339
345
  </Adg>
340
346
  <Ase>
341
- <AseUid region="LF">
347
+ <AseUid>
342
348
  <codeType>CLASS</codeType>
343
- <codeId>CAA85949</codeId>
349
+ <codeId>64589EAF</codeId>
344
350
  </AseUid>
345
351
  <txtName>POLYGON AIRSPACE LAYER 2</txtName>
346
352
  <codeClass>C</codeClass>
353
+ <codeLocInd>XXXX</codeLocInd>
354
+ <codeActivity>TFC-AD</codeActivity>
347
355
  <codeDistVerUpper>STD</codeDistVerUpper>
348
356
  <valDistVerUpper>65</valDistVerUpper>
349
357
  <uomDistVerUpper>FL</uomDistVerUpper>
@@ -364,12 +372,12 @@ describe AIXM::Feature::Airspace do
364
372
  </Ase>
365
373
  <Adg>
366
374
  <AdgUid>
367
- <AseUid region="LF">
375
+ <AseUid>
368
376
  <codeType>CLASS</codeType>
369
- <codeId>CAA85949</codeId>
377
+ <codeId>64589EAF</codeId>
370
378
  </AseUid>
371
379
  </AdgUid>
372
- <AseUidSameExtent region="LF">
380
+ <AseUidSameExtent>
373
381
  <codeType>D</codeType>
374
382
  <codeId>PA</codeId>
375
383
  </AseUidSameExtent>
@@ -28,7 +28,7 @@ describe AIXM::Feature::NavigationalAid::DesignatedPoint do
28
28
  subject.to_xml.must_equal <<~END
29
29
  <!-- NavigationalAid: [DesignatedPoint:ICAO] DESIGNATED POINT NAVAID -->
30
30
  <Dpn source="LF|GEN|0.0 FACTORY|0|0">
31
- <DpnUid region="LF">
31
+ <DpnUid>
32
32
  <codeId>DDD</codeId>
33
33
  <geoLat>47.85916667N</geoLat>
34
34
  <geoLong>007.56000000E</geoLong>
@@ -47,7 +47,7 @@ describe AIXM::Feature::NavigationalAid::DesignatedPoint do
47
47
  subject.to_xml.must_equal <<~END
48
48
  <!-- NavigationalAid: [DesignatedPoint:ICAO] UNNAMED -->
49
49
  <Dpn source="LF|GEN|0.0 FACTORY|0|0">
50
- <DpnUid region="LF">
50
+ <DpnUid>
51
51
  <codeId>DDD</codeId>
52
52
  <geoLat>47.85916667N</geoLat>
53
53
  <geoLong>007.56000000E</geoLong>
@@ -11,11 +11,24 @@ describe AIXM::Feature::NavigationalAid::DME do
11
11
 
12
12
  describe :channel= do
13
13
  it "fails on invalid values" do
14
- [nil, :foobar, 123].wont_be_written_to subject, :channel
14
+ [nil, :foobar, 123, '0X', '127Y', '12Z'].wont_be_written_to subject, :channel
15
15
  end
16
+ end
16
17
 
17
- it "upcases value" do
18
- subject.tap { |s| s.channel = '3x' }.channel.must_equal '3X'
18
+ describe :ghost_f do
19
+ it "must be derived from the channel" do
20
+ subject.tap { |s| s.channel = '1X' }.ghost_f.freq.must_equal 134.4
21
+ subject.tap { |s| s.channel = '12Y' }.ghost_f.freq.must_equal 135.55
22
+ subject.tap { |s| s.channel = '16Y' }.ghost_f.freq.must_equal 135.95
23
+ subject.tap { |s| s.channel = '17X' }.ghost_f.freq.must_equal 108
24
+ subject.tap { |s| s.channel = '30X' }.ghost_f.freq.must_equal 109.3
25
+ subject.tap { |s| s.channel = '59Y' }.ghost_f.freq.must_equal 112.25
26
+ subject.tap { |s| s.channel = '60X' }.ghost_f.freq.must_equal 133.3
27
+ subject.tap { |s| s.channel = '64Y' }.ghost_f.freq.must_equal 133.75
28
+ subject.tap { |s| s.channel = '69Y' }.ghost_f.freq.must_equal 134.25
29
+ subject.tap { |s| s.channel = '70X' }.ghost_f.freq.must_equal 112.30
30
+ subject.tap { |s| s.channel = '100X' }.ghost_f.freq.must_equal 115.3
31
+ subject.tap { |s| s.channel = '126Y' }.ghost_f.freq.must_equal 117.95
19
32
  end
20
33
  end
21
34
 
@@ -31,16 +44,18 @@ describe AIXM::Feature::NavigationalAid::DME do
31
44
  subject.to_xml.must_equal <<~END
32
45
  <!-- NavigationalAid: [DME] DME NAVAID -->
33
46
  <Dme source="LF|GEN|0.0 FACTORY|0|0">
34
- <DmeUid region="LF">
47
+ <DmeUid>
35
48
  <codeId>MMM</codeId>
36
49
  <geoLat>47.85916667N</geoLat>
37
50
  <geoLong>007.56000000E</geoLong>
38
51
  </DmeUid>
39
- <OrgUid region=\"LF\">
52
+ <OrgUid>
40
53
  <txtName>FRANCE</txtName>
41
54
  </OrgUid>
42
55
  <txtName>DME NAVAID</txtName>
43
56
  <codeChannel>95X</codeChannel>
57
+ <valGhostFreq>114.8</valGhostFreq>
58
+ <uomGhostFreq>MHZ</uomGhostFreq>
44
59
  <codeDatum>WGE</codeDatum>
45
60
  <valElev>500</valElev>
46
61
  <uomDistVer>FT</uomDistVer>
@@ -58,15 +73,17 @@ describe AIXM::Feature::NavigationalAid::DME do
58
73
  subject.to_xml.must_equal <<~END
59
74
  <!-- NavigationalAid: [DME] UNNAMED -->
60
75
  <Dme source="LF|GEN|0.0 FACTORY|0|0">
61
- <DmeUid region="LF">
76
+ <DmeUid>
62
77
  <codeId>MMM</codeId>
63
78
  <geoLat>47.85916667N</geoLat>
64
79
  <geoLong>007.56000000E</geoLong>
65
80
  </DmeUid>
66
- <OrgUid region=\"LF\">
81
+ <OrgUid>
67
82
  <txtName>FRANCE</txtName>
68
83
  </OrgUid>
69
84
  <codeChannel>95X</codeChannel>
85
+ <valGhostFreq>114.8</valGhostFreq>
86
+ <uomGhostFreq>MHZ</uomGhostFreq>
70
87
  <codeDatum>WGE</codeDatum>
71
88
  </Dme>
72
89
  END
@@ -32,12 +32,12 @@ describe AIXM::Feature::NavigationalAid::Marker do
32
32
  subject.to_xml.must_equal <<~END
33
33
  <!-- NavigationalAid: [Marker:O] MARKER NAVAID -->
34
34
  <Mkr source="LF|GEN|0.0 FACTORY|0|0">
35
- <MkrUid region="LF">
35
+ <MkrUid>
36
36
  <codeId>---</codeId>
37
37
  <geoLat>47.85916667N</geoLat>
38
38
  <geoLong>007.56000000E</geoLong>
39
39
  </MkrUid>
40
- <OrgUid region="LF">
40
+ <OrgUid>
41
41
  <txtName>FRANCE</txtName>
42
42
  </OrgUid>
43
43
  <codePsnIls>O</codePsnIls>
@@ -61,12 +61,12 @@ describe AIXM::Feature::NavigationalAid::Marker do
61
61
  subject.to_xml.must_equal <<~END
62
62
  <!-- NavigationalAid: [Marker] UNNAMED -->
63
63
  <Mkr source="LF|GEN|0.0 FACTORY|0|0">
64
- <MkrUid region="LF">
64
+ <MkrUid>
65
65
  <codeId>---</codeId>
66
66
  <geoLat>47.85916667N</geoLat>
67
67
  <geoLong>007.56000000E</geoLong>
68
68
  </MkrUid>
69
- <OrgUid region="LF">
69
+ <OrgUid>
70
70
  <txtName>FRANCE</txtName>
71
71
  </OrgUid>
72
72
  <valFreq>75</valFreq>
@@ -42,12 +42,12 @@ describe AIXM::Feature::NavigationalAid::NDB do
42
42
  subject.to_xml.must_equal <<~END
43
43
  <!-- NavigationalAid: [NDB:B] NDB NAVAID -->
44
44
  <Ndb source="LF|GEN|0.0 FACTORY|0|0">
45
- <NdbUid region="LF">
45
+ <NdbUid>
46
46
  <codeId>NNN</codeId>
47
47
  <geoLat>47.85916667N</geoLat>
48
48
  <geoLong>007.56000000E</geoLong>
49
49
  </NdbUid>
50
- <OrgUid region="LF">
50
+ <OrgUid>
51
51
  <txtName>FRANCE</txtName>
52
52
  </OrgUid>
53
53
  <txtName>NDB NAVAID</txtName>
@@ -71,12 +71,12 @@ describe AIXM::Feature::NavigationalAid::NDB do
71
71
  subject.to_xml.must_equal <<~END
72
72
  <!-- NavigationalAid: [NDB] UNNAMED -->
73
73
  <Ndb source="LF|GEN|0.0 FACTORY|0|0">
74
- <NdbUid region="LF">
74
+ <NdbUid>
75
75
  <codeId>NNN</codeId>
76
76
  <geoLat>47.85916667N</geoLat>
77
77
  <geoLong>007.56000000E</geoLong>
78
78
  </NdbUid>
79
- <OrgUid region="LF">
79
+ <OrgUid>
80
80
  <txtName>FRANCE</txtName>
81
81
  </OrgUid>
82
82
  <valFreq>555</valFreq>