From 993972549a9364d47d97ad3b02faa80ce4fce4e5 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Tue, 9 Mar 2010 01:43:25 +0000 Subject: [PATCH] refactor --- Tests.hs | 21 ++------------------- hledger-lib/Ledger.hs | 19 +++++++++++++++++++ hledger-lib/Ledger/Dates.hs | 28 +++++++++++++++++++++++++--- 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/Tests.hs b/Tests.hs index 92b2b17a8..e14cbd358 100644 --- a/Tests.hs +++ b/Tests.hs @@ -59,8 +59,8 @@ runtests opts args = do -- The latter is probably the way forward. tests :: Test tests = TestList [ - - tests_Register, + tests_Ledger, + tests_Commands, "account directive" ~: let sameParse str1 str2 = do l1 <- journalFromString str1 @@ -784,23 +784,6 @@ tests = TestList [ -- "next friday" `gives` "2008/11/28" -- "next january" `gives` "2009/01/01" - ,"splitSpan" ~: do - let gives (interval, span) = (splitSpan interval span `is`) - (NoInterval,mkdatespan "2008/01/01" "2009/01/01") `gives` - [mkdatespan "2008/01/01" "2009/01/01"] - (Quarterly,mkdatespan "2008/01/01" "2009/01/01") `gives` - [mkdatespan "2008/01/01" "2008/04/01" - ,mkdatespan "2008/04/01" "2008/07/01" - ,mkdatespan "2008/07/01" "2008/10/01" - ,mkdatespan "2008/10/01" "2009/01/01" - ] - (Quarterly,nulldatespan) `gives` - [nulldatespan] - (Daily,mkdatespan "2008/01/01" "2008/01/01") `gives` - [mkdatespan "2008/01/01" "2008/01/01"] - (Quarterly,mkdatespan "2008/01/01" "2008/01/01") `gives` - [mkdatespan "2008/01/01" "2008/01/01"] - ,"subAccounts" ~: do l <- liftM cacheLedger' sampleledger let a = ledgerAccount l "assets" diff --git a/hledger-lib/Ledger.hs b/hledger-lib/Ledger.hs index 168ad7b37..f4ac29564 100644 --- a/hledger-lib/Ledger.hs +++ b/hledger-lib/Ledger.hs @@ -21,6 +21,7 @@ module Ledger ( module Ledger.TimeLog, module Ledger.Types, module Ledger.Utils, + tests_Ledger ) where import Ledger.Account @@ -37,3 +38,21 @@ import Ledger.Posting import Ledger.TimeLog import Ledger.Types import Ledger.Utils + +tests_Ledger = TestList + [ + -- Ledger.Account.tests_Account + -- ,Ledger.AccountName.tests_AccountName + -- ,Ledger.Amount.tests_Amount + -- ,Ledger.Commodity.tests_Commodity + Ledger.Dates.tests_Dates + -- ,Ledger.IO.tests_IO + -- ,Ledger.Transaction.tests_Transaction + -- ,Ledger.Ledger.tests_Ledger + -- ,Ledger.Parse.tests_Parse + -- ,Ledger.Journal.tests_Journal + -- ,Ledger.Posting.tests_Posting + -- ,Ledger.TimeLog.tests_TimeLog + -- ,Ledger.Types.tests_Types + -- ,Ledger.Utils.tests_Utils + ] diff --git a/hledger-lib/Ledger/Dates.hs b/hledger-lib/Ledger/Dates.hs index eb7c054fa..7538aa51f 100644 --- a/hledger-lib/Ledger/Dates.hs +++ b/hledger-lib/Ledger/Dates.hs @@ -420,8 +420,30 @@ justdatespan rdate = do d <- smartdate return $ spanFromSmartDate rdate d -nulldatespan = DateSpan Nothing Nothing - +mkdatespan :: String -> String -> DateSpan mkdatespan b = DateSpan (Just $ parsedate b) . Just . parsedate -nulldate = parsedate "1900/01/01" \ No newline at end of file +nulldatespan = DateSpan Nothing Nothing + +nulldate = parsedate "1900/01/01" + +tests_Dates = TestList [ + + "splitSpan" ~: do + let gives (interval, span) = (splitSpan interval span `is`) + (NoInterval,mkdatespan "2008/01/01" "2009/01/01") `gives` + [mkdatespan "2008/01/01" "2009/01/01"] + (Quarterly,mkdatespan "2008/01/01" "2009/01/01") `gives` + [mkdatespan "2008/01/01" "2008/04/01" + ,mkdatespan "2008/04/01" "2008/07/01" + ,mkdatespan "2008/07/01" "2008/10/01" + ,mkdatespan "2008/10/01" "2009/01/01" + ] + (Quarterly,nulldatespan) `gives` + [nulldatespan] + (Daily,mkdatespan "2008/01/01" "2008/01/01") `gives` + [mkdatespan "2008/01/01" "2008/01/01"] + (Quarterly,mkdatespan "2008/01/01" "2008/01/01") `gives` + [mkdatespan "2008/01/01" "2008/01/01"] + + ]