aixm 0.3.7 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.github/workflows/test.yml +26 -0
 - data/.ruby-version +1 -1
 - data/CHANGELOG.md +17 -4
 - data/README.md +23 -5
 - data/lib/aixm/component/fato.rb +3 -3
 - data/lib/aixm/component/frequency.rb +1 -1
 - data/lib/aixm/component/geometry/border.rb +9 -3
 - data/lib/aixm/component/helipad.rb +1 -1
 - data/lib/aixm/component/lighting.rb +1 -1
 - data/lib/aixm/component/runway.rb +4 -7
 - data/lib/aixm/config.rb +2 -1
 - data/lib/aixm/document.rb +1 -0
 - data/lib/aixm/feature/address.rb +1 -1
 - data/lib/aixm/feature/airport.rb +13 -4
 - data/lib/aixm/feature/airspace.rb +11 -8
 - data/lib/aixm/feature/navigational_aid/designated_point.rb +1 -1
 - data/lib/aixm/feature/navigational_aid/dme.rb +1 -1
 - data/lib/aixm/feature/navigational_aid/marker.rb +1 -1
 - data/lib/aixm/feature/navigational_aid/ndb.rb +1 -1
 - data/lib/aixm/feature/navigational_aid/tacan.rb +1 -1
 - data/lib/aixm/feature/navigational_aid/vor.rb +1 -1
 - data/lib/aixm/feature/obstacle.rb +1 -1
 - data/lib/aixm/feature/obstacle_group.rb +1 -1
 - data/lib/aixm/feature/organisation.rb +1 -1
 - data/lib/aixm/feature/service.rb +1 -1
 - data/lib/aixm/feature/unit.rb +1 -1
 - data/lib/aixm/refinements.rb +39 -8
 - data/lib/aixm/version.rb +1 -1
 - data/rakefile.rb +22 -8
 - data/spec/lib/aixm/a_spec.rb +55 -55
 - data/spec/lib/aixm/component/fato_spec.rb +30 -23
 - data/spec/lib/aixm/component/frequency_spec.rb +12 -13
 - data/spec/lib/aixm/component/geometry/arc_spec.rb +7 -9
 - data/spec/lib/aixm/component/geometry/border_spec.rb +8 -3
 - data/spec/lib/aixm/component/geometry/circle_spec.rb +6 -8
 - data/spec/lib/aixm/component/geometry/point_spec.rb +2 -4
 - data/spec/lib/aixm/component/geometry_spec.rb +57 -62
 - data/spec/lib/aixm/component/helipad_spec.rb +25 -19
 - data/spec/lib/aixm/component/layer_spec.rb +17 -19
 - data/spec/lib/aixm/component/lighting_spec.rb +21 -15
 - data/spec/lib/aixm/component/runway_spec.rb +44 -37
 - data/spec/lib/aixm/component/surface_spec.rb +24 -24
 - data/spec/lib/aixm/component/timetable_spec.rb +7 -9
 - data/spec/lib/aixm/component/vertical_limits_spec.rb +9 -12
 - data/spec/lib/aixm/config_spec.rb +8 -8
 - data/spec/lib/aixm/d_spec.rb +28 -28
 - data/spec/lib/aixm/document_spec.rb +46 -37
 - data/spec/lib/aixm/errors_spec.rb +2 -2
 - data/spec/lib/aixm/f_spec.rb +16 -16
 - data/spec/lib/aixm/feature/address_spec.rb +12 -7
 - data/spec/lib/aixm/feature/airport_spec.rb +80 -74
 - data/spec/lib/aixm/feature/airspace_spec.rb +32 -28
 - data/spec/lib/aixm/feature/navigational_aid/designated_point_spec.rb +16 -11
 - data/spec/lib/aixm/feature/navigational_aid/dme_spec.rb +22 -16
 - data/spec/lib/aixm/feature/navigational_aid/marker_spec.rb +13 -7
 - data/spec/lib/aixm/feature/navigational_aid/ndb_spec.rb +15 -9
 - data/spec/lib/aixm/feature/navigational_aid/tacan_spec.rb +22 -16
 - data/spec/lib/aixm/feature/navigational_aid/vor_spec.rb +21 -15
 - data/spec/lib/aixm/feature/navigational_aid_spec.rb +6 -6
 - data/spec/lib/aixm/feature/obstacle_group_spec.rb +25 -21
 - data/spec/lib/aixm/feature/obstacle_spec.rb +47 -42
 - data/spec/lib/aixm/feature/organisation_spec.rb +16 -10
 - data/spec/lib/aixm/feature/service_spec.rb +9 -9
 - data/spec/lib/aixm/feature/unit_spec.rb +21 -13
 - data/spec/lib/aixm/feature_spec.rb +5 -5
 - data/spec/lib/aixm/p_spec.rb +37 -37
 - data/spec/lib/aixm/refinements_spec.rb +164 -115
 - data/spec/lib/aixm/version_spec.rb +1 -1
 - data/spec/lib/aixm/w_spec.rb +28 -28
 - data/spec/lib/aixm/xy_spec.rb +34 -34
 - data/spec/lib/aixm/z_spec.rb +19 -19
 - data/spec/macros/marking.rb +3 -3
 - data/spec/macros/organisation.rb +2 -2
 - data/spec/macros/remarks.rb +3 -3
 - data/spec/macros/timetable.rb +2 -2
 - data/spec/macros/xy.rb +2 -2
 - data/spec/macros/z_qnh.rb +2 -2
 - data/spec/spec_helper.rb +7 -0
 - metadata +3 -3
 - data/.travis.yml +0 -8
 
| 
         @@ -8,46 +8,46 @@ describe AIXM::Feature::NavigationalAid::VOR do 
     | 
|
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                describe :type= do
         
     | 
| 
       10 
10 
     | 
    
         
             
                  it "fails on invalid values" do
         
     | 
| 
       11 
     | 
    
         
            -
                    [nil, :foobar, 123].wont_be_written_to subject, :type
         
     | 
| 
      
 11 
     | 
    
         
            +
                    _([nil, :foobar, 123]).wont_be_written_to subject, :type
         
     | 
| 
       12 
12 
     | 
    
         
             
                  end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                  it "looks up valid values" do
         
     | 
| 
       15 
     | 
    
         
            -
                    subject.tap { |s| s.type = :conventional }.type.must_equal :conventional
         
     | 
| 
       16 
     | 
    
         
            -
                    subject.tap { |s| s.type = :DVOR }.type.must_equal :doppler
         
     | 
| 
      
 15 
     | 
    
         
            +
                    _(subject.tap { |s| s.type = :conventional }.type).must_equal :conventional
         
     | 
| 
      
 16 
     | 
    
         
            +
                    _(subject.tap { |s| s.type = :DVOR }.type).must_equal :doppler
         
     | 
| 
       17 
