agora/agora-bench/Main.hs
Seungheon Oh b1a323afaa
Restructure
`agora-spec` and `agora-spec` is merged to be `agora-specs`;
`agora-testlib` contains what previously was `Spec.Specification`.
2022-05-30 13:30:25 -05:00

46 lines
1.6 KiB
Haskell

module Main (main) where
import Bench (specificationTreeToBenchmarks)
import Data.Csv (encodeDefaultOrderedByName)
import Data.Text.Lazy.Encoding (decodeUtf8)
import Data.Text.Lazy.IO as I (writeFile)
import Options (Options (..), parseOptions)
import Prettyprinter (defaultLayoutOptions, layoutPretty, pretty)
import Prettyprinter.Render.String (renderString)
import Spec.AuthorityToken qualified as AuthorityToken
import Spec.Effect.GovernorMutation qualified as GovernorMutation
import Spec.Effect.TreasuryWithdrawal qualified as TreasuryWithdrawal
import Spec.Governor qualified as Governor
import Spec.Proposal qualified as Proposal
import Spec.Stake qualified as Stake
import Spec.Treasury qualified as Treasury
import Test.Specification (group)
import Prelude
--------------------------------------------------------------------------------
main :: IO ()
main = do
options <- parseOptions
I.writeFile options.output $
(decodeUtf8 . encodeDefaultOrderedByName) res
mapM_ (putStrLn . renderString . layoutPretty defaultLayoutOptions . pretty) res
where
res =
specificationTreeToBenchmarks $
group
"Agora"
[ group
"Effects"
[ group "Treasury Withdrawal Effect" TreasuryWithdrawal.specs
, group "Governor Mutation Effect" GovernorMutation.specs
]
, group "Stake" Stake.specs
, group "Proposal" Proposal.specs
, group "AuthorityToken" AuthorityToken.specs
, group "Treasury" Treasury.specs
, group "AuthorityToken" AuthorityToken.specs
, group "Governor" Governor.specs
]