modspec 0.1.0 → 0.1.2
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/.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 +71 -61
@@ -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.
|