17 
     | 
    
         
             
                  end
         
     | 
| 
       18 
18 
     | 
    
         
             
                end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
                describe :f= do
         
     | 
| 
       21 
21 
     | 
    
         
             
                  it "fails on invalid values" do
         
     | 
| 
       22 
     | 
    
         
            -
                    [nil, :foobar, 123].wont_be_written_to subject, :f
         
     | 
| 
      
 22 
     | 
    
         
            +
                    _([nil, :foobar, 123]).wont_be_written_to subject, :f
         
     | 
| 
       23 
23 
     | 
    
         
             
                  end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
                  it "accepts valid values" do
         
     | 
| 
       26 
     | 
    
         
            -
                    [AIXM.f(110, :mhz)].must_be_written_to subject, :f
         
     | 
| 
      
 26 
     | 
    
         
            +
                    _([AIXM.f(110, :mhz)]).must_be_written_to subject, :f
         
     | 
| 
       27 
27 
     | 
    
         
             
                  end
         
     | 
| 
       28 
28 
     | 
    
         
             
                end
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                describe :north= do
         
     | 
| 
       31 
31 
     | 
    
         
             
                  it "fails on invalid values" do
         
     | 
| 
       32 
     | 
    
         
            -
                    [nil, :foobar, 123].wont_be_written_to subject, :north
         
     | 
| 
      
 32 
     | 
    
         
            +
                    _([nil, :foobar, 123]).wont_be_written_to subject, :north
         
     | 
| 
       33 
33 
     | 
    
         
             
                  end
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
                  it "looks up valid values" do
         
     | 
| 
       36 
     | 
    
         
            -
                    subject.tap { |s| s.north = :magnetic }.north.must_equal :magnetic
         
     | 
| 
       37 
     | 
    
         
            -
                    subject.tap { |s| s.north = :TRUE }.north.must_equal :geographic
         
     | 
| 
      
 36 
     | 
    
         
            +
                    _(subject.tap { |s| s.north = :magnetic }.north).must_equal :magnetic
         
     | 
| 
      
 37 
     | 
    
         
            +
                    _(subject.tap { |s| s.north = :TRUE }.north).must_equal :geographic
         
     | 
| 
       38 
38 
     | 
    
         
             
                  end
         
     | 
| 
       39 
39 
     | 
    
         
             
                end
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
                describe :kind do
         
     | 
| 
       42 
42 
     | 
    
         
             
                  it "must return class/type combo" do
         
     | 
| 
       43 
     | 
    
         
            -
                    subject.kind.must_equal "VOR:VOR"
         
     | 
| 
      
 43 
     | 
    
         
            +
                    _(subject.kind).must_equal "VOR:VOR"
         
     | 
| 
       44 
44 
     | 
    
         
             
                  end
         
     | 
| 
       45 
45 
     | 
    
         
             
                end
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
                describe :to_xml do
         
     | 
| 
       48 
48 
     | 
    
         
             
                  it "builds correct complete OFMX" do
         
     | 
| 
       49 
49 
     | 
    
         
             
                    AIXM.ofmx!
         
     | 
| 
       50 
     | 
    
         
            -
                    subject.to_xml.must_equal <<~END
         
     | 
| 
      
 50 
     | 
    
         
            +
                    _(subject.to_xml).must_equal <<~END
         
     | 
| 
       51 
51 
     | 
    
         
             
                      <!-- NavigationalAid: [VOR:VOR] VVV / VOR NAVAID -->
         
     | 
| 
       52 
52 
     | 
    
         
             
                      <Vor source="LF|GEN|0.0 FACTORY|0|0">
         
     | 
| 
       53 
53 
     | 
    
         
             
                        <VorUid>
         
     | 
| 
         @@ -77,7 +77,7 @@ describe AIXM::Feature::NavigationalAid::VOR do 
     | 
|
| 
       77 
77 
     | 
    
         
             
                  it "builds correct minimal OFMX" do
         
     | 
| 
       78 
78 
     | 
    
         
             
                    AIXM.ofmx!
         
     | 
| 
       79 
79 
     | 
    
         
             
                    subject.name = subject.z = subject.timetable = subject.remarks = nil
         
     | 
| 
       80 
     | 
    
         
            -
                    subject.to_xml.must_equal <<~END
         
     | 
| 
      
 80 
     | 
    
         
            +
                    _(subject.to_xml).must_equal <<~END
         
     | 
| 
       81 
81 
     | 
    
         
             
                      <!-- NavigationalAid: [VOR:VOR] VVV -->
         
     | 
| 
       82 
82 
     | 
    
         
             
                      <Vor source="LF|GEN|0.0 FACTORY|0|0">
         
     | 
| 
       83 
83 
     | 
    
         
             
                        <VorUid>
         
     | 
| 
         @@ -96,6 +96,12 @@ describe AIXM::Feature::NavigationalAid::VOR do 
     | 
|
| 
       96 
96 
     | 
    
         
             
                      </Vor>
         
     | 
| 
       97 
97 
     | 
    
         
             
                    END
         
     | 
| 
       98 
98 
     | 
    
         
             
                  end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                  it "builds OFMX with mid" do
         
     | 
| 
      
 101 
     | 
    
         
            +
                    AIXM.ofmx!
         
     | 
| 
      
 102 
     | 
    
         
            +
                    AIXM.config.mid_region = 'LF'
         
     | 
| 
      
 103 
     | 
    
         
            +
                    _(subject.to_xml).must_match /<VorUid mid="627bea52-cca8-f407-88be-90a85a333741">/
         
     | 
| 
      
 104 
     | 
    
         
            +
                  end
         
     | 
| 
       99 
105 
     | 
    
         
             
                end
         
     | 
| 
       100 
106 
     | 
    
         
             
              end
         
     | 
| 
       101 
107 
     | 
    
         | 
| 
         @@ -110,14 +116,14 @@ describe AIXM::Feature::NavigationalAid::VOR do 
     | 
|
| 
       110 
116 
     | 
    
         | 
| 
       111 
117 
     | 
    
         
             
                describe :kind do
         
     | 
| 
       112 
118 
     | 
    
         
             
                  it "must return class/type combo" do
         
     | 
| 
       113 
     | 
    
         
            -
                    subject.kind.must_equal "VOR:VOR"
         
     | 
| 
      
 119 
     | 
    
         
            +
                    _(subject.kind).must_equal "VOR:VOR"
         
     | 
| 
       114 
120 
     | 
    
         
             
                  end
         
     | 
| 
       115 
121 
     | 
    
         
             
                end
         
     | 
| 
       116 
122 
     | 
    
         | 
| 
       117 
123 
     | 
    
         
             
                describe :to_xml do
         
     | 
| 
       118 
124 
     | 
    
         
             
                  it "builds correct OFMX" do
         
     | 
| 
       119 
