Skip to content

Commit 5a06e07

Browse files
authored
[uss_qualifier] Add test scenario for validation of op intents (#87)
* [uss_qualifier] Add test scenario for validation of op intents * add config to suites and configurations for invalid flight intents scenario and resource * remove valid_ended flight intent * remove valid_very_close flight intent * remove intent with many vertices injection * add checks not planned * add opin0040 check * add validation for precision * add kentland test data * add kentland resources entry
1 parent 15f5a0e commit 5a06e07

File tree

13 files changed

+812
-0
lines changed

13 files changed

+812
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
v1:
2+
test_run:
3+
resources:
4+
resource_declarations:
5+
"$ref": ../resources.yaml#/f3548_single_scenario
6+
action:
7+
test_scenario:
8+
scenario_type: scenarios.astm.utm.FlightIntentValidation
9+
resources:
10+
tested_uss: uss1
11+
flight_intents: invalid_flight_intents
12+
dss: dss
13+
artifacts:
14+
tested_roles:
15+
report_path: output/tested_requirements.html
16+
roles:
17+
- name: Strategic Coordination role
18+
requirement_set: astm.f3548.v21.scd
19+
participants:
20+
- uss1
21+
"$ref": ../artifacts.yaml#/relative

monitoring/uss_qualifier/configurations/dev/local_test.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"flight_planners": "flight_planners",
2222
"conflicting_flights": "conflicting_flights",
2323
"priority_preemption_flights": "priority_preemption_flights",
24+
"invalid_flight_intents": "invalid_flight_intents",
2425
"invalid_flight_auth_flights": "invalid_flight_auth_flights",
2526
"dss": "dss",
2627
"netrid_dss_instances_v19": "netrid_dss_instances_v19"

monitoring/uss_qualifier/configurations/dev/resources.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ che_flight_intents:
5454
specification:
5555
planning_time: '0:05:00'
5656
file_source: test_data.che.flight_intents.priority_preemption
57+
invalid_flight_intents:
58+
resource_type: resources.flight_planning.FlightIntentsResource
59+
specification:
60+
planning_time: '0:05:00'
61+
file_source: test_data.che.flight_intents.invalid_flight_intents
5762

5863
kentland_flight_intents:
5964
conflicting_flights:
@@ -66,6 +71,11 @@ kentland_flight_intents:
6671
specification:
6772
planning_time: '0:05:00'
6873
file_source: test_data.usa.kentland.flight_intents.priority_preemption
74+
invalid_flight_intents:
75+
resource_type: resources.flight_planning.FlightIntentsResource
76+
specification:
77+
planning_time: '0:05:00'
78+
file_source: test_data.usa.kentland.flight_intents.invalid_flight_intents
6979

7080
f3548_che:
7181
allOf:

monitoring/uss_qualifier/configurations/dev/self_contained_f3548.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ v1:
1313
flight_planners: flight_planners
1414
conflicting_flights: conflicting_flights
1515
priority_preemption_flights: priority_preemption_flights
16+
invalid_flight_intents: invalid_flight_intents
1617
dss: dss
1718

1819
# This block defines all the resources available in the resource pool.
@@ -57,6 +58,13 @@ v1:
5758
planning_time: '0:05:00'
5859
file_source: test_data.che.flight_intents.priority_preemption
5960

61+
# Details of flights with invalid operational intents (used in flight intent validation scenario)
62+
invalid_flight_intents:
63+
resource_type: resources.flight_planning.FlightIntentsResource
64+
specification:
65+
planning_time: '0:05:00'
66+
file_source: test_data.che.flight_intents.invalid_flight_intents
67+
6068
# Location of DSS instance that can be used to verify flight planning outcomes
6169
dss:
6270
resource_type: resources.astm.f3548.v21.DSSInstanceResource

monitoring/uss_qualifier/scenarios/astm/utm/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from .flight_intent_validation.flight_intent_validation import FlightIntentValidation
12
from .nominal_planning.nominal_planning import NominalPlanning
23
from .nominal_planning.conflict_higher_priority.conflict_higher_priority import (
34
ConflictHigherPriority,
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
# Validation of operational intents test scenario
2+
3+
## Description
4+
This test checks that the USS validates correctly the operational intents it creates.
5+
Notably the following requirements:
6+
- **[astm.f3548.v21.OPIN0015](../../../../requirements/astm/f3548/v21.md)**
7+
- **[astm.f3548.v21.OPIN0020](../../../../requirements/astm/f3548/v21.md)**
8+
- **[astm.f3548.v21.OPIN0030](../../../../requirements/astm/f3548/v21.md)**
9+
- **[astm.f3548.v21.OPIN0040](../../../../requirements/astm/f3548/v21.md)**
10+
- **[astm.f3548.v21.GEN0500](../../../../requirements/astm/f3548/v21.md)**
11+
12+
13+
## Resources
14+
### flight_intents
15+
FlightIntentsResource that provides the following flight intents:
16+
- `valid_flight`: a valid operational intent upon which other invalid ones are derived, in `Accepted` state
17+
- `valid_activated`: state mutation `Activated`
18+
- `invalid_accepted_offnominal`: off-nominal volumes mutation: has (any valid) off-nominal volume
19+
- `invalid_activated_offnominal`: state mutation `Activated`
20+
- `invalid_too_far_away`: reference time mutation: reference time pulled back so that it is like the operational intent is attempted to be planned more than OiMaxPlanHorizon = 30 days ahead of time
21+
- `valid_conflict_tiny_overlap`: volumes mutation: has a volume that overlaps with `valid_op_intent` just above IntersectionMinimumPrecision = 1cm in a way that must result as a conflict
22+
23+
### tested_uss
24+
FlightPlannerResource that will be tested for its validation of operational intents.
25+
26+
### dss
27+
DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.
28+
29+
30+
## Setup test case
31+
### Check for necessary capabilities test step
32+
The USSs is queried for its capabilities to ensure this test can proceed.
33+
34+
#### Valid responses check
35+
If the USS does not respond appropriately to the endpoint queried to determine capability, this check will fail.
36+
37+
#### Support BasicStrategicConflictDetection check
38+
This check will fail if the flight planner does not support BasicStrategicConflictDetection per
39+
**[astm.f3548.v21.GEN0310](../../../../requirements/astm/f3548/v21.md)** as the USS does not support the InterUSS
40+
implementation of that requirement.
41+
42+
### Area clearing test step
43+
The tested USS is requested to remove all flights from the area under test.
44+
45+
#### Area cleared successfully check
46+
**[interuss.automated_testing.flight_planning.ClearArea](../../../../requirements/interuss/automated_testing/flight_planning.md)**
47+
48+
49+
## Attempt to plan invalid flight intents test case
50+
### Attempt to plan flight intent too far ahead of time test step
51+
The user flight intent that the test driver attempts to plan has a reference time that is more than
52+
OiMaxPlanHorizon = 30 days ahead of time from the actual intent. As such, the planning attempt should be rejected.
53+
54+
#### Incorrectly planned check
55+
If the USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed to validate
56+
the intent provided. Therefore, this check will fail if the USS indicates success in creating the flight from the user
57+
flight intent, per **[astm.f3548.v21.OPIN0030](../../../../requirements/astm/f3548/v21.md)**.
58+
59+
#### Failure check
60+
All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS
61+
to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per
62+
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../requirements/interuss/automated_testing/flight_planning.md)**.
63+
64+
### [Validate flight intent too far ahead of time not planned test step](../validate_not_shared_operational_intent.md)
65+
66+
67+
## Attempt to specify off-nominal volume in Accepted and Activated states test case
68+
### Attempt to plan flight with an off-nominal volume test step
69+
The user flight intent that the test driver attempts to plan has an off-nominal volume.
70+
As such, the planning attempt should be rejected.
71+
72+
#### Incorrectly planned check
73+
If the USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed to validate
74+
the intent provided. Therefore, this check will fail if the USS indicates success in creating the flight from the user
75+
flight intent, per **[astm.f3548.v21.OPIN0015](../../../../requirements/astm/f3548/v21.md)**.
76+
77+
#### Failure check
78+
All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS
79+
to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per
80+
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../requirements/interuss/automated_testing/flight_planning.md)**.
81+
82+
### [Validate flight intent with an off-nominal volume not planned test step](../validate_not_shared_operational_intent.md)
83+
84+
### [Plan valid flight intent test step](../../../flight_planning/plan_flight_intent.md)
85+
The valid flight intent should be successfully planned by the flight planner.
86+
87+
### Attempt to modify planned flight with an off-nominal volume test step
88+
The user flight intent that the test driver attempts to modify has an off-nominal volume and is in the `Accepted` state.
89+
As such, the modification attempt should be rejected.
90+
91+
#### Incorrectly modified check
92+
If the USS successfully modifies the flight or otherwise fails to indicate a rejection, it means that it failed to validate
93+
the intent provided. Therefore, this check will fail if the USS indicates success in modifying the flight from the user
94+
flight intent, per **[astm.f3548.v21.OPIN0015](../../../../requirements/astm/f3548/v21.md)**.
95+
96+
#### Failure check
97+
All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS
98+
to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per
99+
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../requirements/interuss/automated_testing/flight_planning.md)**.
100+
101+
### [Validate planned flight not modified test step](../validate_shared_operational_intent.md)
102+
Validate that the planned flight intent was not modified with an off-nominal volume.
103+
104+
### [Activate valid flight intent test step](../../../flight_planning/activate_flight_intent.md)
105+
The valid flight intent should be successfully activated by the flight planner.
106+
107+
### Attempt to modify activated flight with an off-nominal volume test step
108+
The user flight intent that the test driver attempts to modify has an off-nominal volume and is in the `Activated` state.
109+
As such, the modification attempt should be rejected.
110+
111+
#### Incorrectly modified check
112+
If the USS successfully modifies the flight or otherwise fails to indicate a rejection, it means that it failed to validate
113+
the intent provided. Therefore, this check will fail if the USS indicates success in modifying the flight from the user
114+
flight intent, per **[astm.f3548.v21.OPIN0015](../../../../requirements/astm/f3548/v21.md)**.
115+
116+
#### Failure check
117+
All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS
118+
to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per
119+
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../requirements/interuss/automated_testing/flight_planning.md)**.
120+
121+
### [Validate activated flight not modified test step](../validate_shared_operational_intent.md)
122+
Validate that the activated flight intent was not modified with an off-nominal volume.
123+
124+
### [Delete valid flight intent test step](../../../flight_planning/delete_flight_intent.md)
125+
126+
127+
## Validate transition to Ended state after cancellation test case
128+
### [Plan flight intent test step](../../../flight_planning/plan_flight_intent.md)
129+
The valid flight intent should be successfully planned by the flight planner.
130+
131+
### [Validate flight intent shared correctly test step](../validate_shared_operational_intent.md)
132+
Validate that the flight intent was shared correctly and is discoverable.
133+
134+
### [Cancel flight intent test step](../../../flight_planning/delete_flight_intent.md)
135+
The flight intent should be successfully transition to Ended state by the flight planner.
136+
137+
### Validate flight intent is non-discoverable test step
138+
#### Operational intent not shared check
139+
If the operational intent is still discoverable after it was transitioned to Ended,
140+
this check will fail per **[astm.f3548.v21.OPIN0040](../../../../requirements/astm/f3548/v21.md)**.
141+
142+
143+
## Validate precision of intersection computations test case
144+
### [Plan control flight intent test step](../../../flight_planning/plan_flight_intent.md)
145+
The valid control flight intent should be successfully planned by the flight planner.
146+
147+
### Attempt to plan flight conflicting by a tiny overlap test step
148+
The tested USS is instructed to plan a flight that is constructed in a way that it intersects by just over IntersectionMinimumPrecision = 1 cm.
149+
150+
#### Incorrectly planned check
151+
If the tested USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed
152+
to correctly compute the conflicting intersection. Therefore, this check will fail if the USS indicates success in
153+
planning the flight from the user flight intent, per **[astm.f3548.v21.GEN0500](../../../../requirements/astm/f3548/v21.md)**.
154+
155+
#### Failure check
156+
All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS
157+
to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per
158+
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../requirements/interuss/automated_testing/flight_planning.md)**.
159+
160+
### [Validate conflicting flight not planned test step](../validate_not_shared_operational_intent.md)
161+
162+
163+
## Cleanup
164+
### Successful flight deletion check
165+
**[interuss.automated_testing.flight_planning.DeleteFlightSuccess](../../../../requirements/interuss/automated_testing/flight_planning.md)**

0 commit comments

Comments
 (0)