modspec 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/.rubocop_todo.yml +118 -0
- data/Gemfile +4 -2
- data/README.adoc +508 -17
- data/lib/modspec/conformance_class.rb +39 -10
- data/lib/modspec/conformance_test.rb +40 -13
- data/lib/modspec/identifier.rb +5 -3
- data/lib/modspec/normative_statement.rb +49 -14
- data/lib/modspec/normative_statements_class.rb +39 -12
- data/lib/modspec/suite.rb +242 -5
- data/lib/modspec/version.rb +1 -1
- data/lib/modspec.rb +14 -4
- data/modspec.gemspec +8 -14
- data/spec/conformance_class.liquid +98 -0
- data/spec/fixtures/advanced-cc.yaml +52 -0
- data/spec/fixtures/advanced-json-cc.yaml +24 -0
- data/spec/fixtures/advanced-json-rc.yaml +16 -0
- data/spec/fixtures/advanced-rc.yaml +43 -0
- data/spec/fixtures/basic-quaternion-cc.yaml +44 -0
- data/spec/fixtures/basic-quaternion-json-cc.yaml +24 -0
- data/spec/fixtures/basic-quaternion-json-rc.yaml +17 -0
- data/spec/fixtures/basic-quaternion-json-strict-cc.yaml +22 -0
- data/spec/fixtures/basic-quaternion-json-strict-rc.yaml +19 -0
- data/spec/fixtures/basic-quaternion-rc.yaml +34 -0
- data/spec/fixtures/basic-ypr-cc.yaml +39 -0
- data/spec/fixtures/basic-ypr-json-cc.yaml +23 -0
- data/spec/fixtures/basic-ypr-json-rc.yaml +21 -0
- data/spec/fixtures/basic-ypr-rc.yaml +32 -0
- data/spec/fixtures/chain-cc.yaml +50 -0
- data/spec/fixtures/chain-json-cc.yaml +24 -0
- data/spec/fixtures/chain-json-rc.yaml +20 -0
- data/spec/fixtures/chain-rc.yaml +36 -0
- data/spec/fixtures/frame-spec-cc.yaml +43 -0
- data/spec/fixtures/frame-spec-rc.yaml +27 -0
- data/spec/fixtures/global-cc.yaml +38 -0
- data/spec/fixtures/global-rc.yaml +23 -0
- data/spec/fixtures/graph-cc.yaml +48 -0
- data/spec/fixtures/graph-json-cc.yaml +24 -0
- data/spec/fixtures/graph-json-rc.yaml +20 -0
- data/spec/fixtures/graph-rc.yaml +38 -0
- data/spec/fixtures/series-irregular-cc.yaml +58 -0
- data/spec/fixtures/series-irregular-json-cc.yaml +24 -0
- data/spec/fixtures/series-irregular-json-rc.yaml +20 -0
- data/spec/fixtures/series-irregular-rc.yaml +41 -0
- data/spec/fixtures/series-regular-cc.yaml +63 -0
- data/spec/fixtures/series-regular-json-cc.yaml +24 -0
- data/spec/fixtures/series-regular-json-rc.yaml +20 -0
- data/spec/fixtures/series-regular-rc.yaml +46 -0
- data/spec/fixtures/stream-cc.yaml +49 -0
- data/spec/fixtures/stream-json-cc.yaml +48 -0
- data/spec/fixtures/stream-json-rc.yaml +32 -0
- data/spec/fixtures/stream-rc.yaml +36 -0
- data/spec/fixtures/tangent-point-cc.yaml +43 -0
- data/spec/fixtures/tangent-point-rc.yaml +38 -0
- data/spec/fixtures/time-cc.yaml +32 -0
- data/spec/fixtures/time-rc.yaml +20 -0
- data/spec/modspec/conformance_class_spec.rb +154 -0
- data/spec/modspec/conformance_test_spec.rb +76 -0
- data/spec/modspec/normative_statement_spec.rb +81 -0
- data/spec/modspec/normative_statements_class_spec.rb +61 -0
- data/spec/modspec/suite_spec.rb +109 -0
- data/spec/modspec_spec.rb +25 -0
- data/spec/requirements_class.liquid +93 -0
- data/spec/spec_helper.rb +16 -0
- metadata +67 -57
@@ -0,0 +1,98 @@
|
|
1
|
+
{% assign count = 0 %}
|
2
|
+
{% for scope in group.scopes %}
|
3
|
+
{% assign count = count | plus: 1 %}
|
4
|
+
[[cc-{{prefix}}-{{count}}]]
|
5
|
+
.{{scope.name}}
|
6
|
+
[conformance_class]
|
7
|
+
====
|
8
|
+
[%metadata]
|
9
|
+
identifier:: {{scope.identifier}}
|
10
|
+
description::
|
11
|
+
+
|
12
|
+
--
|
13
|
+
{{scope.description}}
|
14
|
+
--
|
15
|
+
|
16
|
+
target:: {{scope.target}}
|
17
|
+
|
18
|
+
{% for depend in {{scope.dependencies}} %}
|
19
|
+
inherit:: {{depend}}
|
20
|
+
{% endfor %}
|
21
|
+
|
22
|
+
{% for test in {{scope.tests}} %}
|
23
|
+
conformance-test:: {{test.identifier}}
|
24
|
+
{% endfor %}
|
25
|
+
|
26
|
+
{% if {{scope.guidance}} %}
|
27
|
+
guidance::
|
28
|
+
+
|
29
|
+
--
|
30
|
+
{% for rec in {{scope.guidance}} %}
|
31
|
+
* {{rec}}
|
32
|
+
{% endfor %}
|
33
|
+
--
|
34
|
+
{% endif %}
|
35
|
+
|
36
|
+
{% if {{scope.clause}} %}
|
37
|
+
Clause::
|
38
|
+
+
|
39
|
+
--
|
40
|
+
{{scope.clause}}
|
41
|
+
--
|
42
|
+
{% endif %}
|
43
|
+
====
|
44
|
+
|
45
|
+
{% for test in {{scope.tests}} %}
|
46
|
+
{% if {{test.name}} %}
|
47
|
+
.{{test.name}}
|
48
|
+
{% endif %}
|
49
|
+
[conformance_test]
|
50
|
+
====
|
51
|
+
[%metadata]
|
52
|
+
identifier:: {{test.identifier}}
|
53
|
+
description::
|
54
|
+
+
|
55
|
+
--
|
56
|
+
{{test.description}}
|
57
|
+
--
|
58
|
+
|
59
|
+
{% for target in {{test.targets}} %}
|
60
|
+
target:: {{target}}
|
61
|
+
|
62
|
+
{% endfor %}
|
63
|
+
|
64
|
+
{% for depend in {{test.dependencies}} %}
|
65
|
+
inherit:: {{depend}}
|
66
|
+
{% endfor %}
|
67
|
+
|
68
|
+
{% if {{test.guidance}} %}
|
69
|
+
guidance::
|
70
|
+
+
|
71
|
+
--
|
72
|
+
{% for rec in {{test.guidance}} %}
|
73
|
+
* {{rec}}
|
74
|
+
{% endfor %}
|
75
|
+
--
|
76
|
+
{% endif %}
|
77
|
+
|
78
|
+
|
79
|
+
{% if {{test.purpose}} %}
|
80
|
+
test-purpose:: {{test.purpose}}
|
81
|
+
{% endif %}
|
82
|
+
|
83
|
+
{% if {{test.method}} %}
|
84
|
+
test-method::
|
85
|
+
+
|
86
|
+
--
|
87
|
+
{{test.method}}
|
88
|
+
--
|
89
|
+
{% endif %}
|
90
|
+
|
91
|
+
{% if {{test.type}} %}
|
92
|
+
Test type:: {{test.type}}
|
93
|
+
{% endif %}
|
94
|
+
====
|
95
|
+
|
96
|
+
{% endfor %}
|
97
|
+
|
98
|
+
{% endfor %}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: Basic-YPR logical model SDU conformance
|
4
|
+
identifier: /conf/advanced
|
5
|
+
target:
|
6
|
+
- /req/advanced
|
7
|
+
classification: "Target Type: SDU"
|
8
|
+
description: |
|
9
|
+
To confirm that an implementation of the Advanced GeoPose conforms to
|
10
|
+
the Logical Model.
|
11
|
+
dependencies:
|
12
|
+
- /conf/global
|
13
|
+
- /conf/frame-spec
|
14
|
+
- /conf/time
|
15
|
+
|
16
|
+
tests:
|
17
|
+
- name: Verify expression of valid time as GeoPose_Instant
|
18
|
+
identifier: /conf/advanced/valid-time
|
19
|
+
targets:
|
20
|
+
- /req/advanced/valid-time
|
21
|
+
dependencies:
|
22
|
+
- /conf/time/instant
|
23
|
+
description: |
|
24
|
+
To confirm the correct properties of a GeoPose_Instant.
|
25
|
+
purpose: |
|
26
|
+
Confirm that the `Advanced.validTime` attribute is represented by a
|
27
|
+
`GeoPose_Instant` object.
|
28
|
+
method: Inspection
|
29
|
+
|
30
|
+
- name: Verify expression of outer frame
|
31
|
+
identifier: /conf/advanced/frame-spec
|
32
|
+
targets:
|
33
|
+
- /req/advanced/frame-spec
|
34
|
+
description: |
|
35
|
+
To confirm that an implementation of an Advanced SDU contains an explicit
|
36
|
+
frame specification in frameSpecification using the `ExplicitFrameSpec`
|
37
|
+
object.
|
38
|
+
purpose: |
|
39
|
+
Verify that this requirement is satisfied.
|
40
|
+
method: Inspection
|
41
|
+
|
42
|
+
- name: Verify expression of inner frame
|
43
|
+
identifier: /conf/advanced/quaternion
|
44
|
+
targets:
|
45
|
+
- /req/advanced/quaternion
|
46
|
+
description: |
|
47
|
+
To confirm that the unit quaternion consists of four representations of
|
48
|
+
real number values and that the square root of the sum of the squares of
|
49
|
+
those numbers is approximately 1.
|
50
|
+
purpose: |
|
51
|
+
To confirm the correct properties of a quaternion.
|
52
|
+
method: Inspection
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: JSON encoding of Advanced SDU
|
4
|
+
identifier: /conf/advanced-encoding-json
|
5
|
+
target:
|
6
|
+
- /req/advanced-encoding-json
|
7
|
+
classification: "Target Type: JSON SDU"
|
8
|
+
description: |
|
9
|
+
Confirm that a JSON-encoded Advanced GeoPose conforms to the
|
10
|
+
relevant elements of the Logical Model and a corresponding JSON-Schema
|
11
|
+
document.
|
12
|
+
|
13
|
+
tests:
|
14
|
+
- name: Verify conformance via JSON schema
|
15
|
+
identifier: /conf/advanced-encoding-json/definition
|
16
|
+
targets:
|
17
|
+
- /req/advanced-encoding-json/definition
|
18
|
+
description: |
|
19
|
+
To confirm that a Advanced GeoPose in JSON validates against the JSON schema.
|
20
|
+
purpose: |
|
21
|
+
Verify that data validates against the corresponding JSON schema.
|
22
|
+
method: |
|
23
|
+
Validate the JSON data against the Advanced JSON-Schema 2019-9 definition
|
24
|
+
(<<advanced_geopose_json_schema>>).
|
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: JSON encoding of Advanced SDU
|
4
|
+
identifier: /req/advanced-encoding-json
|
5
|
+
description: |
|
6
|
+
Requirements for the JSON encoding of a Advanced SDU.
|
7
|
+
implements:
|
8
|
+
- /req/advanced
|
9
|
+
|
10
|
+
normative_statements:
|
11
|
+
|
12
|
+
- name: Specification as JSON schema
|
13
|
+
identifier: /req/advanced-encoding-json/definition
|
14
|
+
statement: |
|
15
|
+
A JSON-encoded Advanced GeoPose SHALL conform to the
|
16
|
+
Advanced JSON-Schema 2019-9 definition (<<advanced_geopose_json_schema>>).
|
@@ -0,0 +1,43 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: Advanced logical model SDU
|
4
|
+
identifier: /req/advanced
|
5
|
+
description: |
|
6
|
+
The Advanced Target has a more general structure than Basic-YPR and
|
7
|
+
Basic-Quaternion, supporting flexible specification of Outer Frame and a
|
8
|
+
Valid Time.
|
9
|
+
|
10
|
+
dependencies:
|
11
|
+
- /req/global
|
12
|
+
- /req/frame-spec
|
13
|
+
- /req/time
|
14
|
+
normative_statements:
|
15
|
+
|
16
|
+
- name: Expression of valid time as GeoPose_Instant
|
17
|
+
identifier: /req/advanced/valid-time
|
18
|
+
dependencies:
|
19
|
+
- /req/time/instant
|
20
|
+
|
21
|
+
statement: |
|
22
|
+
The `Advanced.validTime` attribute shall be represented by a
|
23
|
+
`GeoPose_Instant` object.
|
24
|
+
|
25
|
+
- name: Expression of outer frame
|
26
|
+
identifier: /req/advanced/frame-spec
|
27
|
+
dependencies:
|
28
|
+
- /req/frame-spec
|
29
|
+
statement: |
|
30
|
+
The `Advanced.frameSpecification` attribute shall represent an explicit
|
31
|
+
frame specification with the `ExplicitFrameSpec` object.
|
32
|
+
|
33
|
+
- name: Expression of inner frame
|
34
|
+
identifier: /req/advanced/quaternion
|
35
|
+
statement: |
|
36
|
+
The `Advanced.quaternion` attribute shall contain a quaternion expressed
|
37
|
+
using the UnitQuaternion datatype value expressed as four real numbers,
|
38
|
+
representing four quaternion components w, x, y, z, in that sequential
|
39
|
+
order. The sum of the squares of the individual components SHALL be as
|
40
|
+
close to 1.0 as the real number representation allows. The quaternion
|
41
|
+
SHALL be applied to an initial reference frame oriented East-North-Up
|
42
|
+
(ENU) coordinate system where the coordinate axes East, North, and Up
|
43
|
+
correspond to the axes X, Y, Z.
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: Basic-Quaternion logical model SDU conformance
|
4
|
+
identifier: /conf/basic-quaternion
|
5
|
+
target:
|
6
|
+
- /req/basic-quaternion
|
7
|
+
classification: "Target Type: SDU"
|
8
|
+
description: Conformance with Basic-Quaternion logical model SDU
|
9
|
+
dependencies:
|
10
|
+
- /conf/global
|
11
|
+
- /conf/tangent-point
|
12
|
+
|
13
|
+
tests:
|
14
|
+
- name: Verify expression of outer frame
|
15
|
+
identifier: /conf/basic-quaternion/position
|
16
|
+
targets:
|
17
|
+
- /req/basic-quaternion/position
|
18
|
+
description: |
|
19
|
+
To confirm that a Basic-Quaternion GeoPose contains an Outer Frame
|
20
|
+
specified by an implicit WGS-84 CRS and an implicit EPSG 4461-CS (LTP-ENU)
|
21
|
+
coordinate system and explicit parameters defining the tangent point.
|
22
|
+
purpose: |
|
23
|
+
Verify that this requirement is satisfied.
|
24
|
+
method: Inspection
|
25
|
+
|
26
|
+
- name: Verify expression of inner frame
|
27
|
+
identifier: /conf/basic-quaternion/quaternion
|
28
|
+
targets:
|
29
|
+
- /req/basic-quaternion/quaternion
|
30
|
+
description: |
|
31
|
+
To confirm that a Basic-Quaternion GeoPose contains an Inner Frame is a
|
32
|
+
rotation-only transformation using a unit quaternion, which is an instance
|
33
|
+
of a GeoPose Logical Model quaternion data type value that is expressed as
|
34
|
+
four real numbers, representing four quaternion components w, x, y, z, in
|
35
|
+
that sequential order.
|
36
|
+
|
37
|
+
The sum of the squares of the individual components is as close to 1.0 as
|
38
|
+
the real number representation allows. The quaternion is applied to an
|
39
|
+
initial reference frame oriented East-North-Up (ENU) coordinate system
|
40
|
+
where the coordinate axes East, North, and Up correspond to the axes X, Y,
|
41
|
+
Z.
|
42
|
+
purpose: |
|
43
|
+
Verify that this requirement is satisfied.
|
44
|
+
method: Inspection
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: Permissive JSON encoding of Basic-Quaternion SDU
|
4
|
+
identifier: /conf/basic-quaternion-encoding-json
|
5
|
+
target:
|
6
|
+
- /req/basic-quaternion-encoding-json
|
7
|
+
classification: "Target Type: JSON SDU"
|
8
|
+
description: |
|
9
|
+
Confirm that a JSON-encoded Basic-Quaternion GeoPose conforms to the
|
10
|
+
relevant elements of the Logical Model and a corresponding JSON-Schema
|
11
|
+
document.
|
12
|
+
|
13
|
+
tests:
|
14
|
+
- name: Verify conformance via JSON schema
|
15
|
+
identifier: /conf/basic-quaternion-encoding-json/definition
|
16
|
+
targets:
|
17
|
+
- /req/basic-quaternion-encoding-json/definition
|
18
|
+
description: |
|
19
|
+
To confirm that a Basic-Quaternion GeoPose in JSON validates against the JSON schema.
|
20
|
+
purpose: |
|
21
|
+
Verify that data validates against the corresponding JSON schema.
|
22
|
+
method: |
|
23
|
+
Validate the JSON data against the Basic-Quaternion JSON Schema 2019-9 definition
|
24
|
+
(<<basic_quaternion_permissive_json_schema>>).
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: Permissive JSON encoding of Basic-Quaternion SDU
|
4
|
+
identifier: /req/basic-quaternion-encoding-json
|
5
|
+
description: |
|
6
|
+
Requirements for the JSON encoding of a Basic-Quaternion SDU.
|
7
|
+
implements:
|
8
|
+
- /req/basic-quaternion
|
9
|
+
|
10
|
+
normative_statements:
|
11
|
+
|
12
|
+
- name: Specification as JSON schema
|
13
|
+
identifier: /req/basic-quaternion-encoding-json/definition
|
14
|
+
statement: |
|
15
|
+
A JSON-encoded Basic-Quaternion GeoPose SHALL conform to the
|
16
|
+
Basic-Quaternion JSON-Schema 2019-9 definition
|
17
|
+
(<<basic_quaternion_permissive_json_schema>>).
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: Strict JSON encoding of Basic-Quaternion SDU
|
4
|
+
identifier: /conf/basic-quaternion-encoding-json-strict
|
5
|
+
target:
|
6
|
+
- /req/basic-quaternion-encoding-json-strict
|
7
|
+
classification: "Target Type: JSON SDU"
|
8
|
+
description: Conformance with the strict JSON encoding of Basic-Quaternion SDU
|
9
|
+
|
10
|
+
tests:
|
11
|
+
- name: Verify conformance via JSON schema
|
12
|
+
identifier: /conf/basic-quaternion-encoding-json-strict/definition
|
13
|
+
targets:
|
14
|
+
- /req/basic-quaternion-encoding-json-strict/definition
|
15
|
+
description: |
|
16
|
+
To confirm that a Basic-Quaternion GeoPose in strict JSON encoding
|
17
|
+
validates against the JSON schema.
|
18
|
+
purpose: |
|
19
|
+
Verify that data validates against the corresponding JSON schema.
|
20
|
+
method: |
|
21
|
+
Validate the JSON data against the strict Basic-Quaternion JSON-Schema 2019-9 definition
|
22
|
+
(<<basic_quaternion_strict_json_schema>>).
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: Strict JSON encoding of Basic-Quaternion SDU
|
4
|
+
identifier: /req/basic-quaternion-encoding-json-strict
|
5
|
+
description: |
|
6
|
+
Requirements for the JSON encoding of a Basic-Quaternion SDU in strict mode.
|
7
|
+
The strict encoding does not allow specification of JSON elements outside of
|
8
|
+
the schema.
|
9
|
+
implements:
|
10
|
+
- /req/basic-quaternion
|
11
|
+
|
12
|
+
normative_statements:
|
13
|
+
|
14
|
+
- name: Specification as JSON schema
|
15
|
+
identifier: /req/basic-quaternion-encoding-json-strict/definition
|
16
|
+
statement: |
|
17
|
+
A JSON-encoded Basic-Quaternion GeoPose SHALL conform to the
|
18
|
+
strict Basic-Quaternion JSON-Schema 2019-9 definition
|
19
|
+
(<<basic_quaternion_strict_json_schema>>).
|
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: Basic-Quaternion logical model SDU
|
4
|
+
identifier: /req/basic-quaternion
|
5
|
+
description: |
|
6
|
+
The Basic-Quaternion Target has a simple structure with no options. Position
|
7
|
+
is specified as a point in an LTP-ENU frame and rotation is specified as a
|
8
|
+
unit quaternion.
|
9
|
+
|
10
|
+
dependencies:
|
11
|
+
- /req/global
|
12
|
+
- /req/tangent-point
|
13
|
+
normative_statements:
|
14
|
+
|
15
|
+
- name: Expression of outer frame
|
16
|
+
identifier: /req/basic-quaternion/position
|
17
|
+
statement: |
|
18
|
+
The `Basic_Quaternion.position` attribute shall represent the outer frame,
|
19
|
+
specified by an implicit WGS-84 CRS and an implicit EPSG 4461-CS (LTP-ENU)
|
20
|
+
coordinate system and explicit parameters to define the tangent point.
|
21
|
+
|
22
|
+
- name: Expression of inner frame
|
23
|
+
identifier: /req/basic-quaternion/quaternion
|
24
|
+
statement: |
|
25
|
+
The `Basic_Quaternion.quaternion` attribute shall represent the inner
|
26
|
+
frame, which shall be a rotation-only transformation using a unit
|
27
|
+
quaternion. The uniq quaternion shall be represented as an instance of a
|
28
|
+
GeoPose Logical Model quaternion data type, expressed as four real
|
29
|
+
numbers, representing four quaternion components w, x, y, z, in that
|
30
|
+
sequential order. The sum of the squares of the individual components
|
31
|
+
shall be as close to 1.0 as the real number representation allows. The
|
32
|
+
quaternion shall be applied to an initial reference frame oriented
|
33
|
+
East-North-Up (ENU) coordinate system where the coordinate axes East,
|
34
|
+
North, and Up correspond to the axes X, Y, Z.
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: Basic-YPR logical model SDU conformance
|
4
|
+
identifier: /conf/basic-ypr
|
5
|
+
target:
|
6
|
+
- /req/basic-ypr
|
7
|
+
classification: "Target Type: SDU"
|
8
|
+
description: Conformance with Basic-YPR logical model SDU
|
9
|
+
dependencies:
|
10
|
+
- /conf/global
|
11
|
+
- /conf/tangent-point
|
12
|
+
|
13
|
+
tests:
|
14
|
+
- name: Verify expression of outer frame
|
15
|
+
identifier: /conf/basic-ypr/position
|
16
|
+
targets:
|
17
|
+
- /req/basic-ypr/position
|
18
|
+
description: |
|
19
|
+
To confirm that an implementation of a Basic-YPR consists of an Outer
|
20
|
+
Frame specified by an implicit WGS-84 CRS and an implicit EPSG 4461-CS
|
21
|
+
(LTP-ENU) coordinate system and explicit parameters to define the tangent
|
22
|
+
point.
|
23
|
+
purpose: |
|
24
|
+
Verify that this requirement is satisfied.
|
25
|
+
method: Inspection
|
26
|
+
|
27
|
+
- name: Verify expression of inner frame
|
28
|
+
identifier: /conf/basic-ypr/angles
|
29
|
+
targets:
|
30
|
+
- /req/basic-ypr/angles
|
31
|
+
description: |
|
32
|
+
To confirm that the Inner Frame is expressed as a rotation-only
|
33
|
+
transformation using Yaw, Pitch, and Roll angles. To confirm that GeoPose
|
34
|
+
YPR angles are expressed as three consecutive rotations about the local
|
35
|
+
axes Z, Y, and X, in that order, corresponding to the conventional Yaw,
|
36
|
+
Pitch, and Roll angles and that the unit of measure is the degree.
|
37
|
+
purpose: |
|
38
|
+
Verify that this requirement is satisfied.
|
39
|
+
method: Inspection
|
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: JSON encoding of Basic-YPR SDU
|
4
|
+
identifier: /conf/basic-ypr-encoding-json
|
5
|
+
target:
|
6
|
+
- /req/basic-ypr-encoding-json
|
7
|
+
classification: "Target Type: JSON SDU"
|
8
|
+
description: |
|
9
|
+
Confirm that a JSON-encoded Basic-YPR GeoPose conforms to the relevant
|
10
|
+
elements of the Logical Model and a corresponding JSON-Schema document.
|
11
|
+
|
12
|
+
tests:
|
13
|
+
- name: Verify conformance via JSON schema
|
14
|
+
identifier: /conf/basic-ypr-encoding-json/definition
|
15
|
+
targets:
|
16
|
+
- /req/basic-ypr-encoding-json/definition
|
17
|
+
description: |
|
18
|
+
To confirm that a Basic-YPR GeoPose in JSON validates against the JSON schema.
|
19
|
+
purpose: |
|
20
|
+
Verify that data validates against the corresponding JSON schema.
|
21
|
+
method: |
|
22
|
+
Validate the JSON data against the Basic-YPR JSON Schema 2019-9 definition
|
23
|
+
(<<basic_ypr_json_schema>>).
|
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: JSON encoding of Basic-YPR SDU
|
4
|
+
identifier: /req/basic-ypr-encoding-json
|
5
|
+
description: |
|
6
|
+
Requirements for the JSON encoding of a Basic-YPR SDU.
|
7
|
+
implements:
|
8
|
+
- /req/basic-ypr
|
9
|
+
|
10
|
+
normative_statements:
|
11
|
+
|
12
|
+
- name: Specification as JSON schema
|
13
|
+
identifier: /req/basic-ypr-encoding-json/definition
|
14
|
+
statement: |
|
15
|
+
A JSON-encoded Basic-YPR GeoPose SHALL conform to the Basic-YPR
|
16
|
+
JSON-Schema 2019-9 definition (<<basic_ypr_json_schema>>).
|
17
|
+
|
18
|
+
guidance:
|
19
|
+
- |
|
20
|
+
This JSON encoding is extensible because the JSON-Schema
|
21
|
+
"additionalProperties" property is set to the default value of *true*.
|
@@ -0,0 +1,32 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: Basic-YPR logical model SDU
|
4
|
+
identifier: /req/basic-ypr
|
5
|
+
description: |
|
6
|
+
The Basic-YPR Target has a simple structure with no options. Position is
|
7
|
+
specified as a point in an LTP-ENU frame and rotation is specified by yaw,
|
8
|
+
pitch, and roll angles specified in decimal degrees.
|
9
|
+
dependencies:
|
10
|
+
- /req/global
|
11
|
+
- /req/tangent-point
|
12
|
+
normative_statements:
|
13
|
+
|
14
|
+
- name: Expression of outer frame
|
15
|
+
identifier: /req/basic-ypr/position
|
16
|
+
statement: |
|
17
|
+
The `Basic_YPR.position` attribute shall represent the outer frame,
|
18
|
+
specified by an implicit WGS-84 CRS and an implicit EPSG 4461-CS (LTP-ENU)
|
19
|
+
coordinate system and explicit parameters to define the tangent point.
|
20
|
+
|
21
|
+
- name: Expression of inner frame
|
22
|
+
identifier: /req/basic-ypr/angles
|
23
|
+
statement: |
|
24
|
+
The `Basic_YPR.angles` attribute shall represent the inner frame,
|
25
|
+
which is a rotation-only transformation with Yaw, Pitch, and Roll (YPR)
|
26
|
+
angles, which expressed as three consecutive rotations of a
|
27
|
+
reference frame oriented East-North-Up (ENU)
|
28
|
+
coordinate system (where the coordinate axes East, North, and Up
|
29
|
+
correspond to the axes X, Y, Z) about the local (rotated) axes z, y, and
|
30
|
+
x, applied in that order, corresponding to the conventional Yaw, Pitch,
|
31
|
+
and Roll angles. The unit of measure SHALL be the degree and the angles
|
32
|
+
represented as signed real number values.
|
@@ -0,0 +1,50 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: Chain logical model SDU conformance
|
4
|
+
identifier: /conf/chain
|
5
|
+
target:
|
6
|
+
- /req/chain
|
7
|
+
classification: "Target Type: SDU"
|
8
|
+
description: To confirm that an implementation of the GeoPose Chain conforms to the Logical Model.
|
9
|
+
dependencies:
|
10
|
+
- /conf/global
|
11
|
+
- /conf/frame-spec
|
12
|
+
- /conf/time
|
13
|
+
|
14
|
+
tests:
|
15
|
+
- name: Verify expression of valid time as GeoPose_Instant
|
16
|
+
identifier: /conf/chain/valid-time
|
17
|
+
targets:
|
18
|
+
- /req/chain/valid-time
|
19
|
+
dependencies:
|
20
|
+
- /conf/time/instant
|
21
|
+
description: |
|
22
|
+
To confirm the correct properties of a GeoPose_Instant.
|
23
|
+
purpose: |
|
24
|
+
Confirm that the `Chain.validTime` attribute is represented by a
|
25
|
+
`GeoPose_Instant` object.
|
26
|
+
method: Inspection
|
27
|
+
|
28
|
+
- name: Verify specification of initial frame
|
29
|
+
identifier: /conf/chain/initial-frame
|
30
|
+
targets:
|
31
|
+
- /req/chain/initial-frame
|
32
|
+
description: |
|
33
|
+
To confirm that an implementation of an Chain SDU contains an initial
|
34
|
+
frame under `Chain.outerFrame`.
|
35
|
+
purpose: |
|
36
|
+
Verify that this requirement is satisfied.
|
37
|
+
method: Inspection
|
38
|
+
|
39
|
+
- name: Verify chain of frame specifications
|
40
|
+
identifier: /conf/chain/frame-chain
|
41
|
+
targets:
|
42
|
+
- /req/chain/frame-chain
|
43
|
+
description: |
|
44
|
+
To confirm that each index value in `Chain.frameChain` is a distinct
|
45
|
+
integer value between 0 and one less than the number of elements in the
|
46
|
+
frameChain property.
|
47
|
+
purpose: |
|
48
|
+
To confirm that an implementation of Chain Index conforms to the Logical Model.
|
49
|
+
method: Inspection
|
50
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
conformance_classes:
|
3
|
+
- name: JSON encoding of Chain SDU
|
4
|
+
identifier: /conf/chain-encoding-json
|
5
|
+
target:
|
6
|
+
- /req/chain-encoding-json
|
7
|
+
classification: "Target Type: JSON SDU"
|
8
|
+
description: |
|
9
|
+
Confirm that a JSON-encoded GeoPose Chain conforms to the
|
10
|
+
relevant elements of the Logical Model and a corresponding JSON-Schema
|
11
|
+
document.
|
12
|
+
|
13
|
+
tests:
|
14
|
+
- name: Verify conformance via JSON schema
|
15
|
+
identifier: /conf/chain-encoding-json/definition
|
16
|
+
targets:
|
17
|
+
- /req/chain-encoding-json/definition
|
18
|
+
description: |
|
19
|
+
To confirm that a GeoPose Chain in JSON validates against the JSON schema.
|
20
|
+
purpose: |
|
21
|
+
Verify that data validates against the corresponding JSON schema.
|
22
|
+
method: |
|
23
|
+
Validate the JSON data against the GeoPose Chain JSON-Schema 2019-9
|
24
|
+
definition (<<chain_json_schema>>).
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: JSON encoding of Chain SDU
|
4
|
+
identifier: /req/chain-encoding-json
|
5
|
+
description: |
|
6
|
+
Requirements for the JSON encoding of a Chain SDU.
|
7
|
+
implements:
|
8
|
+
- /req/chain
|
9
|
+
|
10
|
+
normative_statements:
|
11
|
+
|
12
|
+
- name: Specification as JSON schema
|
13
|
+
identifier: /req/chain-encoding-json/definition
|
14
|
+
statement: |
|
15
|
+
A JSON-encoded GeoPose Chain SHALL conform to the GeoPose Chain
|
16
|
+
JSON-Schema 2019-9 definition (<<chain_json_schema>>).
|
17
|
+
guidance:
|
18
|
+
- |
|
19
|
+
This JSON encoding is extensible because the JSON-Schema
|
20
|
+
"additionalProperties" property is set to the default value of *true*.
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
normative_statements_classes:
|
3
|
+
- name: Chain logical model SDU
|
4
|
+
identifier: /req/chain
|
5
|
+
description: |
|
6
|
+
The Chain Target supports relationships between a linear sequence of pose
|
7
|
+
relationships. The first frame in the sequence must be an Outer Frame.
|
8
|
+
|
9
|
+
dependencies:
|
10
|
+
- /req/global
|
11
|
+
- /req/frame-spec
|
12
|
+
- /req/time
|
13
|
+
|
14
|
+
normative_statements:
|
15
|
+
|
16
|
+
- name: Expression of valid time as GeoPose_Instant
|
17
|
+
identifier: /req/chain/valid-time
|
18
|
+
dependencies:
|
19
|
+
- /req/time/instant
|
20
|
+
statement: |
|
21
|
+
The `Chain.validTime` attribute shall be represented by a
|
22
|
+
`GeoPose_Instant` object.
|
23
|
+
|
24
|
+
- name: Specification of initial frame
|
25
|
+
identifier: /req/chain/initial-frame
|
26
|
+
statement: |
|
27
|
+
The `Chain.outerFrame` attribute shall represent the first frame in the
|
28
|
+
sequence with the `ExplicitFrameSpec` object.
|
29
|
+
|
30
|
+
- name: Chain of frame specifications
|
31
|
+
identifier: /req/chain/frame-chain
|
32
|
+
statement: |
|
33
|
+
The `Chain.frameChain` attribute shall represent a list of explicit
|
34
|
+
frame specifications with an array of `ExplicitFrameSpec` objects.
|
35
|
+
Each index value shall be a distinct integer value between 0 and one less
|
36
|
+
than the number of elements in the frameChain property.
|