125 
     | 
    
         
             
                    AIXM.ofmx!
         
     | 
| 
       120 
     | 
    
         
            -
                    subject.to_xml.must_equal <<~END
         
     | 
| 
      
 126 
     | 
    
         
            +
                    _(subject.to_xml).must_equal <<~END
         
     | 
| 
       121 
127 
     | 
    
         
             
                      <!-- NavigationalAid: [VOR:VOR] VVV / VOR/DME NAVAID -->
         
     | 
| 
       122 
128 
     | 
    
         
             
                      <Vor source="LF|GEN|0.0 FACTORY|0|0">
         
     | 
| 
       123 
129 
     | 
    
         
             
                        <VorUid>
         
     | 
| 
         @@ -182,14 +188,14 @@ describe AIXM::Feature::NavigationalAid::VOR do 
     | 
|
| 
       182 
188 
     | 
    
         | 
| 
       183 
189 
     | 
    
         
             
                describe :kind do
         
     | 
| 
       184 
190 
     | 
    
         
             
                  it "must return class/type combo" do
         
     | 
| 
       185 
     | 
    
         
            -
                    subject.kind.must_equal "VOR:VOR"
         
     | 
| 
      
 191 
     | 
    
         
            +
                    _(subject.kind).must_equal "VOR:VOR"
         
     | 
| 
       186 
192 
     | 
    
         
             
                  end
         
     | 
| 
       187 
193 
     | 
    
         
             
                end
         
     | 
| 
       188 
194 
     | 
    
         | 
| 
       189 
195 
     | 
    
         
             
                describe :to_xml do
         
     | 
| 
       190 
196 
     | 
    
         
             
                  it "builds correct OFMX" do
         
     | 
| 
       191 
197 
     | 
    
         
             
                    AIXM.ofmx!
         
     | 
| 
       192 
     | 
    
         
            -
                    subject.to_xml.must_equal <<~END
         
     | 
| 
      
 198 
     | 
    
         
            +
                    _(subject.to_xml).must_equal <<~END
         
     | 
| 
       193 
199 
     | 
    
         
             
                      <!-- NavigationalAid: [VOR:VOR] VVV / VORTAC NAVAID -->
         
     | 
| 
       194 
200 
     | 
    
         
             
                      <Vor source="LF|GEN|0.0 FACTORY|0|0">
         
     | 
| 
       195 
201 
     | 
    
         
             
                        <VorUid>
         
     | 
| 
         @@ -11,25 +11,25 @@ describe AIXM::Feature::NavigationalAid do 
     | 
|
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              describe :id= do
         
     | 
| 
       13 
13 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       14 
     | 
    
         
            -
                   
     | 
| 
      
 14 
     | 
    
         
            +
                  _{ subject.id = 123 }.must_raise ArgumentError
         
     | 
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                it "upcases value" do
         
     | 
| 
       18 
     | 
    
         
            -
                  subject.tap { |s| s.id = 'lol' }.id.must_equal 'LOL'
         
     | 
| 
      
 18 
     | 
    
         
            +
                  _(subject.tap { |s| s.id = 'lol' }.id).must_equal 'LOL'
         
     | 
| 
       19 
19 
     | 
    
         
             
                end
         
     | 
| 
       20 
20 
     | 
    
         
             
              end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
              describe :name= do
         
     | 
| 
       23 
23 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       24 
     | 
    
         
            -
                  [:foobar, 123].wont_be_written_to subject, :name
         
     | 
| 
      
 24 
     | 
    
         
            +
                  _([:foobar, 123]).wont_be_written_to subject, :name
         
     | 
| 
       25 
25 
     | 
    
         
             
                end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                it "accepts nil value" do
         
     | 
| 
       28 
     | 
    
         
            -
                  [nil].must_be_written_to subject, :name
         
     | 
| 
      
 28 
     | 
    
         
            +
                  _([nil]).must_be_written_to subject, :name
         
     | 
| 
       29 
29 
     | 
    
         
             
                end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                it "upcases and transcodes value" do
         
     | 
| 
       32 
     | 
    
         
            -
                  subject.tap { |s| s.name = 'löl' }.name.must_equal 'LOEL'
         
     | 
| 
      
 32 
     | 
    
         
            +
                  _(subject.tap { |s| s.name = 'löl' }.name).must_equal 'LOEL'
         
     | 
| 
       33 
33 
     | 
    
         
             
                end
         
     | 
| 
       34 
34 
     | 
    
         
             
              end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
         @@ -41,7 +41,7 @@ describe AIXM::Feature::NavigationalAid do 
     | 
|
| 
       41 
41 
     | 
    
         
             
                macro :z_qnh
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                it "accepts nil value" do
         
     | 
| 
       44 
     | 
    
         
            -
                  [nil].must_be_written_to subject, :z
         
     | 
| 
      
 44 
     | 
    
         
            +
                  _([nil]).must_be_written_to subject, :z
         
     | 
| 
       45 
45 
     | 
    
         
             
                end
         
     | 
| 
       46 
46 
     | 
    
         
             
              end
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
         @@ -11,37 +11,37 @@ describe AIXM::Feature::ObstacleGroup do 
     | 
|
| 
       11 
11 
     | 
    
         
             
                    subject = AIXM.obstacle_group(
         
     | 
| 
       12 
12 
     | 
    
         
             
                      name: "Mirmande éoliennes"
         
     | 
| 
       13 
13 
     | 
    
         
             
                    )
         
     | 
| 
       14 
     | 
    
         
            -
                    subject.obstacles.must_equal []
         
     | 
| 
      
 14 
     | 
    
         
            +
                    _(subject.obstacles).must_equal []
         
     | 
| 
       15 
15 
     | 
    
         
             
                  end
         
     | 
| 
       16 
16 
     | 
    
         
             
                end
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
                describe :name= do
         
     | 
| 
       19 
19 
     | 
    
         
             
                  it "fails on invalid values" do
         
     | 
| 
       20 
     | 
    
         
            -
                    [:foobar, 123].wont_be_written_to subject, :name
         
     | 
| 
      
 20 
     | 
    
         
            +
                    _([:foobar, 123]).wont_be_written_to subject, :name
         
     | 
| 
       21 
21 
     | 
    
         
             
                  end
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
                  it "upcases and transcodes valid values" do
         
     | 
| 
       24 
     | 
    
         
            -
                    subject.name.must_equal 'MIRMANDE EOLIENNES'
         
     | 
| 
      
 24 
     | 
    
         
            +
                    _(subject.name).must_equal 'MIRMANDE EOLIENNES'
         
     | 
| 
       25 
25 
     | 
    
         
             
                  end
         
     | 
| 
       26 
26 
     | 
    
         
             
                end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                describe :xy_accuracy= do
         
     | 
| 
       29 
29 
     | 
    
         
             
                  it "fails on invalid values" do
         
     | 
