Portree-Kid / flightgear-airports

GNU General Public License v3.0
6 stars 1 forks source link

v0.20 - Route Validation from ParkPos to Runway Fail #58

Closed BecOzIcan closed 4 years ago

BecOzIcan commented 4 years ago

image

BecOzIcan commented 4 years ago

Travis Error is Valid : No valid Route from Parkpos (3) to Node on Runway (254) : was going against uni directional segment

Bug Name Changed

Portree-Kid commented 4 years ago

The check might be a wee bit funny. Since the node is now an End in one direction it is marked as an illegitimate end. image

BecOzIcan commented 4 years ago

Sorry, I don't understand what you are trying to say. The way I understand this test(s) :

LEGITIMATE Test :

  1. A node connected to a single segment is legitimate if marked as "on runway" and has passed the Turf Test. This makes it the Route End, Runway side
  2. A node connected to a single segment is legitimate if it also connects to a Parkpos. This makes it the Route End, ParkPos side
  3. From (1) A node connected ONLY to a single segment AND not marked as "On Runway" is Illegitimate

note: the Turf test (on runway) needs to run before the illegitimate test so (1) has valid entry conditions

NO ROUTE FOUND Test I guess you only test pairs of Route end points from the above two definitions?

PARKPOS TEST (from the image) The existing parkpos test should run before the route tests, right ? Maybe it's only a case of test cases hierarchy. Individual elements validity should be tested before route ones and if individual elements tests fail, testing is interrupted (routes not tested)

BecOzIcan commented 4 years ago

To make your test easier (all lower level elements valid), use VVNB and mark the single segment in red unidirectional RIGHT to LEFT

image

Portree-Kid commented 4 years ago

NO ROUTE FOUND Test I guess you only test pairs of Route end points from the above two definitions?

Correct Parking -> Runway and Runway -> Parking

PARKPOS TEST (from the image) The existing parkpos test should run before the route tests, right ? Maybe it's only a case of test cases hierarchy. Individual elements validity should be tested before route ones and if individual elements tests fail, testing is interrupted (routes not tested)

BecOzIcan commented 4 years ago

Ok I think I got it

For the case of screenshot, you cannot decide 3 is illegitimate during your node or parkpos test phase because 3's 'illegitimacy' exist only in the context of routing ie trying to get out of the parkpos.

  1. Test Node Legitimacy > 3 passes the test
  2. Test Parkpos Validity > 2 passes because the segment connected to parkpos is bidirectionnal
  3. Test Routes > Fails because I cannot reach the parkpos from the runway

That calls for differentiating / hierarchizing test between structural and contextual.

Structural (illegitimate) Nodes : Broken Routes ie Unconnected Node unless On Runway or Pushback Holding Point ParkPos: Inaccessible Parking ie segments in/out of park pos not bidirectional (not threshold or route dependent) Pushback: the usual

Routing is contextual: Parking -> Runway and Runway -> Parking

BecOzIcan commented 4 years ago

Before I forget : you cannot identify 3 as the problem when checking the route because you could have other blockages further away in the same route which would also interrupt your test. MVP expectation is only to signal the route is invalid. User has to check all segments to find the problem(s) with it. Does this help ?

Portree-Kid commented 4 years ago

While trying to sleep I also decided to split between a structural and routing graph. That was 3 passes the structural test and the routing test.

BecOzIcan commented 4 years ago

Damn You're up early!. Good Morning! The part I still don't get is my initial issues was only that Travis had it right and FGA didn't so I thought it was just a matter of re aligning them.

Portree-Kid commented 4 years ago

;-) yes just a matter of realignment. Maybe I'll extract the FG Airports check into groundweb. That way no pull request would ever be opened without a minimum quality.

BecOzIcan commented 4 years ago

We still use Groundweb/Azure to upload our historical TD files. These have much less checks in place so likely they will all end up rejected systematically. We should keep this "backdoor" open. Only impact is on me on the merging side and I am ok with it.

For as long as FGA and Travis checks align, all FGA uploads will meet quality requirements.

BecOzIcan commented 4 years ago

We can restrict groundweb once FGA stable and the TD backlog purged

Portree-Kid commented 4 years ago

Fixed in 0.0.21