{-# LANGUAGE OverloadedStrings, RecordWildCards, FlexibleInstances #-}
{-|

Generate several common kinds of report from a journal, as \"*Report\" -
simple intermediate data structures intended to be easily rendered as
text, html, json, csv etc. by hledger commands, hamlet templates,
javascript, or whatever.

-}

module Hledger.Reports (
  module Hledger.Reports.ReportOptions,
  module Hledger.Reports.ReportTypes,
  module Hledger.Reports.EntriesReport,
  module Hledger.Reports.PostingsReport,
  module Hledger.Reports.TransactionsReport,
  module Hledger.Reports.AccountTransactionsReport,
  module Hledger.Reports.BalanceReport,
  module Hledger.Reports.MultiBalanceReport,
  module Hledger.Reports.BudgetReport,
  -- * Tests
  tests_Reports
)
where

import Hledger.Reports.ReportOptions
import Hledger.Reports.ReportTypes
import Hledger.Reports.AccountTransactionsReport
import Hledger.Reports.EntriesReport
import Hledger.Reports.PostingsReport
import Hledger.Reports.TransactionsReport
import Hledger.Reports.BalanceReport
import Hledger.Reports.MultiBalanceReport
import Hledger.Reports.BudgetReport
import Hledger.Utils.Test

tests_Reports :: TestTree
tests_Reports = String -> [TestTree] -> TestTree
tests String
"Reports" [
   TestTree
tests_BalanceReport
  ,TestTree
tests_BudgetReport
  ,TestTree
tests_AccountTransactionsReport
  ,TestTree
tests_EntriesReport
  ,TestTree
tests_MultiBalanceReport
  ,TestTree
tests_PostingsReport
  ]