| 
       30 
     | 
    
         
            -
                    [:foobar, 123].wont_be_written_to subject, :xy_accuracy
         
     | 
| 
      
 30 
     | 
    
         
            +
                    _([:foobar, 123]).wont_be_written_to subject, :xy_accuracy
         
     | 
| 
       31 
31 
     | 
    
         
             
                  end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                  it "accepts valid values" do
         
     | 
| 
       34 
     | 
    
         
            -
                    [nil, AIXM::Factory.d, AIXM.d(0, :m)].must_be_written_to subject, :xy_accuracy
         
     | 
| 
      
 34 
     | 
    
         
            +
                    _([nil, AIXM::Factory.d, AIXM.d(0, :m)]).must_be_written_to subject, :xy_accuracy
         
     | 
| 
       35 
35 
     | 
    
         
             
                  end
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
38 
     | 
    
         
             
                describe :z_accuracy= do
         
     | 
| 
       39 
39 
     | 
    
         
             
                  it "fails on invalid values" do
         
     | 
| 
       40 
     | 
    
         
            -
                    [:foobar, 123].wont_be_written_to subject, :z_accuracy
         
     | 
| 
      
 40 
     | 
    
         
            +
                    _([:foobar, 123]).wont_be_written_to subject, :z_accuracy
         
     | 
| 
       41 
41 
     | 
    
         
             
                  end
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                  it "accepts valid values" do
         
     | 
| 
       44 
     | 
    
         
            -
                    [nil, AIXM::Factory.d, AIXM.d(0, :m)].must_be_written_to subject, :z_accuracy
         
     | 
| 
      
 44 
     | 
    
         
            +
                    _([nil, AIXM::Factory.d, AIXM.d(0, :m)]).must_be_written_to subject, :z_accuracy
         
     | 
| 
       45 
45 
     | 
    
         
             
                  end
         
     | 
| 
       46 
46 
     | 
    
         
             
                end
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
         @@ -52,8 +52,8 @@ describe AIXM::Feature::ObstacleGroup do 
     | 
|
| 
       52 
52 
     | 
    
         
             
                describe :add_obstacle do
         
     | 
| 
       53 
53 
     | 
    
         
             
                  it "adds an obstacle to the obstacle group" do
         
     | 
| 
       54 
54 
     | 
    
         
             
                    subject.add_obstacle(AIXM::Factory.obstacle)
         
     | 
| 
       55 
     | 
    
         
            -
                    subject.obstacles.count.must_equal 1
         
     | 
| 
       56 
     | 
    
         
            -
                    subject.obstacles.first.obstacle_group.must_equal subject
         
     | 
| 
      
 55 
     | 
    
         
            +
                    _(subject.obstacles.count).must_equal 1
         
     | 
| 
      
 56 
     | 
    
         
            +
                    _(subject.obstacles.first.obstacle_group).must_equal subject
         
     | 
| 
       57 
57 
     | 
    
         
             
                  end
         
     | 
| 
       58 
58 
     | 
    
         
             
                end
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
         @@ -63,8 +63,7 @@ describe AIXM::Feature::ObstacleGroup do 
     | 
|
| 
       63 
63 
     | 
    
         
             
                  end
         
     | 
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
                  it "builds correct AIXM" do
         
     | 
| 
       66 
     | 
    
         
            -
                     
     | 
| 
       67 
     | 
    
         
            -
                    subject.to_xml.must_equal <<~END
         
     | 
| 
      
 66 
     | 
    
         
            +
                    _(subject.to_xml).must_equal <<~END
         
     | 
| 
       68 
67 
     | 
    
         
             
                      <!-- Obstacle: [wind_turbine] 44.67501389N 004.87256667E LA TEISSONIERE 1 -->
         
     | 
| 
       69 
68 
     | 
    
         
             
                      <Obs>
         
     | 
| 
       70 
69 
     | 
    
         
             
                        <ObsUid>
         
     | 
| 
         @@ -106,7 +105,7 @@ describe AIXM::Feature::ObstacleGroup do 
     | 
|
| 
       106 
105 
     | 
    
         | 
| 
       107 
106 
     | 
    
         
             
                  it "builds correct OFMX" do
         
     | 
| 
       108 
107 
     | 
    
         
             
                    AIXM.ofmx!
         
     | 
| 
       109 
     | 
    
         
            -
                    subject.to_xml.must_equal <<~END
         
     | 
| 
      
 108 
     | 
    
         
            +
                    _(subject.to_xml).must_equal <<~END
         
     | 
| 
       110 
109 
     | 
    
         
             
                      <!-- Obstacle group: MIRMANDE EOLIENNES -->
         
     | 
| 
       111 
110 
     | 
    
         
             
                      <Ogr>
         
     | 
| 
       112 
111 
     | 
    
         
             
                        <OgrUid>
         
     | 
| 
         @@ -171,6 +170,12 @@ describe AIXM::Feature::ObstacleGroup do 
     | 
|
| 
       171 
170 
     | 
    
         
             
                      </Obs>
         
     | 
| 
       172 
171 
     | 
    
         
             
                    END
         
     | 
| 
       173 
172 
     | 
    
         
             
                  end
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
                  it "builds OFMX with mid" do
         
     | 
| 
      
 175 
     | 
    
         
            +
                    AIXM.ofmx!
         
     | 
| 
      
 176 
     | 
    
         
            +
                    AIXM.config.mid_region = 'LF'
         
     | 
| 
      
 177 
     | 
    
         
            +
                    _(subject.to_xml).must_match /<OgrUid mid="c099ea7c-2056-3921-5c1c-b28090537332">/
         
     | 
| 
      
 178 
     | 
    
         
            +
                  end
         
     | 
| 
       174 
179 
     | 
    
         
             
                end
         
     | 
| 
       175 
180 
     | 
    
         
             
              end
         
     | 
| 
       176 
181 
     | 
    
         | 
| 
         @@ -183,17 +188,17 @@ describe AIXM::Feature::ObstacleGroup do 
     | 
|
| 
       183 
188 
     | 
    
         
             
                  it "adds an obstacle to the obstacle group and links it to previous" do
         
     | 
| 
       184 
189 
     | 
    
         
             
                    subject.add_obstacle(AIXM::Factory.obstacle)
         
     | 
| 
       185 
190 
     | 
    
         
             
                    subject.add_obstacle(AIXM::Factory.obstacle, linked_to: :previous, link_type: :cable)
         
     | 
| 
       186 
     | 
    
         
            -
                    subject.obstacles.count.must_equal 2
         
     | 
| 
       187 
     | 
    
         
            -
                    subject.obstacles.last.linked_to.must_equal subject.obstacles.first
         
     | 
| 
       188 
     | 
    
         
            -
                    subject.obstacles.last.link_type.must_equal :cable
         
     | 
