jord-2.0.0.0: test/Data/Geo/Jord/GeocentricSpec.hs
module Data.Geo.Jord.GeocentricSpec
( spec
) where
import Test.Hspec
import qualified Data.Geo.Jord.Ellipsoid as Ellipsoid
import Data.Geo.Jord.Ellipsoids
import qualified Data.Geo.Jord.Geocentric as Geocentric
import qualified Data.Geo.Jord.Length as Length
import Data.Geo.Jord.Models
spec :: Spec
spec = do
describe "antipode" $ do
it "returns the antipodal position" $ do
Geocentric.antipode
(Geocentric.metresPos (-4069916.936) 1985031.122443 4497955.010584 WGS84) `shouldBe`
Geocentric.metresPos 4069916.936 (-1985031.122443) (-4497955.010584) WGS84
it "returns the south pole when called with the north pole" $ do
Geocentric.antipode (Geocentric.northPole WGS84) `shouldBe` Geocentric.southPole WGS84
it "returns the north pole when called with the south pole" $ do
Geocentric.antipode (Geocentric.southPole WGS84) `shouldBe` Geocentric.northPole WGS84
describe "poles" $ do
it "returns (0, 0, polarRadius) for the north pole" $ do
Geocentric.northPole WGS84 `shouldBe`
Geocentric.metresPos 0 0 (Length.toMetres . Ellipsoid.polarRadius $ eWGS84) WGS84
it "returns (0, 0, -polarRadius) for the south pole" $ do
Geocentric.southPole WGS84 `shouldBe`
Geocentric.metresPos
0
0
(negate . Length.toMetres . Ellipsoid.polarRadius $ eWGS84)
WGS84