lib: more runPeriodicTransaction tests (lifted from #1085 and spanIntervalIntersect)
This commit is contained in:
parent
e9d300bef3
commit
568cb32677
@ -45,6 +45,17 @@ _ptgen str = do
|
||||
nullperiodictransaction{ ptperiodexpr=t , ptspan=s, ptinterval=i, ptpostings=["a" `post` usd 1] }
|
||||
nulldatespan
|
||||
|
||||
_ptgenspan str span = do
|
||||
let
|
||||
t = T.pack str
|
||||
(i,s) = parsePeriodExpr' nulldate t
|
||||
case checkPeriodicTransactionStartDate i s t of
|
||||
Just e -> error' e
|
||||
Nothing ->
|
||||
mapM_ (putStr . showTransaction) $
|
||||
runPeriodicTransaction
|
||||
nullperiodictransaction{ ptperiodexpr=t , ptspan=s, ptinterval=i, ptpostings=["a" `post` usd 1] }
|
||||
span
|
||||
|
||||
--deriving instance Show PeriodicTransaction
|
||||
-- for better pretty-printing:
|
||||
@ -199,6 +210,28 @@ instance Show PeriodicTransaction where
|
||||
-- >>> let reportperiod="daily from 2018/01/03" in let (i,s) = parsePeriodExpr' nulldate reportperiod in runPeriodicTransaction (nullperiodictransaction{ptperiodexpr=reportperiod, ptspan=s, ptinterval=i, ptpostings=["a" `post` usd 1]}) (DateSpan (Just $ parsedate "2018-01-01") (Just $ parsedate "2018-01-03"))
|
||||
-- []
|
||||
--
|
||||
-- >>> _ptgenspan "every 3 months from 2019-05" (mkdatespan "2020-01-01" "2020-02-01")
|
||||
--
|
||||
-- >>> _ptgenspan "every 3 months from 2019-05" (mkdatespan "2020-02-01" "2020-03-01")
|
||||
-- 2020/02/01
|
||||
-- ; generated-transaction:~ every 3 months from 2019-05
|
||||
-- a $1.00
|
||||
-- <BLANKLINE>
|
||||
-- >>> _ptgenspan "every 3 days from 2018" (mkdatespan "2018-01-01" "2018-01-05")
|
||||
-- 2018/01/01
|
||||
-- ; generated-transaction:~ every 3 days from 2018
|
||||
-- a $1.00
|
||||
-- <BLANKLINE>
|
||||
-- 2018/01/04
|
||||
-- ; generated-transaction:~ every 3 days from 2018
|
||||
-- a $1.00
|
||||
-- <BLANKLINE>
|
||||
-- >>> _ptgenspan "every 3 days from 2018" (mkdatespan "2018-01-02" "2018-01-05")
|
||||
-- 2018/01/04
|
||||
-- ; generated-transaction:~ every 3 days from 2018
|
||||
-- a $1.00
|
||||
-- <BLANKLINE>
|
||||
|
||||
runPeriodicTransaction :: PeriodicTransaction -> DateSpan -> [Transaction]
|
||||
runPeriodicTransaction PeriodicTransaction{..} requestedspan =
|
||||
[ t{tdate=d} | (DateSpan (Just d) _) <- alltxnspans, spanContainsDate requestedspan d ]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user