| 
      
 191 
     | 
    
         
            +
                    _(subject.obstacles.count).must_equal 2
         
     | 
| 
      
 192 
     | 
    
         
            +
                    _(subject.obstacles.last.linked_to).must_equal subject.obstacles.first
         
     | 
| 
      
 193 
     | 
    
         
            +
                    _(subject.obstacles.last.link_type).must_equal :cable
         
     | 
| 
       189 
194 
     | 
    
         
             
                  end
         
     | 
| 
       190 
195 
     | 
    
         | 
| 
       191 
196 
     | 
    
         
             
                  it "adds an obstacle to the obstacle group and links it to another obstacle" do
         
     | 
| 
       192 
197 
     | 
    
         
             
                    subject.add_obstacle(AIXM::Factory.obstacle)
         
     | 
| 
       193 
198 
     | 
    
         
             
                    subject.add_obstacle(AIXM::Factory.obstacle, linked_to: subject.obstacles.first, link_type: :solid)
         
     | 
| 
       194 
     | 
    
         
            -
                    subject.obstacles.count.must_equal 2
         
     | 
| 
       195 
     | 
    
         
            -
                    subject.obstacles.last.linked_to.must_equal subject.obstacles.first
         
     | 
| 
       196 
     | 
    
         
            -
                    subject.obstacles.last.link_type.must_equal :solid
         
     | 
| 
      
 199 
     | 
    
         
            +
                    _(subject.obstacles.count).must_equal 2
         
     | 
| 
      
 200 
     | 
    
         
            +
                    _(subject.obstacles.last.linked_to).must_equal subject.obstacles.first
         
     | 
| 
      
 201 
     | 
    
         
            +
                    _(subject.obstacles.last.link_type).must_equal :solid
         
     | 
| 
       197 
202 
     | 
    
         
             
                  end
         
     | 
| 
       198 
203 
     | 
    
         
             
                end
         
     | 
| 
       199 
204 
     | 
    
         | 
| 
         @@ -203,8 +208,7 @@ describe AIXM::Feature::ObstacleGroup do 
     | 
|
| 
       203 
208 
     | 
    
         
             
                  end
         
     | 
| 
       204 
209 
     | 
    
         | 
| 
       205 
210 
     | 
    
         
             
                  it "builds correct AIXM" do
         
     | 
| 
       206 
     | 
    
         
            -
                     
     | 
| 
       207 
     | 
    
         
            -
                    subject.to_xml.must_equal <<~END
         
     | 
| 
      
 211 
     | 
    
         
            +
                    _(subject.to_xml).must_equal <<~END
         
     | 
| 
       208 
212 
     | 
    
         
             
                      <!-- Obstacle: [mast] 52.29639722N 002.10675278W DROITWICH LW NORTH -->
         
     | 
| 
       209 
213 
     | 
    
         
             
                      <Obs>
         
     | 
| 
       210 
214 
     | 
    
         
             
                        <ObsUid>
         
     | 
| 
         @@ -246,7 +250,7 @@ describe AIXM::Feature::ObstacleGroup do 
     | 
|
| 
       246 
250 
     | 
    
         | 
| 
       247 
251 
     | 
    
         
             
                  it "builds correct OFMX" do
         
     | 
| 
       248 
252 
     | 
    
         
             
                    AIXM.ofmx!
         
     | 
| 
       249 
     | 
    
         
            -
                    subject.to_xml.must_equal <<~END
         
     | 
| 
      
 253 
     | 
    
         
            +
                    _(subject.to_xml).must_equal <<~END
         
     | 
| 
       250 
254 
     | 
    
         
             
                      <!-- Obstacle group: DROITWICH LONGWAVE ANTENNA -->
         
     | 
| 
       251 
255 
     | 
    
         
             
                      <Ogr>
         
     | 
| 
       252 
256 
     | 
    
         
             
                        <OgrUid>
         
     | 
| 
         @@ -13,30 +13,30 @@ describe AIXM::Feature::Obstacle do 
     | 
|
| 
       13 
13 
     | 
    
         
             
                    radius: AIXM.d(88, :m),
         
     | 
| 
       14 
14 
     | 
    
         
             
                    z: AIXM.z(1187 , :qnh)
         
     | 
| 
       15 
15 
     | 
    
         
             
                  )
         
     | 
| 
       16 
     | 
    
         
            -
                  subject.wont_be :lighting
         
     | 
| 
       17 
     | 
    
         
            -
                  subject.wont_be :marking
         
     | 
| 
       18 
     | 
    
         
            -
                  subject.wont_be :height_accurate
         
     | 
| 
      
 16 
     | 
    
         
            +
                  _(subject).wont_be :lighting
         
     | 
| 
      
 17 
     | 
    
         
            +
                  _(subject).wont_be :marking
         
     | 
| 
      
 18 
     | 
    
         
            +
                  _(subject).wont_be :height_accurate
         
     | 
| 
       19 
19 
     | 
    
         
             
                end
         
     | 
| 
       20 
20 
     | 
    
         
             
              end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
              describe :name= do
         
     | 
| 
       23 
23 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       24 
     | 
    
         
            -
                  [:foobar, 123].wont_be_written_to subject, :name
         
     | 
| 
      
 24 
     | 
    
         
            +
                  _([:foobar, 123]).wont_be_written_to subject, :name
         
     | 
| 
       25 
25 
     | 
    
         
             
                end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                it "upcases and transcodes valid values" do
         
     | 
| 
       28 
     | 
    
         
            -
                  subject.tap { |s| s.name = 'Teufelsbrücke' }.name.must_equal 'TEUFELSBRUECKE'
         
     | 
| 
      
 28 
     | 
    
         
            +
                  _(subject.tap { |s| s.name = 'Teufelsbrücke' }.name).must_equal 'TEUFELSBRUECKE'
         
     | 
| 
       29 
29 
     | 
    
         
             
                end
         
     | 
| 
       30 
30 
     | 
    
         
             
              end
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         
             
              describe :type= do
         
     | 
| 
       33 
33 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       34 
     | 
    
         
            -
                  [nil, :foobar].wont_be_written_to subject, :type
         
     | 
| 
      
 34 
     | 
    
         
            +
                  _([nil, :foobar]).wont_be_written_to subject, :type
         
     | 
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
                it "looks up valid values" do
         
     | 
| 
       38 
     | 
    
         
            -
                  subject.tap { |s| s.type = :WINDTURBINE }.type.must_equal :wind_turbine
         
     | 
| 
       39 
     | 
    
         
            -
                  subject.tap { |s| s.type = :TOWER }.type.must_equal :tower
         
     | 
| 
      
 38 
     | 
    
         
            +
                  _(subject.tap { |s| s.type = :WINDTURBINE }.type).must_equal :wind_turbine
         
     | 
