private static void TestProvider(IProvider provider, GpkgContent content) { int numFeatures = 0; Assert.DoesNotThrow(() => numFeatures = provider.GetFeatureCount(), "GetFeatureCount threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); var extent = provider.GetExtents(); Collection <uint> oids = null; Assert.DoesNotThrow(() => oids = provider.GetObjectIDsInView(extent), "GetObjectIDsInView threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); Assert.AreEqual(numFeatures, oids.Count); foreach (var oid in oids) { IGeometry geom = null; Assert.DoesNotThrow(() => geom = provider.GetGeometryByID(oid), "GetGeometryByID threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); FeatureDataRow feat = null; Assert.DoesNotThrow(() => feat = provider.GetFeature(oid), "GetFeature threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); Assert.IsTrue(geom.EqualsExact(feat.Geometry)); } Collection <IGeometry> geoms = null; Assert.DoesNotThrow(() => geoms = provider.GetGeometriesInView(extent), "GetFeature threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); Assert.AreEqual(numFeatures, geoms.Count); var fds = new FeatureDataSet(); Assert.DoesNotThrow(() => provider.ExecuteIntersectionQuery(extent, fds), "GetFeature threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); Assert.AreEqual(numFeatures, fds.Tables[0].Rows.Count); }
private static void TestProvider(IProvider provider, GpkgContent content) { int numFeatures = 0; Assert.DoesNotThrow(() => numFeatures = provider.GetFeatureCount(), "GetFeatureCount threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); var extent = provider.GetExtents(); Collection <uint> oids = null; Assert.DoesNotThrow(() => oids = provider.GetObjectIDsInView(extent), "GetObjectIDsInView threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); if (numFeatures > 0) { Assert.IsTrue(oids.Count > 0); } var tmpFeatures = 0; foreach (var oid in oids) { if (tmpFeatures > 50) { break; } IGeometry geom = null; Assert.DoesNotThrow(() => geom = provider.GetGeometryByID(oid), "GetGeometryByID threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); FeatureDataRow feat = null; Assert.DoesNotThrow(() => feat = provider.GetFeature(oid), "GetFeature threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); if (geom != null) { Assert.IsTrue(geom.EqualsExact(feat.Geometry)); } tmpFeatures++; } Collection <IGeometry> geoms = null; Assert.DoesNotThrow(() => geoms = provider.GetGeometriesInView(extent), "GetGeometriesInView threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); if (numFeatures > 0) { Assert.IsTrue(geoms.Count > 0, "GetGeometriesInView with full extent did not return 90% of the geometries:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); } var fds = new FeatureDataSet(); Assert.DoesNotThrow(() => provider.ExecuteIntersectionQuery(extent, fds), "ExecuteIntersectionQuery threw exception:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); if (numFeatures > 0) { Assert.IsTrue(fds.Tables[0].Rows.Count > 0, "ExecuteIntersectionQuery with full extent did not return 90% of the features:\n\tConnection{0}\n\t{1}", provider.ConnectionID, content.TableName); } }
public GpkgTileSource(GpkgContent content, GpkgTileSchema tileSchema) { _content = content; _schema = tileSchema; _selectSql = string.Format(SelectTemplate, content.TableName); }