Skip to content

Commit

Permalink
eliminate use of "assignable" #445
Browse files Browse the repository at this point in the history
  • Loading branch information
jyutzler committed Jun 18, 2018
1 parent 29b1c11 commit 70e7c67
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
9 changes: 4 additions & 5 deletions spec/2a_features.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -314,13 +314,12 @@ The geometry type of a feature geometry column specified in the `gpkg_geometry_c
[caption=""]
.Requirement 32
====
Feature table geometry columns SHALL contain geometries of the type or assignable for the type specified for the column by the `gpkg_geometry_columns` table `geometry_type_name` uppercase column value ^<<K13>>^
Feature table geometry columns SHALL contain geometries of the type [line-through]#or assignable for the type# specified for the column by the `gpkg_geometry_columns` table `geometry_type_name` uppercase column value ^<<K13>>^.
====

Geometry subtypes are assignable as defined in <<geometry_types>> and shown in part in <<core_geometry_model_figure>>.
For example, if the `geometry_type_name` value in the `gpkg_geometry_columns` table is for a geometry type like POINT that has no subtypes, then the feature table geometry column MAY only contain geometries of that type.
If the geometry `type_name` value in the `gpkg_geometry_columns` table is for a geometry type like GEOMETRYCOLLECTION that has subtypes, then the feature table geometry column MAY only contain geometries of that type or any of its direct or indirect subtypes.
If the geometry `type_name` is GEOMETRY (the root of the geometry type hierarchy) then the feature table geometry column MAY contain geometries of any geometry type.
Allowed geometry types are defined in <<geometry_types>> and shown in part in <<core_geometry_model_figure>>.
If the geometry `type_name` value is "GEOMETRY" then the feature table geometry column MAY contain geometries of any allowed geometry type.
If the geometry `type_name` value is "GEOMETRYCOLLECTION" then the feature table geometry column MAY contain zero or more geometries of any allowed geometry type.

The presence or absence of optional elevation (Z) and/or measure (M) values in a geometry does not change its type or assignability. The unit of measure for optional elevation(Z) values is determined by the CRS of the geometry; it is as-defined by a 3D CRS, and undefined for a 2D CRS. The unit of measure for optional measure (M) values is determined by the CRS of the geometry.

Expand Down
8 changes: 4 additions & 4 deletions spec/annexes/ats.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -494,15 +494,15 @@ FROM gpkg_geometry_columns WHERE table_name IN
[cols="1,5a"]
|========================================
|*Test Case ID* |+/opt/features/vector_features/data/data_values_geometry_type+
|*Test Purpose* |Verify that the geometry type of feature geometries are of the type or are assignable for the geometry type specified by the `gpkg_geometry` columns table `geometry_type_name` column value.
|*Test Purpose* |Verify that the geometry type of feature geometries are of the type specified by the `gpkg_geometry` columns table `geometry_type_name` column value.
|*Test Method* |
. SELECT table_name AS tn, column_name AS cn, geometry_type_name AS gt_name FROM gpkg_geometry_columns WHERE table_name IN (SELECT table_name FROM gpkg_contents WHERE data_type = 'features')
. Not testable if returns an empty result set
. For each row from step 1
.. *Select the set of geometry types in use for the values in cn
.. Select the set of geometry types in use for the values in cn
.. For each row actual_type_name from step a
... *Determine if each geometry type is assignable to the actual_type_name
... Fail if any are not assignable
... Determine if each geometry type matches the actual_type_name
... Fail if any geometries do not match
. Pass if no fails
|*Reference* |Clause 2.1.6.1.2 Req 32:
|*Test Type* |Capability
Expand Down

0 comments on commit 70e7c67

Please sign in to comment.