| 
      
 39 
     | 
    
         
            +
                  _(subject.tap { |s| s.type = :TOWER }.type).must_equal :tower
         
     | 
| 
       40 
40 
     | 
    
         
             
                end
         
     | 
| 
       41 
41 
     | 
    
         
             
              end
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
         @@ -44,17 +44,17 @@ describe AIXM::Feature::Obstacle do 
     | 
|
| 
       44 
44 
     | 
    
         
             
                macro :xy
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
46 
     | 
    
         
             
                it "fails on nil values" do
         
     | 
| 
       47 
     | 
    
         
            -
                  [nil].wont_be_written_to subject, :xy
         
     | 
| 
      
 47 
     | 
    
         
            +
                  _([nil]).wont_be_written_to subject, :xy
         
     | 
| 
       48 
48 
     | 
    
         
             
                end
         
     | 
| 
       49 
49 
     | 
    
         
             
              end
         
     | 
| 
       50 
50 
     | 
    
         | 
| 
       51 
51 
     | 
    
         
             
              describe :radius= do
         
     | 
| 
       52 
52 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       53 
     | 
    
         
            -
                  [:foobar, 123, AIXM.d(0, :m)].wont_be_written_to subject, :radius
         
     | 
| 
      
 53 
     | 
    
         
            +
                  _([:foobar, 123, AIXM.d(0, :m)]).wont_be_written_to subject, :radius
         
     | 
| 
       54 
54 
     | 
    
         
             
                end
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
       56 
56 
     | 
    
         
             
                it "accepts valid values" do
         
     | 
| 
       57 
     | 
    
         
            -
                  [AIXM::Factory.d, nil].must_be_written_to subject, :radius
         
     | 
| 
      
 57 
     | 
    
         
            +
                  _([AIXM::Factory.d, nil]).must_be_written_to subject, :radius
         
     | 
| 
       58 
58 
     | 
    
         
             
                end
         
     | 
| 
       59 
59 
     | 
    
         
             
              end
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
         @@ -62,119 +62,119 @@ describe AIXM::Feature::Obstacle do 
     | 
|
| 
       62 
62 
     | 
    
         
             
                macro :z_qnh
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
                it "fails on nil values" do
         
     | 
| 
       65 
     | 
    
         
            -
                  [nil].wont_be_written_to subject, :z
         
     | 
| 
      
 65 
     | 
    
         
            +
                  _([nil]).wont_be_written_to subject, :z
         
     | 
| 
       66 
66 
     | 
    
         
             
                end
         
     | 
| 
       67 
67 
     | 
    
         
             
              end
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
              describe :lighting= do
         
     | 
| 
       70 
70 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       71 
     | 
    
         
            -
                  [:foobar, 123].wont_be_written_to subject, :lighting
         
     | 
| 
      
 71 
     | 
    
         
            +
                  _([:foobar, 123]).wont_be_written_to subject, :lighting
         
     | 
| 
       72 
72 
     | 
    
         
             
                end
         
     | 
| 
       73 
73 
     | 
    
         | 
| 
       74 
74 
     | 
    
         
             
                it "accepts valid values" do
         
     | 
| 
       75 
     | 
    
         
            -
                  [true, false, nil].must_be_written_to subject, :lighting
         
     | 
| 
      
 75 
     | 
    
         
            +
                  _([true, false, nil]).must_be_written_to subject, :lighting
         
     | 
| 
       76 
76 
     | 
    
         
             
                end
         
     | 
| 
       77 
77 
     | 
    
         
             
              end
         
     | 
| 
       78 
78 
     | 
    
         | 
| 
       79 
79 
     | 
    
         
             
              describe :lighting_remarks= do
         
     | 
| 
       80 
80 
     | 
    
         
             
                it "accepts nil value" do
         
     | 
| 
       81 
     | 
    
         
            -
                  [nil].must_be_written_to subject, :lighting_remarks
         
     | 
| 
      
 81 
     | 
    
         
            +
                  _([nil]).must_be_written_to subject, :lighting_remarks
         
     | 
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
       83 
83 
     | 
    
         | 
| 
       84 
84 
     | 
    
         
             
                it "stringifies valid values" do
         
     | 
| 
       85 
     | 
    
         
            -
                  subject.tap { |s| s.lighting_remarks = 'foobar' }.lighting_remarks.must_equal 'foobar'
         
     | 
| 
       86 
     | 
    
         
            -
                  subject.tap { |s| s.lighting_remarks = 123 }.lighting_remarks.must_equal '123'
         
     | 
| 
      
 85 
     | 
    
         
            +
                  _(subject.tap { |s| s.lighting_remarks = 'foobar' }.lighting_remarks).must_equal 'foobar'
         
     | 
| 
      
 86 
     | 
    
         
            +
                  _(subject.tap { |s| s.lighting_remarks = 123 }.lighting_remarks).must_equal '123'
         
     | 
| 
       87 
87 
     | 
    
         
             
                end
         
     | 
| 
       88 
88 
     | 
    
         
             
              end
         
     | 
| 
       89 
89 
     | 
    
         | 
| 
       90 
90 
     | 
    
         
             
              describe :marking= do
         
     | 
| 
       91 
91 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       92 
     | 
    
         
            -
                  [:foobar, 123].wont_be_written_to subject, :marking
         
     | 
| 
      
 92 
     | 
    
         
            +
                  _([:foobar, 123]).wont_be_written_to subject, :marking
         
     | 
| 
       93 
93 
     | 
    
         
             
                end
         
     | 
| 
       94 
94 
     | 
    
         | 
| 
       95 
95 
     | 
    
         
             
                it "accepts valid values" do
         
     | 
| 
       96 
     | 
    
         
            -
                  [true, false, nil].must_be_written_to subject, :marking
         
     | 
| 
      
 96 
     | 
    
         
            +
                  _([true, false, nil]).must_be_written_to subject, :marking
         
     | 
| 
       97 
97 
     | 
    
         
             
                end
         
     | 
| 
       98 
98 
     | 
    
         
             
              end
         
     | 
| 
       99 
99 
     | 
    
         | 
| 
       100 
100 
     | 
    
         
             
              describe :marking_remarks= do
         
     | 
| 
       101 
101 
     | 
    
         
             
                it "accepts nil value" do
         
     | 
| 
       102 
     | 
    
         
            -
                  [nil].must_be_written_to subject, :marking_remarks
         
     | 
| 
      
 102 
     | 
    
         
            +
                  _([nil]).must_be_written_to subject, :marking_remarks
         
     | 
| 
       103 
103 
     | 
    
         
             
                end
         
     | 
| 
       104 
104 
     | 
    
         | 
| 
       105 
105 
     | 
    
         
             
                it "stringifies valid values" do
         
     | 
| 
       106 
     | 
    
         
            -
                  subject.tap { |s| s.marking_remarks = 'foobar' }.marking_remarks.must_equal 'foobar'
         
     | 
