mdoc-0.2.0.0: test/Mdoc/Data/PositionalSpec.hs
module Mdoc.Data.PositionalSpec
( spec
) where
import Mdoc.Prelude
import Data.List (sort)
import Mdoc.Data.Positional
import Test.Hspec
spec :: Spec
spec = do
describe "Ord" $ do
it "sorts short before long, capital-then-lower together" $ do
let
unsorted =
[ PositionalSwitch $ Flag 'q' []
, PositionalSwitch $ Flag 'e' []
, PositionalSwitch $ Flag 'n' []
, PositionalSwitch $ Flag 'G' []
, PositionalSwitch $ Flag 'b' []
, PositionalSwitch $ Flag 'A' []
, PositionalSwitch $ Flag 'I' []
, PositionalSwitch $ Flag 's' []
, PositionalSwitch $ GNUFlag "binary-files" []
, PositionalSwitch $ Flag 'B' []
, PositionalSwitch $ GNUFlag "line-buffered" []
, PositionalSwitch $ Flag 'L' []
, PositionalSwitch $ Flag 'F' []
, PositionalSwitch $ GNUFlag "null" []
, PositionalSwitch $ Flag 'w' []
, PositionalSwitch $ Flag 'o' []
, PositionalSwitch $ Flag 'Z' []
, PositionalSwitch $ Flag 'x' []
, PositionalSwitch $ Flag 'E' []
, PositionalSwitch $ Flag 'v' []
, PositionalSwitch $ GNUFlag "label" []
, PositionalSwitch $ Flag 'h' []
, PositionalSwitch $ Flag 'c' []
, PositionalSwitch $ Flag 'U' []
, PositionalSwitch $ Flag 'H' []
, PositionalSwitch $ Flag 'l' []
, PositionalSwitch $ Flag 'V' []
, PositionalSwitch $ Flag 'f' []
, PositionalSwitch $ Flag 'C' [GNUFlag "context" []]
, PositionalSwitch $ Flag 'i' []
, PositionalSwitch $ Flag 'a' []
, PositionalSwitch $ Flag 'm' []
, PositionalSwitch $ Flag 'R' []
]
sorted =
[ PositionalSwitch $ Flag 'A' []
, PositionalSwitch $ Flag 'a' []
, PositionalSwitch $ Flag 'B' []
, PositionalSwitch $ Flag 'b' []
, PositionalSwitch $ Flag 'C' [GNUFlag "context" []]
, PositionalSwitch $ Flag 'c' []
, PositionalSwitch $ Flag 'E' []
, PositionalSwitch $ Flag 'e' []
, PositionalSwitch $ Flag 'F' []
, PositionalSwitch $ Flag 'f' []
, PositionalSwitch $ Flag 'G' []
, PositionalSwitch $ Flag 'H' []
, PositionalSwitch $ Flag 'h' []
, PositionalSwitch $ Flag 'I' []
, PositionalSwitch $ Flag 'i' []
, PositionalSwitch $ Flag 'L' []
, PositionalSwitch $ Flag 'l' []
, PositionalSwitch $ Flag 'm' []
, PositionalSwitch $ Flag 'n' []
, PositionalSwitch $ Flag 'o' []
, PositionalSwitch $ Flag 'q' []
, PositionalSwitch $ Flag 'R' []
, PositionalSwitch $ Flag 's' []
, PositionalSwitch $ Flag 'U' []
, PositionalSwitch $ Flag 'V' []
, PositionalSwitch $ Flag 'v' []
, PositionalSwitch $ Flag 'w' []
, PositionalSwitch $ Flag 'x' []
, PositionalSwitch $ Flag 'Z' []
, PositionalSwitch $ GNUFlag "binary-files" []
, PositionalSwitch $ GNUFlag "label" []
, PositionalSwitch $ GNUFlag "line-buffered" []
, PositionalSwitch $ GNUFlag "null" []
]
sort unsorted `shouldBe` sorted