modspec 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/.rubocop_todo.yml +118 -0
  4. data/Gemfile +4 -2
  5. data/README.adoc +508 -17
  6. data/lib/modspec/conformance_class.rb +39 -10
  7. data/lib/modspec/conformance_test.rb +40 -13
  8. data/lib/modspec/identifier.rb +5 -3
  9. data/lib/modspec/normative_statement.rb +49 -14
  10. data/lib/modspec/normative_statements_class.rb +39 -12
  11. data/lib/modspec/suite.rb +242 -5
  12. data/lib/modspec/version.rb +1 -1
  13. data/lib/modspec.rb +14 -4
  14. data/modspec.gemspec +8 -14
  15. data/spec/conformance_class.liquid +98 -0
  16. data/spec/fixtures/advanced-cc.yaml +52 -0
  17. data/spec/fixtures/advanced-json-cc.yaml +24 -0
  18. data/spec/fixtures/advanced-json-rc.yaml +16 -0
  19. data/spec/fixtures/advanced-rc.yaml +43 -0
  20. data/spec/fixtures/basic-quaternion-cc.yaml +44 -0
  21. data/spec/fixtures/basic-quaternion-json-cc.yaml +24 -0
  22. data/spec/fixtures/basic-quaternion-json-rc.yaml +17 -0
  23. data/spec/fixtures/basic-quaternion-json-strict-cc.yaml +22 -0
  24. data/spec/fixtures/basic-quaternion-json-strict-rc.yaml +19 -0
  25. data/spec/fixtures/basic-quaternion-rc.yaml +34 -0
  26. data/spec/fixtures/basic-ypr-cc.yaml +39 -0
  27. data/spec/fixtures/basic-ypr-json-cc.yaml +23 -0
  28. data/spec/fixtures/basic-ypr-json-rc.yaml +21 -0
  29. data/spec/fixtures/basic-ypr-rc.yaml +32 -0
  30. data/spec/fixtures/chain-cc.yaml +50 -0
  31. data/spec/fixtures/chain-json-cc.yaml +24 -0
  32. data/spec/fixtures/chain-json-rc.yaml +20 -0
  33. data/spec/fixtures/chain-rc.yaml +36 -0
  34. data/spec/fixtures/frame-spec-cc.yaml +43 -0
  35. data/spec/fixtures/frame-spec-rc.yaml +27 -0
  36. data/spec/fixtures/global-cc.yaml +38 -0
  37. data/spec/fixtures/global-rc.yaml +23 -0
  38. data/spec/fixtures/graph-cc.yaml +48 -0
  39. data/spec/fixtures/graph-json-cc.yaml +24 -0
  40. data/spec/fixtures/graph-json-rc.yaml +20 -0
  41. data/spec/fixtures/graph-rc.yaml +38 -0
  42. data/spec/fixtures/series-irregular-cc.yaml +58 -0
  43. data/spec/fixtures/series-irregular-json-cc.yaml +24 -0
  44. data/spec/fixtures/series-irregular-json-rc.yaml +20 -0
  45. data/spec/fixtures/series-irregular-rc.yaml +41 -0
  46. data/spec/fixtures/series-regular-cc.yaml +63 -0
  47. data/spec/fixtures/series-regular-json-cc.yaml +24 -0
  48. data/spec/fixtures/series-regular-json-rc.yaml +20 -0
  49. data/spec/fixtures/series-regular-rc.yaml +46 -0
  50. data/spec/fixtures/stream-cc.yaml +49 -0
  51. data/spec/fixtures/stream-json-cc.yaml +48 -0
  52. data/spec/fixtures/stream-json-rc.yaml +32 -0
  53. data/spec/fixtures/stream-rc.yaml +36 -0
  54. data/spec/fixtures/tangent-point-cc.yaml +43 -0
  55. data/spec/fixtures/tangent-point-rc.yaml +38 -0
  56. data/spec/fixtures/time-cc.yaml +32 -0
  57. data/spec/fixtures/time-rc.yaml +20 -0
  58. data/spec/modspec/conformance_class_spec.rb +154 -0
  59. data/spec/modspec/conformance_test_spec.rb +76 -0
  60. data/spec/modspec/normative_statement_spec.rb +81 -0
  61. data/spec/modspec/normative_statements_class_spec.rb +61 -0
  62. data/spec/modspec/suite_spec.rb +109 -0
  63. data/spec/modspec_spec.rb +25 -0
  64. data/spec/requirements_class.liquid +93 -0
  65. data/spec/spec_helper.rb +16 -0
  66. metadata +67 -57