| 
       107 
     | 
    
         
            -
                  subject.tap { |s| s.marking_remarks = 123 }.marking_remarks.must_equal '123'
         
     | 
| 
      
 106 
     | 
    
         
            +
                  _(subject.tap { |s| s.marking_remarks = 'foobar' }.marking_remarks).must_equal 'foobar'
         
     | 
| 
      
 107 
     | 
    
         
            +
                  _(subject.tap { |s| s.marking_remarks = 123 }.marking_remarks).must_equal '123'
         
     | 
| 
       108 
108 
     | 
    
         
             
                end
         
     | 
| 
       109 
109 
     | 
    
         
             
              end
         
     | 
| 
       110 
110 
     | 
    
         | 
| 
       111 
111 
     | 
    
         
             
              describe :height= do
         
     | 
| 
       112 
112 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       113 
     | 
    
         
            -
                  [:foobar, 123, AIXM.d(0, :m)].wont_be_written_to subject, :height
         
     | 
| 
      
 113 
     | 
    
         
            +
                  _([:foobar, 123, AIXM.d(0, :m)]).wont_be_written_to subject, :height
         
     | 
| 
       114 
114 
     | 
    
         
             
                end
         
     | 
| 
       115 
115 
     | 
    
         | 
| 
       116 
116 
     | 
    
         
             
                it "accepts valid values" do
         
     | 
| 
       117 
     | 
    
         
            -
                  [nil, AIXM::Factory.d].must_be_written_to subject, :height
         
     | 
| 
      
 117 
     | 
    
         
            +
                  _([nil, AIXM::Factory.d]).must_be_written_to subject, :height
         
     | 
| 
       118 
118 
     | 
    
         
             
                end
         
     | 
| 
       119 
119 
     | 
    
         
             
              end
         
     | 
| 
       120 
120 
     | 
    
         | 
| 
       121 
121 
     | 
    
         
             
              describe :xy_accuracy= do
         
     | 
| 
       122 
122 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       123 
     | 
    
         
            -
                  [:foobar, 123].wont_be_written_to subject, :xy_accuracy
         
     | 
| 
      
 123 
     | 
    
         
            +
                  _([:foobar, 123]).wont_be_written_to subject, :xy_accuracy
         
     | 
| 
       124 
124 
     | 
    
         
             
                end
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
       126 
126 
     | 
    
         
             
                it "accepts valid values" do
         
     | 
| 
       127 
     | 
    
         
            -
                  [nil, AIXM::Factory.d, AIXM.d(0, :m)].must_be_written_to subject, :xy_accuracy
         
     | 
| 
      
 127 
     | 
    
         
            +
                  _([nil, AIXM::Factory.d, AIXM.d(0, :m)]).must_be_written_to subject, :xy_accuracy
         
     | 
| 
       128 
128 
     | 
    
         
             
                end
         
     | 
| 
       129 
129 
     | 
    
         
             
              end
         
     | 
| 
       130 
130 
     | 
    
         | 
| 
       131 
131 
     | 
    
         
             
              describe :z_accuracy= do
         
     | 
| 
       132 
132 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       133 
     | 
    
         
            -
                  [:foobar, 123].wont_be_written_to subject, :z_accuracy
         
     | 
| 
      
 133 
     | 
    
         
            +
                  _([:foobar, 123]).wont_be_written_to subject, :z_accuracy
         
     | 
| 
       134 
134 
     | 
    
         
             
                end
         
     | 
| 
       135 
135 
     | 
    
         | 
| 
       136 
136 
     | 
    
         
             
                it "accepts valid values" do
         
     | 
| 
       137 
     | 
    
         
            -
                  [nil, AIXM::Factory.d, AIXM.d(0, :m)].must_be_written_to subject, :z_accuracy
         
     | 
| 
      
 137 
     | 
    
         
            +
                  _([nil, AIXM::Factory.d, AIXM.d(0, :m)]).must_be_written_to subject, :z_accuracy
         
     | 
| 
       138 
138 
     | 
    
         
             
                end
         
     | 
| 
       139 
139 
     | 
    
         
             
              end
         
     | 
| 
       140 
140 
     | 
    
         | 
| 
       141 
141 
     | 
    
         
             
              describe :height_accurate= do
         
     | 
| 
       142 
142 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       143 
     | 
    
         
            -
                  [:foobar, 123].wont_be_written_to subject, :height_accurate
         
     | 
| 
      
 143 
     | 
    
         
            +
                  _([:foobar, 123]).wont_be_written_to subject, :height_accurate
         
     | 
| 
       144 
144 
     | 
    
         
             
                end
         
     | 
| 
       145 
145 
     | 
    
         | 
| 
       146 
146 
     | 
    
         
             
                it "accepts valid values" do
         
     | 
| 
       147 
     | 
    
         
            -
                  [true, false, nil].must_be_written_to subject, :height_accurate
         
     | 
| 
      
 147 
     | 
    
         
            +
                  _([true, false, nil]).must_be_written_to subject, :height_accurate
         
     | 
| 
       148 
148 
     | 
    
         
             
                end
         
     | 
| 
       149 
149 
     | 
    
         
             
              end
         
     | 
| 
       150 
150 
     | 
    
         | 
| 
       151 
151 
     | 
    
         
             
              describe :valid_from= do
         
     | 
| 
       152 
152 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       153 
     | 
    
         
            -
                  ['foobar', '2018-01-77'].wont_be_written_to subject, :valid_from
         
     | 
| 
      
 153 
     | 
    
         
            +
                  _(['foobar', '2018-01-77']).wont_be_written_to subject, :valid_from
         
     | 
| 
       154 
154 
     | 
    
         
             
                end
         
     | 
| 
       155 
155 
     | 
    
         | 
| 
       156 
156 
     | 
    
         
             
                it "accepts nil value" do
         
     | 
| 
       157 
     | 
    
         
            -
                  [nil].must_be_written_to subject, :valid_from
         
     | 
| 
      
 157 
     | 
    
         
            +
                  _([nil]).must_be_written_to subject, :valid_from
         
     | 
| 
       158 
158 
     | 
    
         
             
                end
         
     | 
| 
       159 
159 
     | 
    
         | 
| 
       160 
160 
     | 
    
         
             
                it "parses dates and times" do
         
     | 
| 
       161 
161 
     | 
    
         
             
                  string = '2018-01-01 12:00:00 +0100'
         
     | 
| 
       162 
     | 
    
         
            -
                  subject.tap { |s| s.valid_from = string }.valid_from.must_equal Time.parse(string)
         
     | 
| 
      
 162 
     | 
    
         
            +
                  _(subject.tap { |s| s.valid_from = string }.valid_from).must_equal Time.parse(string)
         
     | 
| 
       163 
163 
     | 
    
         
             
                end
         
     | 
| 
       164 
