double has been disabled, because I am no longer packaging the gdtoa library with Ledger (because double conversion really has nothing to do with what Ledger does). If you wish to use it, you can find gdtoa in cpp-rewrite-2006, under a sub-directory of the same name.
64 lines
1.7 KiB
C++
64 lines
1.7 KiB
C++
#include "t_commodity.h"
|
|
|
|
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(CommodityTestCase, "numerics");
|
|
|
|
void CommodityTestCase::setUp() {
|
|
ledger::set_session_context(&session);
|
|
}
|
|
void CommodityTestCase::tearDown() {
|
|
ledger::set_session_context();
|
|
}
|
|
|
|
void CommodityTestCase::testPriceHistory()
|
|
{
|
|
ptime jan17_07 = parse_datetime("2007/01/17 00:00:00");
|
|
ptime feb27_07 = parse_datetime("2007/02/27 18:00:00");
|
|
ptime feb28_07 = parse_datetime("2007/02/28 06:00:00");
|
|
ptime feb28_07sbm = parse_datetime("2007/02/28 11:59:59");
|
|
ptime mar01_07 = parse_datetime("2007/03/01 00:00:00");
|
|
ptime apr15_07 = parse_datetime("2007/04/15 13:00:00");
|
|
|
|
// jww (2007-04-17): tbd
|
|
amount_t x0;
|
|
amount_t x1("100.10 AAPL");
|
|
|
|
assertThrow(x0.value(), amount_error);
|
|
assertFalse(x1.value());
|
|
|
|
// Commodities cannot be constructed by themselves, since a great
|
|
// deal of their state depends on how they were seen to be used.
|
|
commodity_t& aapl(x1.commodity());
|
|
|
|
aapl.add_price(jan17_07, amount_t("$10.20"));
|
|
aapl.add_price(feb27_07, amount_t("$13.40"));
|
|
aapl.add_price(feb28_07, amount_t("$18.33"));
|
|
aapl.add_price(feb28_07sbm, amount_t("$18.30"));
|
|
aapl.add_price(mar01_07, amount_t("$19.50"));
|
|
aapl.add_price(apr15_07, amount_t("$21.22"));
|
|
|
|
optional<amount_t> amt1 = x1.value(feb28_07sbm);
|
|
assertTrue(amt1);
|
|
assertEqual(amount_t("$1831.83"), *amt1);
|
|
|
|
optional<amount_t> amt2 = x1.value(current_moment);
|
|
assertTrue(amt2);
|
|
assertEqual(amount_t("$2124.12"), *amt2);
|
|
|
|
assertValid(x1);
|
|
}
|
|
|
|
void CommodityTestCase::testLots()
|
|
{
|
|
// jww (2007-04-17): tbd
|
|
}
|
|
|
|
void CommodityTestCase::testScalingBase()
|
|
{
|
|
// jww (2007-04-17): tbd
|
|
}
|
|
|
|
void CommodityTestCase::testReduction()
|
|
{
|
|
// jww (2007-04-17): tbd
|
|
}
|
|
|