mdoc-0.1.0.2: test/Mdoc/Gen/FlagSpec.hs
-- |
--
-- Module : Mdoc.Gen.FlagSpec
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Mdoc.Gen.FlagSpec
( spec
) where
import Mdoc.Prelude
import Data.List (sort)
import Mdoc.Gen.Flag
import Test.Hspec
spec :: Spec
spec = do
describe "Ord" $ do
it "sorts short before long, capital-then-lower together" $ do
let
unsorted =
[ Flag 'q' []
, Flag 'e' []
, Flag 'n' []
, Flag 'G' []
, Flag 'b' []
, Flag 'A' []
, Flag 'I' []
, Flag 's' []
, GNUFlag "binary-files" []
, Flag 'B' []
, GNUFlag "line-buffered" []
, Flag 'L' []
, Flag 'F' []
, GNUFlag "null" []
, Flag 'w' []
, Flag 'o' []
, Flag 'Z' []
, Flag 'x' []
, Flag 'E' []
, Flag 'v' []
, GNUFlag "label" []
, Flag 'h' []
, Flag 'c' []
, Flag 'U' []
, Flag 'H' []
, Flag 'l' []
, Flag 'V' []
, Flag 'f' []
, Flag 'C' [GNUFlag "context" []]
, Flag 'i' []
, Flag 'a' []
, Flag 'm' []
, Flag 'R' []
]
sorted =
[ Flag 'A' []
, Flag 'a' []
, Flag 'B' []
, Flag 'b' []
, Flag 'C' [GNUFlag "context" []]
, Flag 'c' []
, Flag 'E' []
, Flag 'e' []
, Flag 'F' []
, Flag 'f' []
, Flag 'G' []
, Flag 'H' []
, Flag 'h' []
, Flag 'I' []
, Flag 'i' []
, Flag 'L' []
, Flag 'l' []
, Flag 'm' []
, Flag 'n' []
, Flag 'o' []
, Flag 'q' []
, Flag 'R' []
, Flag 's' []
, Flag 'U' []
, Flag 'V' []
, Flag 'v' []
, Flag 'w' []
, Flag 'x' []
, Flag 'Z' []
, GNUFlag "binary-files" []
, GNUFlag "label" []
, GNUFlag "line-buffered" []
, GNUFlag "null" []
]
sort unsorted `shouldBe` sorted