164 
     | 
    
         
             
              end
         
     | 
| 
       165 
165 
     | 
    
         | 
| 
       166 
166 
     | 
    
         
             
              describe :valid_until= do
         
     | 
| 
       167 
167 
     | 
    
         
             
                it "fails on invalid values" do
         
     | 
| 
       168 
     | 
    
         
            -
                  ['foobar', '2018-01-77'].wont_be_written_to subject, :valid_until
         
     | 
| 
      
 168 
     | 
    
         
            +
                  _(['foobar', '2018-01-77']).wont_be_written_to subject, :valid_until
         
     | 
| 
       169 
169 
     | 
    
         
             
                end
         
     | 
| 
       170 
170 
     | 
    
         | 
| 
       171 
171 
     | 
    
         
             
                it "accepts nil value" do
         
     | 
| 
       172 
     | 
    
         
            -
                  [nil].must_be_written_to subject, :valid_until
         
     | 
| 
      
 172 
     | 
    
         
            +
                  _([nil]).must_be_written_to subject, :valid_until
         
     | 
| 
       173 
173 
     | 
    
         
             
                end
         
     | 
| 
       174 
174 
     | 
    
         | 
| 
       175 
175 
     | 
    
         
             
                it "parses dates and times" do
         
     | 
| 
       176 
176 
     | 
    
         
             
                  string = '2018-01-01 12:00:00 +0100'
         
     | 
| 
       177 
     | 
    
         
            -
                  subject.tap { |s| s.valid_until = string }.valid_until.must_equal Time.parse(string)
         
     | 
| 
      
 177 
     | 
    
         
            +
                  _(subject.tap { |s| s.valid_until = string }.valid_until).must_equal Time.parse(string)
         
     | 
| 
       178 
178 
     | 
    
         
             
                end
         
     | 
| 
       179 
179 
     | 
    
         
             
              end
         
     | 
| 
       180 
180 
     | 
    
         | 
| 
         @@ -184,7 +184,7 @@ describe AIXM::Feature::Obstacle do 
     | 
|
| 
       184 
184 
     | 
    
         | 
| 
       185 
185 
     | 
    
         
             
              describe :grouped? do
         
     | 
| 
       186 
186 
     | 
    
         
             
                it "returns false since single obstacles are not grouped" do
         
     | 
| 
       187 
     | 
    
         
            -
                  subject.wont_be :grouped?
         
     | 
| 
      
 187 
     | 
    
         
            +
                  _(subject).wont_be :grouped?
         
     | 
| 
       188 
188 
     | 
    
         
             
                end
         
     | 
| 
       189 
189 
     | 
    
         
             
              end
         
     | 
| 
       190 
190 
     | 
    
         | 
| 
         @@ -194,19 +194,18 @@ describe AIXM::Feature::Obstacle do 
     | 
|
| 
       194 
194 
     | 
    
         
             
                end
         
     | 
| 
       195 
195 
     | 
    
         | 
| 
       196 
196 
     | 
    
         
             
                it "returns false for unlinked obstacles" do
         
     | 
| 
       197 
     | 
    
         
            -
                  subject.wont_be :linked?
         
     | 
| 
      
 197 
     | 
    
         
            +
                  _(subject).wont_be :linked?
         
     | 
| 
       198 
198 
     | 
    
         
             
                end
         
     | 
| 
       199 
199 
     | 
    
         | 
| 
       200 
200 
     | 
    
         
             
                it "returns true for linked obstacles" do
         
     | 
| 
       201 
201 
     | 
    
         
             
                  subject = AIXM::Factory.linked_obstacle_group.obstacles.last
         
     | 
| 
       202 
     | 
    
         
            -
                  subject.must_be :linked?
         
     | 
| 
      
 202 
     | 
    
         
            +
                  _(subject).must_be :linked?
         
     | 
| 
       203 
203 
     | 
    
         
             
                end
         
     | 
| 
       204 
204 
     | 
    
         
             
              end
         
     | 
| 
       205 
205 
     | 
    
         | 
| 
       206 
206 
     | 
    
         
             
              describe :to_xml do
         
     | 
| 
       207 
207 
     | 
    
         
             
                it "builds correct AIXM" do
         
     | 
| 
       208 
     | 
    
         
            -
                   
     | 
| 
       209 
     | 
    
         
            -
                  subject.to_xml.must_equal <<~END
         
     | 
| 
      
 208 
     | 
    
         
            +
                  _(subject.to_xml).must_equal <<~END
         
     | 
| 
       210 
209 
     | 
    
         
             
                    <!-- Obstacle: [tower] 48.85825000N 002.29458889E EIFFEL TOWER -->
         
     | 
| 
       211 
210 
     | 
    
         
             
                    <Obs>
         
     | 
| 
       212 
211 
     | 
    
         
             
                      <ObsUid>
         
     | 
| 
         @@ -232,7 +231,7 @@ describe AIXM::Feature::Obstacle do 
     | 
|
| 
       232 
231 
     | 
    
         | 
| 
       233 
232 
     | 
    
         
             
                it "builds correct OFMX" do
         
     | 
| 
       234 
233 
     | 
    
         
             
                  AIXM.ofmx!
         
     | 
| 
       235 
     | 
    
         
            -
                  subject.to_xml.must_equal <<~END
         
     | 
| 
      
 234 
     | 
    
         
            +
                  _(subject.to_xml).must_equal <<~END
         
     | 
| 
       236 
235 
     | 
    
         
             
                    <!-- Obstacle group: EIFFEL TOWER -->
         
     | 
| 
       237 
236 
     | 
    
         
             
                    <Ogr>
         
     | 
| 
       238 
237 
     | 
    
         
             
                      <OgrUid>
         
     | 
| 
         @@ -275,5 +274,11 @@ describe AIXM::Feature::Obstacle do 
     | 
|
| 
       275 
274 
     | 
    
         
             
                    </Obs>
         
     | 
| 
       276 
275 
     | 
    
         
             
                  END
         
     | 
| 
       277 
276 
     | 
    
         
             
                end
         
     | 
| 
      
 277 
     | 
    
         
            +
             
     | 
| 
      
 278 
     | 
    
         
            +
                it "builds OFMX with mid" do
         
     | 
| 
      
 279 
     | 
    
         
            +
                  AIXM.ofmx!
         
     | 
| 
      
 280 
     | 
    
         
            +
                  AIXM.config.mid_region = 'LF'
         
     | 
| 
      
 281 
     | 
    
         
            +
                  _(subject.to_xml).must_match /<ObsUid mid="864b252b-0b1d-66c4-22cd-14dbda287467">/
         
     | 
| 
      
 282 
     | 
    
         
            +
                end
         
     | 
| 
       278 
283 
     | 
    
         
             
              end
         
     | 
| 
       279 
284 
     | 
    
         
             
            end
         
     |