wkt-geom 0.0.11 → 0.0.12
raw patch · 9 files changed
+27/−41 lines, 9 filesdep ~QuickCheckdep ~hedgehogdep ~hspecPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: QuickCheck, hedgehog, hspec, lens
API changes (from Hackage documentation)
Files
- README.md +1/−1
- src/Data/Hex.hs +3/−9
- src/Data/Internal/Ewkb/Geometry.hs +0/−1
- src/Data/Internal/Wkb/GeometryCollection.hs +0/−1
- src/Data/Internal/Wkb/Line.hs +0/−1
- src/Data/Internal/Wkb/Point.hs +0/−1
- src/Data/Internal/Wkb/Polygon.hs +0/−1
- test/Data/Internal/Wkb/PolygonSpec.hs +18/−21
- wkt-geom.cabal +5/−5
README.md view
@@ -1,4 +1,4 @@-# wkt-geom [](https://travis-ci.org/indicatrix/wkt-geom) [Hackage](https://hackage.haskell.org/package/wkt-geom)+# wkt-geom  [Hackage](https://hackage.haskell.org/package/wkt-geom) A parser for Well Known Text (WKT), Well Known Binary (WKB) and the PostgreSQL extension Extended Well Know Binary (eWKB).
src/Data/Hex.hs view
@@ -8,18 +8,12 @@ import qualified Data.ByteString.Char8 as ByteStringChar8 import qualified Data.ByteString.Lazy as LazyByteString import qualified Data.Geospatial as Geospatial-import Data.Monoid ((<>)) newtype Hex = Hex ByteString.ByteString safeConvert :: (LazyByteString.ByteString -> Either String Geospatial.GeospatialGeometry) -> Hex -> Either String Geospatial.GeospatialGeometry safeConvert f (Hex byteString) =- let- (decoded, rest) = ByteStringBase16.decode byteString- in- if ByteString.null rest then- f $ LazyByteString.fromStrict decoded- else- Left ("Invalid hex representation: " <> ByteStringChar8.unpack byteString)-+ case ByteStringBase16.decode byteString of+ Left _ -> Left $ "Invalid hex representation: " <> ByteStringChar8.unpack byteString+ Right decoded -> f $ LazyByteString.fromStrict decoded
src/Data/Internal/Ewkb/Geometry.hs view
@@ -11,7 +11,6 @@ import qualified Data.Binary.Get as BinaryGet import Data.Bits ((.&.), (.|.)) import qualified Data.ByteString.Builder as ByteStringBuilder-import Data.Monoid ((<>)) import qualified Data.Word as Word import qualified Data.Internal.Wkb.Endian as Endian
src/Data/Internal/Wkb/GeometryCollection.hs view
@@ -9,7 +9,6 @@ import qualified Data.ByteString.Builder as ByteStringBuilder import qualified Data.Foldable as Foldable import qualified Data.Geospatial as Geospatial-import Data.Monoid ((<>)) import qualified Data.Sequence as Sequence import qualified Data.Internal.Wkb.Endian as Endian
src/Data/Internal/Wkb/Line.hs view
@@ -11,7 +11,6 @@ import qualified Data.Foldable as Foldable import qualified Data.Geospatial as Geospatial import qualified Data.LineString as LineString-import Data.Monoid ((<>)) import qualified Data.Sequence as Sequence
src/Data/Internal/Wkb/Point.hs view
@@ -14,7 +14,6 @@ import qualified Data.ByteString.Builder as ByteStringBuilder import qualified Data.Foldable as Foldable import qualified Data.Geospatial as Geospatial-import Data.Monoid ((<>)) import qualified Data.Monoid as Monoid import qualified Data.Sequence as Sequence import qualified Data.Word as Word
src/Data/Internal/Wkb/Polygon.hs view
@@ -11,7 +11,6 @@ import qualified Data.Foldable as Foldable import qualified Data.Geospatial as Geospatial import qualified Data.LinearRing as LinearRing-import Data.Monoid ((<>)) import qualified Data.Sequence as Sequence import qualified Data.Internal.Wkb.Endian as Endian
test/Data/Internal/Wkb/PolygonSpec.hs view
@@ -3,18 +3,15 @@ module Data.Internal.Wkb.PolygonSpec where import qualified Data.ByteString.Builder as ByteStringBuilder-import Data.Monoid ((<>))-import Test.Hspec (Spec, describe, it, shouldBe)--import qualified Data.SpecHelper as SpecHelper-import qualified Data.Wkb as Wkb+import qualified Data.SpecHelper as SpecHelper+import qualified Data.Wkb as Wkb+import Test.Hspec (Spec, describe, it, shouldBe) spec :: Spec spec = do testWkbPolygonParsing testWkbMultiPolygonParsing - -- Test Wkb Polygon Parsing testWkbPolygonParsing :: Spec@@ -31,21 +28,21 @@ testInvalidWkbPolyonParsing = it "does not parse bad wkb polygon" $ Wkb.parseByteString exampleBadWkbPolygon `shouldBe` Left "Could not parse wkb: First and last points of linear ring are different: first=GeoPointXY (PointXY {_xyX = 1.0, _xyY = 2.0}) last=GeoPointXY (PointXY {_xyX = 7.0, _xyY = 8.0})"- where exampleBadWkbPolygon =- ByteStringBuilder.toLazyByteString $- ByteStringBuilder.word8 0- <> ByteStringBuilder.int32BE 3- <> ByteStringBuilder.int32BE 1- <> ByteStringBuilder.int32BE 4- <> ByteStringBuilder.doubleBE 1.0- <> ByteStringBuilder.doubleBE 2.0- <> ByteStringBuilder.doubleBE 3.0- <> ByteStringBuilder.doubleBE 4.0- <> ByteStringBuilder.doubleBE 5.0- <> ByteStringBuilder.doubleBE 6.0- <> ByteStringBuilder.doubleBE 7.0- <> ByteStringBuilder.doubleBE 8.0-+ where+ exampleBadWkbPolygon =+ ByteStringBuilder.toLazyByteString $+ ByteStringBuilder.word8 0+ <> ByteStringBuilder.int32BE 3+ <> ByteStringBuilder.int32BE 1+ <> ByteStringBuilder.int32BE 4+ <> ByteStringBuilder.doubleBE 1.0+ <> ByteStringBuilder.doubleBE 2.0+ <> ByteStringBuilder.doubleBE 3.0+ <> ByteStringBuilder.doubleBE 4.0+ <> ByteStringBuilder.doubleBE 5.0+ <> ByteStringBuilder.doubleBE 6.0+ <> ByteStringBuilder.doubleBE 7.0+ <> ByteStringBuilder.doubleBE 8.0 -- Test Wkb MultiPolygon Parsing
wkt-geom.cabal view
@@ -1,5 +1,5 @@ name: wkt-geom-version: 0.0.11+version: 0.0.12 synopsis: A parser of WKT, WKB and eWKB. description: Well Known Text (WKT), Well Known Binary (WKB) and the PostgreSQL extension Extended Well Know Binary (eWKB) are vector geometry representations. .@@ -86,11 +86,11 @@ , bytestring >= 0.10 , containers >= 0.5.10.1 , geojson >= 4.0.1- , hedgehog < 0.7 && >= 0.5- , hspec < 3 && >= 2.4+ , hedgehog < 1.1 && >= 1.0+ , hspec < 3 && >= 2.7 , hw-hspec-hedgehog < 0.2 && >= 0.1.0.4- , lens < 4.18 && >= 4- , QuickCheck < 2.13 && > 2.7+ , lens < 5 && >= 4.1+ , QuickCheck < 2.15 && >= 2.7 , scientific >= 0.3.6 , trifecta >= 1.7 , vector >= 0.10