@@ -0,0 +1,43 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: Frame specification requirements
4
+ identifier: /conf/frame-spec
5
+ target:
6
+ - /req/frame-spec
7
+ classification: "Target Type: SDU"
8
+ description: Conformance with frame specification requirements
9
+
10
+ tests:
11
+ - name: Verify frame specification authority uniquely specifies source of reference frame specification
12
+ identifier: /conf/frame-spec/authority
13
+ targets:
14
+ - /req/frame-spec/authority
15
+ description: |
16
+ To confirm the correct properties of a Frame Specification Authority.
17
+ purpose: |
18
+ To confirm that a FrameSpecification.authority attribute contains a string
19
+ uniquely specifying a source of reference frame specifications.
20
+ method: Inspection
21
+
22
+ - name: Frame specification ID uniquely defines frame within authority
23
+ identifier: /conf/frame-spec/id
24
+ targets:
25
+ - /req/frame-spec/id
26
+ description: |
27
+ To confirm the correct properties of a Frame Specification ID.
28
+ purpose: |
29
+ To confirm that a FrameSpecification.id attribute contains a string
30
+ uniquely specifying the identity of a reference frame specification as
31
+ defined by that authority.
32
+ method: Inspection
33
+
34
+ - name: Frame specification parameter contains all parameters needed
35
+ identifier: /conf/frame-spec/parameters
36
+ targets:
37
+ - /req/frame-spec/parameters
38
+ description: |
39
+ To confirm the correct properties of Frame Specification Parameters.
40
+ purpose: |
41
+ To confirm that a FrameSpecification.parameters attribute contains contain
42
+ all parameters needed for the corresponding authority and ID.
43
+ method: Inspection
@@ -0,0 +1,27 @@
1
+ ---
2
+ normative_statements_classes:
3
+ - name: Frame specification requirements
4
+ identifier: /req/frame-spec
5
+ description: |
6
+ Common frame specification requirements for SDUs that include frames.
7
+ normative_statements:
8
+
9
+ - name: Frame specification authority uniquely specifies source of reference frame specification
10
+ identifier: /req/frame-spec/authority
11
+ statement: |
12
+ The FrameSpecification.authority attribute SHALL contain a string uniquely
13
+ specifying a source of reference frame specifications.
14
+
15
+ - name: Frame specification ID uniquely defines frame within authority
16
+ identifier: /req/frame-spec/id
17
+ statement: |
18
+ The FrameSpecification.ID attribute SHALL be a string uniquely defining a
19
+ frame within the authority.
20
+
21
+ - name: Frame specification parameter contains all parameters needed
22
+ identifier: /req/frame-spec/parameters
23
+ statement: |
24
+ The FrameSpecification.parameter attribute SHALL contain all parameters
25
+ needed for the corresponding authority and ID.
26
+ guidance:
27
+ - The definition of these parameters is outside the scope of GeoPose.
@@ -0,0 +1,38 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: Global SDU conformance
4
+ identifier: /conf/global
5
+ target:
6
+ - /req/global
7
+ classification: "Target Type: SDU"
8
+ description: Conformance with global SDU requirements
9
+
10
+ tests:
11
+ - name: Verify individual standardization targets are independent
12
+ identifier: /conf/global/target-independence
13
+ targets:
14
+ - /req/global/target-independence
15
+ purpose: Verify standardization targets are independent.
16
+ method: Inspection
17
+
18
+ - name: Verify implementation conforms to the logical model
19
+ identifier: /conf/global/logical-model
20
+ targets:
21
+ - /req/global/logical-model
22
+ description: |
23
+ Implementations of concrete data conforming to this standard SHALL
24
+ conform to all dependent or inherited classes, attributes, and
25
+ associations, multiplicities, and data types in the Logical Model.
26
+ purpose: Verify implementation conforms to the logical model.
27
+ method: Inspection
28
+
29
+ - name: Verify SDU conforms to the "Structural Data Unit - SDU" stereotype
30
+ identifier: /conf/global/sdu
31
+ targets:
32
+ - /req/global/sdu
33
+ description: |
34
+ Implementations using encoded SDUs SHALL conform to the logical
35
+ description of the Logical Model elements with the "Structural Data Unit
36
+ - SDU" stereotype.
37
+ purpose: Verify SDU conforms to the "Structural Data Unit - SDU" stereotype.
38
+ method: Inspection
@@ -0,0 +1,23 @@
1
+ ---
2
+ normative_statements_classes:
3
+ - name: Global SDU requirements
4
+ identifier: /req/global
5
+ description: Global requirements apply to all SDUs and Standardization Targets.
6
+ normative_statements:
7
+ - name: Individual standardization targets are independent
8
+ identifier: /req/global/target-independence
9
+ statement: |
10
+ There shall be no dependency between or among the individual
11
+ Standardization Targets.
12
+ - name: Implementation conforms to the logical model
13
+ identifier: /req/global/logical-model
14
+ statement: |
15
+ Implementations of concrete data conforming to this standard SHALL
16
+ conform to all dependent or inherited classes, attributes, and
17
+ associations, multiplicities, and data types in the Logical Model.
18
+ - name: SDU conforms to the "Structural Data Unit - SDU" stereotype
19
+ identifier: /req/global/sdu
20
+ statement: |
21
+ Implementations using encoded SDUs SHALL conform to the logical
22
+ description of the Logical Model elements with the
23
+ "Structural Data Unit - SDU" stereotype.
@@ -0,0 +1,48 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: Graph logical model SDU conformance
4
+ identifier: /conf/graph
5
+ target:
6
+ - /req/graph
7
+ classification: "Target Type: SDU"
8
+ description: To confirm that an implementation of the GeoPose Graph conforms to the Logical Model.
9
+ dependencies:
10
+ - /conf/global
11
+ - /conf/frame-spec
12
+
13
+ tests:
14
+ - name: Verify expression of valid time as GeoPose_Instant
15
+ identifier: /conf/graph/valid-time
16
+ targets:
17
+ - /req/graph/valid-time
18
+ dependencies:
19
+ - /conf/time/instant
20
+ description: |
21
+ To confirm the correct properties of a GeoPose_Instant.
22
+ purpose: |
23
+ Confirm that the `Graph.validTime` attribute is represented by a
24
+ `GeoPose_Instant` object.
25
+ method: Inspection
26
+
27
+ - name: Verify list of frame specifications
28
+ identifier: /conf/graph/frame-list
29
+ targets:
30
+ - /req/graph/frame-list
31
+ description: |
32
+ To confirm that an implementation of an Graph SDU contains a list of
33
+ explicit frame specifications as `ExplicitFrameSpec` objects.
34
+ purpose: |
35
+ Verify that this requirement is satisfied.
36
+ method: Inspection
37
+
38
+ - name: Verify transforms for frame specification list
39
+ identifier: /conf/graph/transform-list
40
+ targets:
41
+ - /req/graph/transform-list
42
+ description: |
43
+ To confirm that each index value in a FrameListTransformPair is a distinct
44
+ integer value between 0 and one less than the number of elements in the
45
+ frameList property.
46
+ purpose: |
47
+ To confirm that an implementation of Graph Index conforms to the Logical Model.
48
+ method: Inspection
@@ -0,0 +1,24 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: JSON encoding of Graph SDU
4
+ identifier: /conf/graph-encoding-json
5
+ target:
6
+ - /req/graph-encoding-json
7
+ classification: "Target Type: JSON SDU"
8
+ description: |
9
+ Confirm that a JSON-encoded GeoPose Graph 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/graph-encoding-json/definition
16
+ targets:
17
+ - /req/graph-encoding-json/definition
18
+ description: |
19
+ To confirm that a GeoPose Graph 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 Graph JSON-Schema 2019-9
24
+ definition (<<graph_json_schema>>).
@@ -0,0 +1,20 @@
1
+ ---
2
+ normative_statements_classes:
3
+ - name: JSON encoding of Graph SDU
4
+ identifier: /req/graph-encoding-json
5
+ description: |
6
+ Requirements for the JSON encoding of a Graph SDU.
7
+ implements:
8
+ - /req/graph
9
+
10
+ normative_statements:
11
+
12
+ - name: Specification as JSON schema
13
+ identifier: /req/graph-encoding-json/definition
14
+ statement: |
15
+ A JSON-encoded GeoPose Graph SHALL conform to the GeoPose Chain
16
+ JSON-Schema 2019-9 definition (<<graph_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,38 @@
1
+ ---
2
+ normative_statements_classes:
3
+ - name: Graph logical model SDU
4
+ identifier: /req/graph
5
+ description: |
6
+ The Graph Target supports a network of object relative poses. The graph is a
7
+ directed acyclic graph, each node must either be an Extrinsic Frame or
8
+ reachable from an Extrinsic Frame.
9
+
10
+ dependencies:
11
+ - /req/global
12
+ - /req/frame-spec
13
+ - /req/time
14
+
15
+ normative_statements:
16
+
17
+ - name: Expression of valid time as GeoPose_Instant
18
+ identifier: /req/graph/valid-time
19
+ dependencies:
20
+ - /req/time/instant
21
+ statement: |
22
+ The `Graph.validTime` attribute shall be represented by a
23
+ `GeoPose_Instant` object.
24
+
25
+ - name: List of frame specifications
26
+ identifier: /req/graph/frame-list
27
+ statement: |
28
+ The `Graph.frameList` attribute shall represent a list of explicit
29
+ frame specifications with an array of `ExplicitFrameSpec` objects.
30
+
31
+ - name: Transforms for frame specification list
32
+ identifier: /req/graph/transform-list
33
+ statement: |
34
+ The `Graph.transformList` attribute shall have a value of type
35
+ `FrameTransformIndexPair`.
36
+ Each index value in a `FrameListTransformPair` SHALL be a distinct integer
37
+ value between 0 and one less than the number of elements in the
38
+ `frameList` property.
@@ -0,0 +1,58 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: Irregular_Series logical model SDU conformance
4
+ identifier: /conf/series-irregular
5
+ target:
6
+ - /req/series-irregular
7
+ classification: "Target Type: SDU"
8
+ description: To confirm that components of a Irregular_Series conform to the Logical Model.
9
+ dependencies:
10
+ - /conf/global
11
+ - /conf/frame-spec
12
+ - /conf/time
13
+
14
+ tests:
15
+
16
+ - name: Verify expression of inner frames and time series
17
+ identifier: /conf/series-irregular/inner-frame-and-time
18
+ targets:
19
+ - /req/series-irregular/inner-frame-and-time
20
+ dependencies:
21
+ - /conf/time/instant
22
+ description: |
23
+ Confirm that the `Irregular_Series.innerFrameAndTime` attribute is
24
+ implemented as an array of `FrameAndTimeElement` objects, each of which is
25
+ a pair of `ExplicitFrameSpec` and `GeoPoseInstant` objects.
26
+ purpose: |
27
+ To confirm that the `innerFrameAndTime` attribute values are implemented
28
+ in accordance with the Logical Model.
29
+
30
+ - name: Verify expression of outer frame
31
+ identifier: /conf/series-irregular/outer-frame
32
+ targets:
33
+ - /req/series-irregular/outer-frame
34
+ purpose: |
35
+ The `Irregular_Series.outerFrame` attribute shall represent the first
36
+ frame in the series expressed by the `innerFrameAndTime` attribute.
37
+
38
+ - name: Verify expression of series header
39
+ identifier: /conf/series-irregular/header
40
+ targets:
41
+ - /req/series-irregular/header
42
+ description: |
43
+ Verify that the `Irregular_Series.header` attribute is implemented as an
44
+ instance of SeriesHeader.
45
+ purpose: |
46
+ To confirm that the implementation of Series Header conforms to the
47
+ Logical Model.
48
+
49
+ - name: Verify expression of series trailer
50
+ identifier: /conf/series-irregular/trailer
51
+ targets:
52
+ - /req/series-irregular/trailer
53
+ description: |
54
+ Verify that the `Irregular_Series.trailer` attribute is implemented as an
55
+ instance of SeriesTrailer.
56
+ purpose: |
57
+ To confirm that the implementation of SeriesTrailer conforms to the
58
+ Logical Model.
@@ -0,0 +1,24 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: JSON encoding of Irregular Series SDU
4
+ identifier: /conf/series-irregular-encoding-json
5
+ target:
6
+ - /req/series-irregular-encoding-json
7
+ classification: "Target Type: JSON SDU"
8
+ description: |
9
+ Confirm that a JSON-encoded GeoPose Irregular Series 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/series-irregular-encoding-json/definition
16
+ targets:
17
+ - /req/series-irregular-encoding-json/definition
18
+ description: |
19
+ To confirm that a GeoPose Irregular Series 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 Irregular Series JSON-Schema 2019-9
24
+ definition (<<irregular_series_json_schema>>).
@@ -0,0 +1,20 @@
1
+ ---
2
+ normative_statements_classes:
3
+ - name: JSON encoding of Irregular Series SDU
4
+ identifier: /req/series-irregular-encoding-json
5
+ description: |
6
+ Requirements for the JSON encoding of a Irregular Series SDU.
7
+ implements:
8
+ - /req/series-irregular
9
+
10
+ normative_statements:
11
+
12
+ - name: Specification as JSON schema
13
+ identifier: /req/series-irregular-encoding-json/definition
14
+ statement: |
15
+ A JSON-encoded GeoPose Irregular Series SHALL conform to the GeoPose Chain
16
+ JSON-Schema 2019-9 definition (<<irregular_series_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,41 @@
1
+ ---
2
+ normative_statements_classes:
3
+ - name: Irregular_Series logical model SDU
4
+ identifier: /req/series-irregular
5
+ description: |
6
+ The Irregular_Series Target represents the time evolution of a single
7
+ GeoPose, with a variable time duration between successive inner frames.
8
+
9
+ dependencies:
10
+ - /req/global
11
+ - /req/frame-spec
12
+ - /req/time
13
+
14
+ normative_statements:
15
+
16
+ - name: Expression of inner frames and time series
17
+ identifier: /req/series-irregular/inner-frame-and-time
18
+ dependencies:
19
+ - /req/time/instant
20
+ statement: |
21
+ The `Irregular_Series.innerFrameAndTime` attribute SHALL be implemented as
22
+ an array of `FrameAndTimeElement` objects, each of which is a pair of
23
+ `ExplicitFrameSpec` and `GeoPoseInstant` objects.
24
+
25
+ - name: Expression of outer frame
26
+ identifier: /req/series-irregular/outer-frame
27
+ statement: |
28
+ The `Irregular_Series.outerFrame` attribute shall represent the first
29
+ frame in the series expressed by the `innerFrameAndTime` attribute.
30
+
31
+ - name: Expression of series header
32
+ identifier: /req/series-irregular/header
33
+ statement: |
34
+ The `Irregular_Series.header` attribute shall be implemented as an instance
35
+ of SeriesHeader.
36
+
37
+ - name: Expression of series trailer
38
+ identifier: /req/series-irregular/trailer
39
+ statement: |
40
+ The `Irregular_Series.trailer` attribute shall be implemented as an instance
41
+ of SeriesTrailer.
@@ -0,0 +1,63 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: Regular_Series logical model SDU conformance
4
+ identifier: /conf/series-regular
5
+ target:
6
+ - /req/series-regular
7
+ classification: "Target Type: SDU"
8
+ description: To confirm that components of a Regular Series conform to the Logical Model.
9
+ dependencies:
10
+ - /conf/global
11
+ - /conf/frame-spec
12
+ - /conf/time
13
+
14
+ tests:
15
+
16
+ - name: Verify expression of duration as GeoPose_Duration
17
+ identifier: /conf/series-regular/duration
18
+ targets:
19
+ - /req/series-regular/duration
20
+ dependencies:
21
+ - /conf/time/duration
22
+ description: |
23
+ To confirm that the `Regular_Series.interPoseDuration` attribute is
24
+ represented by an instance of the `GeoPose_Duration` object.
25
+ purpose: To confirm the correct properties of a GeoPose Duration.
26
+
27
+ - name: Verify expression of outer frame
28
+ identifier: /conf/series-regular/outer-frame
29
+ targets:
30
+ - /req/series-regular/outer-frame
31
+ purpose: |
32
+ The `Regular_Series.outerFrame` attribute shall represent the first frame
33
+ in the series with the `ExplicitFrameSpec` object.
34
+
35
+ - name: Verify expression of inner frames
36
+ identifier: /conf/series-regular/inner-frame-series
37
+ targets:
38
+ - /req/series-regular/inner-frame-series
39
+ purpose: |
40
+ The `Regular_Series.innerFrameSeries` attribute shall represent the
41
+ succession of inner frames as an array of `ExplicitFrameSpec` objects.
42
+
43
+ - name: Verify expression of series header
44
+ identifier: /conf/series-regular/header
45
+ targets:
46
+ - /req/series-regular/header
47
+ description: |
48
+ Verify that the `Regular_Series.header` attribute is implemented as an
49
+ instance of SeriesHeader.
50
+ purpose: |
51
+ To confirm that the implementation of Series Header conforms to the
52
+ Logical Model.
53
+
54
+ - name: Verify expression of series trailer
55
+ identifier: /conf/series-regular/trailer
56
+ targets:
57
+ - /req/series-regular/trailer
58
+ description: |
59
+ Verify that the `Regular_Series.trailer` attribute is implemented as an
60
+ instance of SeriesTrailer.
61
+ purpose: |
62
+ To confirm that the implementation of SeriesTrailer conforms to the
63
+ Logical Model.
@@ -0,0 +1,24 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: JSON encoding of Regular Series SDU
4
+ identifier: /conf/series-regular-encoding-json
5
+ target:
6
+ - /req/series-regular-encoding-json
7
+ classification: "Target Type: JSON SDU"
8
+ description: |
9
+ Confirm that a JSON-encoded GeoPose Regular Series 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/series-regular-encoding-json/definition
16
+ targets:
17
+ - /req/series-regular-encoding-json/definition
18
+ description: |
19
+ To confirm that a GeoPose Regular Series 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 Regular Series JSON-Schema 2019-9
24
+ definition (<<regular_series_json_schema>>).
@@ -0,0 +1,20 @@
1
+ ---
2
+ normative_statements_classes:
3
+ - name: JSON encoding of Regular Series SDU
4
+ identifier: /req/series-regular-encoding-json
5
+ description: |
6
+ Requirements for the JSON encoding of a Regular Series SDU.
7
+ implements:
8
+ - /req/series-regular
9
+
10
+ normative_statements:
11
+
12
+ - name: Specification as JSON schema
13
+ identifier: /req/series-regular-encoding-json/definition
14
+ statement: |
15
+ A JSON-encoded GeoPose Regular Series SHALL conform to the GeoPose Chain
16
+ JSON-Schema 2019-9 definition (<<regular_series_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,46 @@
1
+ ---
2
+ normative_statements_classes:
3
+ - name: Regular_Series logical model SDU
4
+ identifier: /req/series-regular
5
+ description: |
6
+ The Regular_Series Target represents the time evolution of a single GeoPose,
7
+ with a constant time duration between successive inner frames.
8
+
9
+ dependencies:
10
+ - /req/global
11
+ - /req/frame-spec
12
+ - /req/time
13
+
14
+ normative_statements:
15
+
16
+ - name: Expression of duration as GeoPose_Duration
17
+ identifier: /req/series-regular/duration
18
+ dependencies:
19
+ - /req/time/duration
20
+ statement: |
21
+ The `Regular_Series.interPoseDuration` attribute shall be represented by
22
+ an instance of the `GeoPose_Duration` object.
23
+
24
+ - name: Expression of outer frame
25
+ identifier: /req/series-regular/outer-frame
26
+ statement: |
27
+ The `Regular_Series.outerFrame` attribute shall represent the first frame
28
+ in the series with the `ExplicitFrameSpec` object.
29
+
30
+ - name: Expression of inner frames
31
+ identifier: /req/series-regular/inner-frame-series
32
+ statement: |
33
+ The `Regular_Series.innerFrameSeries` attribute shall represent the
34
+ succession of inner frames as an array of `ExplicitFrameSpec` objects.
35
+
36
+ - name: Expression of series header
37
+ identifier: /req/series-regular/header
38
+ statement: |
39
+ The `Regular_Series.header` attribute shall be implemented as an instance
40
+ of SeriesHeader.
41
+
42
+ - name: Expression of series trailer
43
+ identifier: /req/series-regular/trailer
44
+ statement: |
45
+ The `Regular_Series.trailer` attribute shall be implemented as an instance
46
+ of SeriesTrailer.
@@ -0,0 +1,49 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: StreamHeader and StreamElement logical model SDUs conformance
4
+ identifier: /conf/stream
5
+ target:
6
+ - /req/stream
7
+ classification: "Target Type: SDU"
8
+ description: To confirm that an implementation of the GeoPose Stream SDUs conforms to the Logical Model.
9
+ dependencies:
10
+ - /conf/global
11
+ - /conf/frame-spec
12
+
13
+ tests:
14
+
15
+ - name: Verify outer frame in StreamHeader
16
+ identifier: /conf/stream/header-initial-frame
17
+ targets:
18
+ - /req/stream/header-initial-frame
19
+ description: |
20
+ To confirm the correct specification of the `StreamHeader.outerFrame`.
21
+ purpose: |
22
+ To confirm the initial frame is specified as an instance of the
23
+ `ExplicitFrameSpec` object.
24
+ method: Inspection
25
+
26
+ - name: Verify transition model in StreamHeader
27
+ identifier: /conf/stream/header-transition-model
28
+ targets:
29
+ - /req/stream/header-transition-model
30
+ description: |
31
+ To confirm the correct specification of the `StreamHeader.transitionModel`.
32
+ purpose: |
33
+ To confirm the `transitionModel` is specified as an instance of the
34
+ `TransitionModel` enumeration.
35
+ method: Inspection
36
+
37
+ - name: Verify stream elements in StreamElement
38
+ identifier: /conf/stream/element
39
+ targets:
40
+ - /req/stream/element
41
+ dependencies:
42
+ - /conf/time/instant
43
+ description: |
44
+ To confirm the correct specification of the `StreamElement`.
45
+ purpose: |
46
+ To confirm the StreamElement is implemented as an array of
47
+ `FrameAndTimeElement` objects, each of which is a pair of
48
+ `ExplicitFrameSpec` and `GeoPoseInstant` objects.
49
+ method: Inspection
@@ -0,0 +1,48 @@
1
+ ---
2
+ conformance_classes:
3
+ - name: JSON encoding of Stream SDUs
4
+ identifier: /conf/stream-encoding-json
5
+ target:
6
+ - /req/stream-encoding-json
7
+ classification: "Target Type: JSON SDU"
8
+ description: |
9
+ Confirm that a JSON-encoded GeoPose Stream conforms to the
10
+ relevant elements of the Logical Model and a corresponding JSON-Schema
11
+ document.
12
+
13
+ tests:
14
+ - name: Verify Stream Element conformance to JSON schema
15
+ identifier: /conf/stream-encoding-json/element
16
+ targets:
17
+ - /req/stream-encoding-json/element
18
+ description: |
19
+ To confirm that a GeoPose Stream Element in JSON validates against the JSON schema.
20
+ purpose: |
21
+ Verify JSON data conforms to the JSON schema.
22
+ method: |
23
+ Validate the JSON data against the GeoPose Stream Element
24
+ JSON-Schema 2019-9 definition (<<streamelement_json_schema>>).
25
+
26
+ - name: Verify Stream Header conformance to JSON schema
27
+ identifier: /conf/stream-encoding-json/header
28
+ targets:
29
+ - /req/stream-encoding-json/header
30
+ description: |
31
+ To confirm that a GeoPose Stream Header in JSON validates against the JSON schema.
32
+ purpose: |
33
+ Verify JSON data conforms to the JSON schema.
34
+ method: |
35
+ Validate the JSON data against the GeoPose Stream Header
36
+ JSON-Schema 2019-9 definition (<<streamheader_json_schema>>).
37
+
38
+ - name: Verify Stream Record conformance to JSON schema
39
+ identifier: /conf/stream-encoding-json/record
40
+ targets:
41
+ - /req/stream-encoding-json/record
42
+ description: |
43
+ To confirm that a GeoPose Stream Record in JSON validates against the JSON schema.
44
+ purpose: |
45
+ Verify JSON data conforms to the JSON schema.
46
+ method: |
47
+ Validate the JSON data against the GeoPose Stream Record
48
+ JSON-Schema 2019-9 definition (<<streamrecord_json_schema>>).