packages feed

hgeometry-0.5.0.0: test/Data/RangeSpec.hs

module Data.RangeSpec where

import Data.Geometry.Properties
import Data.Range
import Frames.CoRec
import Test.Hspec


spec :: Spec
spec = do
  describe "RangeRange Intersection" $ do
    -- it "openRange cap openrange" $ do
    --   ((OpenRange 1 (10 :: Int))  `intersect` (OpenRange 5 (10 :: Int)))
    --   `shouldBe` (coRec $ OpenRange 5 (10 :: Int))
    -- it "disjoint open ranges" $ do
    --   ((OpenRange 1 10) `intersect` (OpenRange 10 12))
    --   `shouldBe` (coRec NoIntersection)
    -- it "closed cap open, disjoint" $ do
    --   ((ClosedRange (1::Int) 10) `intersect` (OpenRange 50 (60 :: Int)))
    --   `shouldBe` (coRec NoIntersection)
    -- it "closed intersect open" $
    --   ((OpenRange 1 10) `intersect` (ClosedRange 10 12))
    --   `shouldBe` (coRec $ Range (Open 5) (Closed 10))

    -- it "open rage intersect closed " $
    -- (OpenRange 1 10) `intersect` (ClosedRange 10 12)
    -- `shouldBe` (coRec $ Range (Open 10) (Open 10))
  -- (Col Range {_lower = Closed 10, _upper = Open 10})
  -- >>> (OpenRange 1 10) `intersect` (ClosedRange 10 12)

    it "returns the first element of a list" $ do
      head [23 ..] `shouldBe` (23 :: Int)

    -- it "closed open " $ do
    --   ((ClosedRange 1 10) `intersect` (OpenRange 5 10))
    --   `shouldBe`
    --   (Col (Range (Open 5) (Closed 10)))
            -- encode "no-padding!!" `shouldBe` "bm8tcGFkZGluZyEh"

    -- |
  --
  -- >>>
  --
  -- >>>
  -- (Col NoIntersection)
  -- >>> (OpenRange 1 10) `intersect` (ClosedRange 10 12)
  -- (Col Range {_lower = Closed 10, _upper = Open 10})
  -- >>> (OpenRange 1 10) `intersect` (ClosedRange 10 12)
  -- FALSE