*** empty log message ***
This commit is contained in:
parent
bec5f1c07a
commit
db0ef2e257
47 changed files with 1692 additions and 8 deletions
35
Makefile.am
35
Makefile.am
|
|
@ -128,6 +128,41 @@ endif
|
|||
|
||||
######################################################################
|
||||
|
||||
TESTS = alltests
|
||||
|
||||
CXXTEST_DIR = /usr/local/cxxtest
|
||||
TESTGEN = $(CXXTEST_DIR)/cxxtestgen.py
|
||||
TESTSUITES = tests/*.h
|
||||
|
||||
AM_CXXFLAGS =
|
||||
if HAVE_EXPAT
|
||||
AM_CXXFLAGS += -DHAVE_EXPAT=1
|
||||
endif
|
||||
if HAVE_XMLPARSE
|
||||
AM_CXXFLAGS += -DHAVE_XMLPARSE=1
|
||||
endif
|
||||
if HAVE_LIBOFX
|
||||
AM_CXXFLAGS += -DHAVE_LIBOFX=1
|
||||
endif
|
||||
if DEBUG
|
||||
AM_CXXFLAGS += -DDEBUG_LEVEL=4
|
||||
endif
|
||||
|
||||
alltests.cc: $(TESTSUITES)
|
||||
test -f $(TESTGEN) && python $(TESTGEN) -o $@ --error-printer $(TESTSUITES)
|
||||
|
||||
alltests: alltests.cc
|
||||
$(CXXCOMPILE) -I$(CXXTEST_DIR) -lexpat -lgmp -lpcre -o $@ \
|
||||
alltests.cc -L. -L.libs -lamounts -lledger
|
||||
|
||||
runtests: alltests ledger
|
||||
./alltests && tests/regress && tests/regtest
|
||||
|
||||
verify: runtests
|
||||
python tests/runtests.py
|
||||
|
||||
######################################################################
|
||||
|
||||
all-clean: maintainer-clean
|
||||
rm -fr *~ .*~ .\#* *.html *.info *.pdf *.a *.so *.o *.lo *.la \
|
||||
*.elc *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr \
|
||||
|
|
|
|||
10
amount.h
10
amount.h
|
|
@ -318,7 +318,8 @@ inline char * scan_past_quotes_and_parens(char * expr)
|
|||
{
|
||||
std::stack<char> paren_stack;
|
||||
|
||||
for (const char * p = expr; *p; p++) {
|
||||
char * p;
|
||||
for (p = expr; *p; p++) {
|
||||
if (*p == '"' ||
|
||||
((*p == '(' || ((*p == '{' || *p == '[') &&
|
||||
paren_stack.top() != '(')) &&
|
||||
|
|
@ -334,6 +335,7 @@ inline char * scan_past_quotes_and_parens(char * expr)
|
|||
break;
|
||||
}
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
inline amount_t abs(const amount_t& amt) {
|
||||
|
|
@ -382,13 +384,13 @@ class commodity_base_t
|
|||
|
||||
commodity_base_t()
|
||||
: precision(0), flags(COMMODITY_STYLE_DEFAULTS),
|
||||
history(NULL), smaller(NULL), larger(NULL) {}
|
||||
smaller(NULL), larger(NULL), history(NULL) {}
|
||||
|
||||
commodity_base_t(const std::string& _symbol,
|
||||
unsigned int _precision = 0,
|
||||
unsigned int _flags = COMMODITY_STYLE_DEFAULTS)
|
||||
: precision(_precision), flags(_flags), history(NULL),
|
||||
smaller(NULL), larger(NULL), symbol(_symbol) {}
|
||||
: precision(_precision), flags(_flags),
|
||||
smaller(NULL), larger(NULL), symbol(_symbol), history(NULL) {}
|
||||
|
||||
~commodity_base_t() {
|
||||
if (history) delete history;
|
||||
|
|
|
|||
|
|
@ -155,6 +155,7 @@ inline date_t operator-(const date_t& left, const long days) {
|
|||
|
||||
inline std::ostream& operator<<(std::ostream& out, const date_t& moment) {
|
||||
moment.write(out);
|
||||
return out;
|
||||
}
|
||||
|
||||
class datetime_error : public error {
|
||||
|
|
@ -250,6 +251,7 @@ inline std::ostream& operator<<(std::ostream& out,
|
|||
std::strftime(buf, 63, (date_t::output_format + " %H:%M:%S").c_str(),
|
||||
moment.localtime());
|
||||
out << buf;
|
||||
return out;
|
||||
}
|
||||
|
||||
struct interval_t
|
||||
|
|
|
|||
4
error.h
4
error.h
|
|
@ -28,7 +28,7 @@ class file_context : public error_context
|
|||
public:
|
||||
file_context(const std::string& _file, unsigned long _line,
|
||||
const std::string& desc = "") throw()
|
||||
: file(_file), line(_line), error_context(desc) {}
|
||||
: error_context(desc), file(_file), line(_line) {}
|
||||
virtual ~file_context() throw() {}
|
||||
|
||||
virtual void describe(std::ostream& out) const throw() {
|
||||
|
|
@ -46,7 +46,7 @@ class line_context : public error_context {
|
|||
|
||||
line_context(const std::string& _line, long _pos,
|
||||
const std::string& desc = "") throw()
|
||||
: line(_line), pos(_pos), error_context(desc) {}
|
||||
: error_context(desc), line(_line), pos(_pos) {}
|
||||
virtual ~line_context() throw() {}
|
||||
|
||||
virtual void describe(std::ostream& out) const throw() {
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ class entry_context : public error_context {
|
|||
|
||||
entry_context(const entry_base_t& _entry,
|
||||
const std::string& desc = "") throw()
|
||||
: entry(_entry), error_context(desc) {}
|
||||
: error_context(desc), entry(_entry) {}
|
||||
virtual ~entry_context() throw() {}
|
||||
|
||||
virtual void describe(std::ostream& out) const throw();
|
||||
|
|
|
|||
169
tests/amounts.h
Normal file
169
tests/amounts.h
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
#ifndef __TESTAMOUNT_H
|
||||
#define __TESTAMOUNT_H
|
||||
|
||||
#include <cxxtest/TestSuite.h>
|
||||
|
||||
#include <amount.h>
|
||||
|
||||
using namespace ledger;
|
||||
|
||||
class TestAmount : public CxxTest::TestSuite
|
||||
{
|
||||
public:
|
||||
void testCreateAmountWithoutCommodityFromInteger()
|
||||
{
|
||||
amount_t a((long int)42);
|
||||
TS_ASSERT_EQUALS("", a.commodity().symbol());
|
||||
TS_ASSERT_EQUALS("", a.commodity().base_symbol());
|
||||
TS_ASSERT_EQUALS("42", a.quantity_string());
|
||||
}
|
||||
|
||||
void testCreateAmountWithoutCommodity()
|
||||
{
|
||||
amount_t a("42");
|
||||
TS_ASSERT_EQUALS("", a.commodity().symbol());
|
||||
TS_ASSERT_EQUALS("", a.commodity().base_symbol());
|
||||
TS_ASSERT_EQUALS("42", a.quantity_string());
|
||||
}
|
||||
|
||||
void testCreateAmountWithPrefixCommodity()
|
||||
{
|
||||
amount_t *a;
|
||||
a = new amount_t("$ 42");
|
||||
TS_ASSERT_EQUALS("$", a->commodity().symbol());
|
||||
TS_ASSERT_EQUALS("$", a->commodity().base_symbol());
|
||||
TS_ASSERT_EQUALS("42", a->quantity_string());
|
||||
}
|
||||
|
||||
void testCreateAmountWithPostfixCommodity()
|
||||
{
|
||||
amount_t *a;
|
||||
a = new amount_t("42 GLD");
|
||||
TS_ASSERT_EQUALS("GLD", a->commodity().symbol());
|
||||
TS_ASSERT_EQUALS("GLD", a->commodity().base_symbol());
|
||||
TS_ASSERT_EQUALS("42", a->quantity_string());
|
||||
}
|
||||
|
||||
void testCreateAmountWithPrefixCommodityContainingSpace()
|
||||
{
|
||||
amount_t *a;
|
||||
a = new amount_t("\"one dollar\" 42");
|
||||
TS_ASSERT_EQUALS("\"one dollar\"", a->commodity().symbol());
|
||||
TS_ASSERT_EQUALS("one dollar", a->commodity().base_symbol());
|
||||
TS_ASSERT_EQUALS("42", a->quantity_string());
|
||||
}
|
||||
|
||||
void testCreateAmountWithPostfixCommodityContainingSpace()
|
||||
{
|
||||
amount_t *a;
|
||||
a = new amount_t("42 \"swedish crowns\"");
|
||||
TS_ASSERT_EQUALS("\"swedish crowns\"", a->commodity().symbol());
|
||||
TS_ASSERT_EQUALS("swedish crowns", a->commodity().base_symbol());
|
||||
TS_ASSERT_EQUALS("42", a->quantity_string());
|
||||
}
|
||||
|
||||
void testCreateAmountWithDirectPrefixCommodity()
|
||||
{
|
||||
amount_t *a;
|
||||
a = new amount_t("$42");
|
||||
TS_ASSERT_EQUALS("$", a->commodity().symbol());
|
||||
TS_ASSERT_EQUALS("$", a->commodity().base_symbol());
|
||||
TS_ASSERT_EQUALS("42", a->quantity_string());
|
||||
}
|
||||
|
||||
void testCreateAmountWithDirectPostfixCommodity()
|
||||
{
|
||||
amount_t *a;
|
||||
a = new amount_t("42GLD");
|
||||
TS_ASSERT_EQUALS("GLD", a->commodity().symbol());
|
||||
TS_ASSERT_EQUALS("GLD", a->commodity().base_symbol());
|
||||
TS_ASSERT_EQUALS("42", a->quantity_string());
|
||||
}
|
||||
|
||||
void testCannotCreateAmountWithoutQuantity()
|
||||
{
|
||||
TS_ASSERT_THROWS(new amount_t("$"), amount_error*);
|
||||
}
|
||||
|
||||
void testCreateBiiigIntegerAmount()
|
||||
{
|
||||
amount_t a("12345678901234567890123456789012345678901234567890");
|
||||
TS_ASSERT_EQUALS("12345678901234567890123456789012345678901234567890",
|
||||
a.quantity_string());
|
||||
}
|
||||
|
||||
void testCreateBiiigDecimalAmount()
|
||||
{
|
||||
amount_t a("12345678.901234567890123456789012345678901234567890");
|
||||
TS_ASSERT_EQUALS("12345678.901234567890123456789012345678901234567890",
|
||||
a.quantity_string());
|
||||
}
|
||||
|
||||
void testCreateCommodityAnnotatedWithEntry()
|
||||
{
|
||||
amount_t a("10 AAPL (entry 6)");
|
||||
TS_ASSERT_EQUALS("10", a.quantity_string());
|
||||
commodity_t c = a.commodity();
|
||||
TS_ASSERT_EQUALS("AAPL", c.symbol());
|
||||
TS_ASSERT_EQUALS("AAPL", c.base_symbol());
|
||||
TS_ASSERT(c.annotated);
|
||||
//TODO: check entry annotation
|
||||
}
|
||||
|
||||
void testCreateCommodityAnnotatedWithEntry2()
|
||||
{
|
||||
amount_t *a = new amount_t("10 AAPL (entry 6)");
|
||||
TS_ASSERT_EQUALS("10", a->quantity_string());
|
||||
commodity_t c = a->commodity();
|
||||
TS_ASSERT_EQUALS("AAPL", c.symbol());
|
||||
TS_ASSERT_EQUALS("AAPL", c.base_symbol());
|
||||
TS_ASSERT(c.annotated);
|
||||
//TODO: check entry annotation
|
||||
}
|
||||
|
||||
void testAddTwoAmountsWithoutCommodity()
|
||||
{
|
||||
amount_t a("6");
|
||||
amount_t b("9");
|
||||
TS_ASSERT_EQUALS(* new amount_t((long int)15), a+b);
|
||||
}
|
||||
|
||||
void testAddTwoAmountsWithSameCommodity()
|
||||
{
|
||||
amount_t a("$ 6");
|
||||
amount_t b("$ 9");
|
||||
TS_ASSERT_EQUALS(* new amount_t("$ 15"), a+b);
|
||||
}
|
||||
|
||||
void testCannotAddTwoAmountsWithDifferentCommodities()
|
||||
{
|
||||
amount_t a("$ 6");
|
||||
amount_t b("9 GLD");
|
||||
TS_ASSERT_THROWS(a+b, amount_error*);
|
||||
}
|
||||
|
||||
void testCompareTwoAmountsWithSameCommodity()
|
||||
{
|
||||
amount_t a("6 SCOX");
|
||||
amount_t b("9 SCOX");
|
||||
TS_ASSERT(a < b);
|
||||
TS_ASSERT(a <= b);
|
||||
TS_ASSERT(!(a > b));
|
||||
TS_ASSERT(!(a >= b));
|
||||
TS_ASSERT(!(a == b));
|
||||
}
|
||||
|
||||
void testCannotCompareTwoAmountsWithDifferentCommodities()
|
||||
{
|
||||
amount_t a("$ 6");
|
||||
amount_t b("9 GLD");
|
||||
|
||||
TS_ASSERT_THROWS(a < b, amount_error*);
|
||||
TS_ASSERT_THROWS(a <= b, amount_error*);
|
||||
TS_ASSERT_THROWS(a > b, amount_error*);
|
||||
TS_ASSERT_THROWS(a >= b, amount_error*);
|
||||
TS_ASSERT(!(a == b));
|
||||
}
|
||||
};
|
||||
|
||||
#endif // __TESTAMOUNT_H
|
||||
10
tests/baseline/.cvsignore
Normal file
10
tests/baseline/.cvsignore
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
1
|
||||
10
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
1
tests/baseline/1001
Normal file
1
tests/baseline/1001
Normal file
|
|
@ -0,0 +1 @@
|
|||
Error: "tests/cases/1001.dat", line 10: Only one transaction with null amount allowed per entry
|
||||
4
tests/baseline/1002
Normal file
4
tests/baseline/1002
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
xgain -20
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1003
Normal file
4
tests/baseline/1003
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
xtime -20
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1004
Normal file
4
tests/baseline/1004
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
xopti -20
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1005
Normal file
4
tests/baseline/1005
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
xgain 0
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1006
Normal file
4
tests/baseline/1006
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
xtime 0
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1007
Normal file
4
tests/baseline/1007
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
xopti 0
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1008
Normal file
4
tests/baseline/1008
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
xgain $-20.00
|
||||
Equity:Options
|
||||
4
tests/baseline/1009
Normal file
4
tests/baseline/1009
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
xtime $-20.00
|
||||
Equity:Options
|
||||
4
tests/baseline/1010
Normal file
4
tests/baseline/1010
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
xopti $-20.00
|
||||
Equity:Options
|
||||
4
tests/baseline/1011
Normal file
4
tests/baseline/1011
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
xgain 0
|
||||
Equity:Options
|
||||
4
tests/baseline/1012
Normal file
4
tests/baseline/1012
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
xtime 0
|
||||
Equity:Options
|
||||
4
tests/baseline/1013
Normal file
4
tests/baseline/1013
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
xopti 0
|
||||
Equity:Options
|
||||
4
tests/baseline/1014
Normal file
4
tests/baseline/1014
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
Capital Gains $-20.00
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1015
Normal file
4
tests/baseline/1015
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
time -20
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1016
Normal file
4
tests/baseline/1016
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
Brokerage:Options -20.00 COMP
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1017
Normal file
4
tests/baseline/1017
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
Capital Gains 0
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1018
Normal file
4
tests/baseline/1018
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
time 0
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1019
Normal file
4
tests/baseline/1019
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
Brokerage:Options 0
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1020
Normal file
4
tests/baseline/1020
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
Expenses -20
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1021
Normal file
4
tests/baseline/1021
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 stock optionx
|
||||
Expenses 0
|
||||
Liabilities:MasterCard
|
||||
4
tests/baseline/1022
Normal file
4
tests/baseline/1022
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
Capital Gains $-20.00
|
||||
Equity:Options
|
||||
4
tests/baseline/1023
Normal file
4
tests/baseline/1023
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
time $-20.00
|
||||
Equity:Options
|
||||
4
tests/baseline/1024
Normal file
4
tests/baseline/1024
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
Brokerage:Options -20.00 COMP
|
||||
Equity:Options
|
||||
4
tests/baseline/1025
Normal file
4
tests/baseline/1025
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
Capital Gains 0
|
||||
Equity:Options
|
||||
4
tests/baseline/1026
Normal file
4
tests/baseline/1026
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
time 0
|
||||
Equity:Options
|
||||
4
tests/baseline/1027
Normal file
4
tests/baseline/1027
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
Brokerage:Options 45.60 COMP
|
||||
Equity:Options
|
||||
4
tests/baseline/1028
Normal file
4
tests/baseline/1028
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
Brokerage:Options -20.00 COMP
|
||||
Equity:Options
|
||||
4
tests/baseline/1029
Normal file
4
tests/baseline/1029
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
2006/10/20 Stock option vesting schedule
|
||||
Brokerage:Options 45.60 COMP
|
||||
Equity:Options
|
||||
10
tests/cases/1001.dat
Normal file
10
tests/cases/1001.dat
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
1.00s = 100c
|
||||
1.00G = 100s
|
||||
|
||||
D 1.00G
|
||||
|
||||
2006/03/14 Opening Balances
|
||||
Assets:Ebonheart 63869c
|
||||
Assets:Tajer 248720c
|
||||
Assets:Gruulmorg
|
||||
Equity:Gold
|
||||
25
tests/cases/1002.dat
Normal file
25
tests/cases/1002.dat
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
D $1,000.00
|
||||
|
||||
A Liabilities:MasterCard
|
||||
|
||||
@def foo(x)=x*1000
|
||||
|
||||
2006/02/14 Buy
|
||||
Broker AAPL 10 @ $200.00 ; this is a little note [2006/10/10]
|
||||
Broker AAPL 10 @ $300.00
|
||||
Bank ; this is a comment
|
||||
|
||||
2006/02/14 Sell
|
||||
Bank $2000.00 + $500.00
|
||||
Broker AAPL -5 [2005/10/20] {$200.0015} @ $500.00
|
||||
Capital Gains $-1500.00
|
||||
|
||||
2005/10/20 Stock option vesting schedule
|
||||
Brokerage:Options (1.00 COMP {$10.00}*min((([2006/08/20]-[2005/10/20])/3600/24)*0.15, 5000))
|
||||
Equity:Options
|
||||
|
||||
P 2006/02/27 00:00:00 COMP $15.00
|
||||
|
||||
;2005/10/20 Stock option vesting schedule
|
||||
; Brokerage:Time (1+@now)
|
||||
; Equity:Time
|
||||
24
tests/cases/1030.dat
Normal file
24
tests/cases/1030.dat
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
2006/03/01 Basis
|
||||
Assets:Pool $1000
|
||||
(Shares) 1000 shares {$1.00}
|
||||
Equity
|
||||
|
||||
P 2006/03/01 shares $1.00
|
||||
|
||||
2006/03/10 Purchase
|
||||
(Payable:You) -500 shares {$1}
|
||||
(Shares) -500 shares
|
||||
Assets:Investment $500
|
||||
Income:Investments $-500
|
||||
|
||||
2006/03/16 Growth
|
||||
Assets:Pool $500
|
||||
Income:Capital Gains
|
||||
|
||||
P 2006/03/16 shares $1.50
|
||||
|
||||
2006/03/16 Cash out
|
||||
(Payable:You) 250 shares {$1}
|
||||
(Shares) 250 shares
|
||||
Expenses:Investors
|
||||
Assets (- valueof({1 shares}) * 250)
|
||||
834
tests/cases/1032.dat
Normal file
834
tests/cases/1032.dat
Normal file
|
|
@ -0,0 +1,834 @@
|
|||
i 2003/10/06 15:21:00 EDG fp_conv
|
||||
o 2003/10/06 15:47:53 retrieved documents from ACM and the Web
|
||||
i 2003/10/08 16:25:08 EDG fp_conv
|
||||
o 2003/10/08 17:10:50 read Steele document; need to print and implement
|
||||
i 2003/10/18 14:54:34 EDG fp_conv
|
||||
o 2003/10/18 16:56:59
|
||||
i 2003/10/18 23:50:34 EDG fp_conv
|
||||
o 2003/10/19 01:08:12
|
||||
i 2003/10/19 10:54:33 EDG fp_conv
|
||||
o 2003/10/19 12:41:56
|
||||
i 2003/10/19 16:21:07 EDG fp_conv
|
||||
o 2003/10/19 18:29:39
|
||||
i 2003/10/21 14:54:10 EDG fp_conv
|
||||
o 2003/10/21 18:07:07
|
||||
i 2003/10/21 22:44:17 EDG fp_conv
|
||||
o 2003/10/21 23:55:57
|
||||
i 2003/10/22 22:26:53 EDG fp_conv
|
||||
o 2003/10/22 23:22:49
|
||||
i 2003/10/23 02:44:00 EDG fp_conv
|
||||
o 2003/10/23 03:34:00
|
||||
i 2003/10/23 16:12:27 EDG fp_conv
|
||||
o 2003/10/23 17:39:08
|
||||
i 2003/10/26 10:32:16 ForumJobs Meeting
|
||||
o 2003/10/26 15:59:28
|
||||
i 2003/10/26 17:26:23 ForumJobs Meeting
|
||||
o 2003/10/26 17:57:52
|
||||
i 2003/10/27 16:02:10 EDG fp_conv
|
||||
o 2003/10/27 17:33:53
|
||||
i 2003/10/27 22:38:57 EDG fp_conv
|
||||
o 2003/10/28 23:37:51 Steele is working in C, with fgmp
|
||||
i 2003/10/28 12:13:46 EDG fp_conv
|
||||
o 2003/10/28 12:27:31 sought documents relating to MP math
|
||||
i 2003/10/28 16:14:41 EDG fp_conv
|
||||
o 2003/10/28 18:32:44 still need to implement mul/div/mod
|
||||
i 2003/10/29 22:18:23 EDG fp_conv
|
||||
o 2003/10/29 23:38:07
|
||||
i 2003/10/30 16:39:19 EDG fp_conv
|
||||
o 2003/10/30 17:18:07
|
||||
i 2003/10/30 23:33:14 EDG fp_conv
|
||||
o 2003/10/31 01:21:18
|
||||
i 2003/10/31 13:16:38 EDG fp_conv
|
||||
o 2003/10/31 15:01:32
|
||||
i 2003/10/31 16:49:51 EDG fp_conv
|
||||
o 2003/10/31 17:26:45
|
||||
i 2003/10/31 23:15:10 EDG fp_conv
|
||||
o 2003/11/01 00:48:11
|
||||
i 2003/11/01 12:50:49 EDG fp_conv
|
||||
o 2003/11/01 14:01:35
|
||||
i 2003/11/01 18:53:48 EDG fp_conv
|
||||
o 2003/11/01 19:16:41
|
||||
i 2003/11/02 21:50:36 EDG fp_conv
|
||||
o 2003/11/03 00:05:10
|
||||
i 2003/11/03 19:30:48 EDG fp_conv
|
||||
o 2003/11/03 21:44:02
|
||||
i 2003/11/04 19:55:44 EDG fp_conv
|
||||
o 2003/11/04 20:54:24
|
||||
i 2003/11/05 15:36:45 EDG fp_conv
|
||||
o 2003/11/05 18:35:36
|
||||
i 2003/11/06 16:23:41 EDG fp_conv
|
||||
o 2003/11/06 16:37:04
|
||||
i 2003/11/06 17:23:27 EDG fp_conv
|
||||
o 2003/11/06 17:37:22
|
||||
i 2003/11/07 00:02:44 EDG fp_conv
|
||||
o 2003/11/07 01:44:34
|
||||
i 2003/11/07 14:52:46 EDG fp_conv
|
||||
o 2003/11/07 15:07:55
|
||||
i 2003/11/07 17:16:59 EDG fp_conv
|
||||
o 2003/11/07 18:01:49
|
||||
i 2003/11/08 16:47:41 EDG fp_conv
|
||||
o 2003/11/08 17:25:38
|
||||
i 2003/11/09 15:25:01 EDG fp_conv
|
||||
o 2003/11/09 15:49:55
|
||||
i 2003/11/10 17:54:44 EDG fp_conv
|
||||
o 2003/11/10 18:43:49
|
||||
i 2003/11/11 15:02:51 EDG fp_conv
|
||||
o 2003/11/11 15:23:49
|
||||
i 2003/11/13 20:37:34 EDG fp_conv
|
||||
o 2003/11/13 21:24:47
|
||||
i 2003/11/14 01:23:47 EDG fp_conv
|
||||
o 2003/11/14 02:58:15
|
||||
i 2003/11/16 19:43:32 EDG fp_conv
|
||||
o 2003/11/16 20:13:59
|
||||
i 2003/11/16 21:37:30 EDG fp_conv
|
||||
o 2003/11/16 23:32:12
|
||||
i 2003/11/16 23:53:07 EDG fp_conv
|
||||
o 2003/11/17 00:10:06
|
||||
i 2003/11/19 01:14:33 EDG fp_conv
|
||||
o 2003/11/19 02:29:34
|
||||
i 2003/11/19 14:54:48 EDG fp_conv
|
||||
o 2003/11/19 18:27:36
|
||||
i 2003/11/19 22:49:09 EDG fp_conv
|
||||
o 2003/11/19 23:42:47
|
||||
i 2003/11/19 23:53:56 EDG fp_conv
|
||||
o 2003/11/20 00:22:53
|
||||
i 2003/11/23 00:27:28 EDG fp_conv
|
||||
o 2003/11/23 02:36:37
|
||||
i 2003/11/23 14:24:29 EDG fp_conv
|
||||
o 2003/11/23 14:46:21
|
||||
i 2003/11/23 15:23:12 EDG fp_conv
|
||||
o 2003/11/23 16:24:58
|
||||
i 2003/11/24 19:04:26 EDG fp_conv
|
||||
o 2003/11/24 20:40:45
|
||||
i 2003/11/24 21:13:32 EDG fp_conv
|
||||
o 2003/11/24 22:50:26
|
||||
i 2003/11/25 16:04:57 EDG fp_conv
|
||||
o 2003/11/25 19:16:07
|
||||
i 2003/11/25 20:01:32 EDG fp_conv
|
||||
o 2003/11/25 20:20:37
|
||||
i 2003/11/25 22:03:56 EDG fp_conv
|
||||
o 2003/11/25 22:32:45
|
||||
i 2003/11/30 18:45:02 EDG fp_conv
|
||||
o 2003/11/30 19:45:58
|
||||
i 2003/11/30 21:49:24 EDG fp_conv
|
||||
o 2003/11/30 22:36:42
|
||||
i 2003/12/03 15:48:03 EDG fp_conv
|
||||
o 2003/12/03 17:07:22
|
||||
i 2003/12/04 14:46:53 EDG fp_conv
|
||||
o 2003/12/04 16:05:17
|
||||
i 2003/12/07 16:00:38 ForumJobs Meeting
|
||||
o 2003/12/07 19:00:27
|
||||
i 2003/12/08 00:41:29 EDG fp_conv
|
||||
o 2003/12/08 01:18:18
|
||||
i 2003/12/08 14:12:19 EDG fp_conv
|
||||
o 2003/12/08 14:57:03
|
||||
i 2003/12/08 16:14:25 EDG fp_conv
|
||||
o 2003/12/08 17:37:53
|
||||
i 2003/12/08 22:11:16 EDG fp_conv
|
||||
o 2003/12/09 02:18:03
|
||||
i 2003/12/09 16:19:26 ForumJobs
|
||||
o 2003/12/09 18:41:55
|
||||
i 2003/12/09 19:46:55 ForumJobs
|
||||
o 2003/12/09 20:12:32
|
||||
i 2003/12/09 21:25:34 ForumJobs
|
||||
o 2003/12/09 23:23:50
|
||||
i 2003/12/09 23:48:46 EDG fp_conv
|
||||
o 2003/12/10 03:17:33
|
||||
i 2003/12/10 13:50:03 EDG fp_conv
|
||||
o 2003/12/10 14:30:31
|
||||
i 2003/12/10 16:50:40 EDG fp_conv
|
||||
o 2003/12/11 05:12:28
|
||||
i 2003/12/11 14:31:30 EDG fp_conv
|
||||
o 2003/12/11 18:17:08
|
||||
i 2003/12/12 00:56:19 EDG fp_conv
|
||||
o 2003/12/12 02:38:32
|
||||
i 2003/12/12 16:42:33 EDG fp_conv
|
||||
o 2003/12/12 20:13:46
|
||||
i 2003/12/12 22:09:46 EDG fp_conv
|
||||
o 2003/12/13 01:26:52
|
||||
i 2003/12/14 16:00:43 ForumJobs Meeting
|
||||
o 2003/12/14 18:44:38
|
||||
i 2003/12/14 20:12:59 EDG fp_conv
|
||||
o 2003/12/15 02:49:53
|
||||
i 2003/12/15 15:21:19 EDG fp_conv
|
||||
o 2003/12/15 17:59:45
|
||||
i 2003/12/15 19:06:10 EDG fp_conv
|
||||
o 2003/12/16 00:12:14
|
||||
i 2003/12/16 00:12:15 ForumJobs
|
||||
o 2003/12/16 01:16:51
|
||||
i 2003/12/16 16:43:32 EDG fp_conv
|
||||
o 2003/12/16 18:44:46
|
||||
i 2003/12/16 19:54:15 EDG fp_conv
|
||||
o 2003/12/17 01:08:19
|
||||
i 2003/12/17 01:34:12 ForumJobs
|
||||
o 2003/12/17 01:51:34
|
||||
i 2003/12/17 16:56:39 EDG fp_conv
|
||||
o 2003/12/17 19:15:58
|
||||
i 2003/12/17 22:49:59 EDG fp_conv
|
||||
o 2003/12/18 00:47:10
|
||||
i 2003/12/18 16:53:31 ForumJobs
|
||||
o 2003/12/18 18:35:43
|
||||
i 2003/12/19 18:12:39 ForumJobs
|
||||
o 2003/12/19 20:01:01
|
||||
i 2003/12/23 17:30:29 ForumJobs
|
||||
o 2003/12/23 18:10:41
|
||||
i 2004/01/13 12:32:55 ForumJobs
|
||||
o 2004/01/13 12:53:55
|
||||
i 2004/01/14 14:23:47 EDG fp_conv
|
||||
o 2004/01/14 19:25:42
|
||||
i 2004/01/15 17:20:01 EDG fp_conv
|
||||
o 2004/01/15 18:40:34
|
||||
i 2004/01/16 12:50:26 EDG fp_conv
|
||||
o 2004/01/16 18:39:45
|
||||
i 2004/01/16 19:23:09 EDG fp_conv
|
||||
o 2004/01/16 20:41:14
|
||||
i 2004/01/19 12:48:57 EDG fp_conv
|
||||
o 2004/01/19 15:18:38
|
||||
i 2004/01/20 16:07:50 ForumJobs
|
||||
o 2004/01/20 19:18:04
|
||||
i 2004/01/21 13:18:04 EDG fp_conv
|
||||
o 2004/01/21 18:18:04
|
||||
i 2004/01/22 13:39:27 EDG fp_conv
|
||||
o 2004/01/22 18:31:03
|
||||
i 2004/01/22 19:12:42 EDG fp_conv
|
||||
o 2004/01/22 20:48:41
|
||||
i 2004/01/23 12:58:41 EDG fp_conv
|
||||
o 2004/01/23 15:27:58
|
||||
i 2004/01/23 16:00:00 ForumJobs
|
||||
o 2004/01/23 19:15:00
|
||||
i 2004/01/23 21:30:26 EDG fp_conv
|
||||
o 2004/01/23 23:45:56
|
||||
i 2004/01/25 17:19:42 ForumJobs
|
||||
o 2004/01/25 18:22:37
|
||||
i 2004/01/26 22:34:31 ForumJobs
|
||||
o 2004/01/26 23:35:23
|
||||
i 2004/01/27 12:53:42 EDG fp_conv
|
||||
o 2004/01/27 13:23:15
|
||||
i 2004/01/27 19:42:50 EDG fp_conv
|
||||
o 2004/01/27 19:57:28
|
||||
i 2004/01/27 22:08:53 ForumJobs
|
||||
o 2004/01/27 22:44:40
|
||||
i 2004/01/27 23:14:41 EDG fp_conv
|
||||
o 2004/01/27 23:48:05
|
||||
i 2004/01/28 00:00:27 ForumJobs
|
||||
o 2004/01/28 00:39:21
|
||||
i 2004/01/28 17:04:22 ForumJobs
|
||||
o 2004/01/28 17:34:31
|
||||
i 2004/01/29 14:07:44 ForumJobs
|
||||
o 2004/01/29 16:07:04
|
||||
i 2004/01/29 17:15:58 ForumJobs
|
||||
o 2004/01/29 18:55:40
|
||||
i 2004/01/29 22:11:41 ForumJobs
|
||||
o 2004/01/29 23:31:41
|
||||
i 2004/01/30 15:56:02 ForumJobs
|
||||
o 2004/01/30 17:54:06
|
||||
i 2004/01/30 20:43:00 ForumJobs
|
||||
o 2004/01/30 21:56:30
|
||||
i 2004/01/30 22:16:09 ForumJobs
|
||||
o 2004/01/30 22:28:35
|
||||
i 2004/02/03 17:19:26 ForumJobs
|
||||
o 2004/02/03 19:24:08
|
||||
i 2004/02/08 14:42:44 ForumJobs
|
||||
o 2004/02/08 18:07:07
|
||||
i 2004/02/10 18:05:54 EDG fp_conv
|
||||
o 2004/02/10 19:10:24
|
||||
i 2004/02/10 19:10:25 ForumJobs
|
||||
o 2004/02/10 19:16:23
|
||||
i 2004/02/11 18:04:55 ForumJobs
|
||||
o 2004/02/11 19:25:12
|
||||
i 2004/02/11 21:42:52 ForumJobs
|
||||
o 2004/02/12 01:16:28
|
||||
i 2004/02/12 16:01:50 ForumJobs
|
||||
o 2004/02/12 16:45:17
|
||||
i 2004/02/17 15:36:11 ForumJobs
|
||||
o 2004/02/17 17:37:50
|
||||
i 2004/02/17 22:20:06 ForumJobs
|
||||
o 2004/02/17 23:20:18
|
||||
i 2004/02/20 18:00:44 EDG fp_conv
|
||||
o 2004/02/20 19:21:42
|
||||
i 2004/02/23 21:16:24 EDG fp_conv
|
||||
o 2004/02/24 00:01:01
|
||||
i 2004/02/24 21:29:21 EDG fp_conv
|
||||
o 2004/02/24 21:53:23
|
||||
i 2004/02/25 10:55:19 EDG fp_conv
|
||||
o 2004/02/25 13:30:24
|
||||
i 2004/02/27 13:57:39 EDG fp_conv
|
||||
o 2004/02/27 15:49:31
|
||||
i 2004/02/27 16:18:22 EDG fp_conv
|
||||
o 2004/02/27 17:47:34
|
||||
i 2004/03/02 11:45:36 ForumJobs
|
||||
o 2004/03/02 12:45:38
|
||||
i 2004/03/02 12:45:38 EDG fp_conv
|
||||
o 2004/03/02 18:01:03
|
||||
i 2004/03/02 21:03:44 ForumJobs
|
||||
o 2004/03/02 21:39:25
|
||||
i 2004/03/03 12:05:24 EDG fp_conv
|
||||
o 2004/03/03 17:47:43
|
||||
i 2004/03/03 20:34:26 EDG fp_conv
|
||||
o 2004/03/03 22:04:50
|
||||
i 2004/03/04 19:38:23 EDG fp_conv
|
||||
o 2004/03/04 21:08:57
|
||||
i 2004/03/07 16:53:41 ForumJobs
|
||||
o 2004/03/07 17:45:30
|
||||
i 2004/03/09 14:24:33 ForumJobs
|
||||
o 2004/03/09 15:07:53
|
||||
i 2004/03/09 15:07:55 EDG fp_conv
|
||||
o 2004/03/09 17:53:35
|
||||
i 2004/03/22 23:21:08 ForumJobs
|
||||
o 2004/03/23 00:09:32
|
||||
i 2004/03/23 15:45:28 ForumJobs
|
||||
o 2004/03/23 16:38:24
|
||||
i 2004/03/30 23:30:17 ForumJobs
|
||||
o 2004/03/31 01:31:43
|
||||
i 2004/04/02 17:49:46 ForumJobs
|
||||
o 2004/04/02 21:02:43
|
||||
i 2004/04/03 20:33:51 ForumJobs
|
||||
o 2004/04/03 22:49:54
|
||||
i 2004/04/04 18:46:00 ForumJobs
|
||||
o 2004/04/04 19:03:09
|
||||
i 2004/04/05 20:21:23 ForumJobs
|
||||
o 2004/04/05 20:51:24
|
||||
i 2004/04/06 15:32:37 ForumJobs
|
||||
o 2004/04/06 16:40:53
|
||||
i 2004/04/08 12:54:44 ForumJobs
|
||||
o 2004/04/08 13:27:18
|
||||
i 2004/04/08 14:50:39 ForumJobs
|
||||
o 2004/04/08 15:39:51
|
||||
i 2004/04/08 16:05:52 ForumJobs
|
||||
o 2004/04/08 17:16:33
|
||||
i 2004/04/08 23:46:34 ForumJobs
|
||||
o 2004/04/09 00:57:38
|
||||
i 2004/04/10 13:00:57 ForumJobs
|
||||
o 2004/04/10 14:53:01
|
||||
i 2004/04/12 16:18:02 ForumJobs
|
||||
o 2004/04/12 17:34:57
|
||||
i 2004/04/12 23:39:20 ForumJobs
|
||||
o 2004/04/13 00:32:45
|
||||
i 2004/04/14 12:23:48 ForumJobs
|
||||
o 2004/04/14 12:50:42
|
||||
i 2004/04/15 16:48:51 ForumJobs
|
||||
o 2004/04/15 17:55:10 invoice #1
|
||||
i 2004/04/26 12:34:11 ForumJobs
|
||||
o 2004/04/26 13:04:54
|
||||
i 2004/05/06 14:00:28 ForumJobs
|
||||
o 2004/05/06 14:38:53
|
||||
i 2004/07/27 14:11:31 Borland
|
||||
o 2004/07/27 14:35:56 discussed fake symbol consolidation schemes
|
||||
i 2004/07/29 17:54:42 Borland
|
||||
o 2004/07/29 18:32:50 discussed hashing issues in fake ns sym lookup
|
||||
i 2004/07/30 12:41:33 Borland
|
||||
o 2004/07/30 12:57:16 answered namespace lookup questions
|
||||
i 2005/04/04 13:03:18 3dex oss
|
||||
o 2005/04/04 14:33:18
|
||||
i 2005/04/18 11:03:18 3dex oss
|
||||
o 2005/04/18 12:36:18
|
||||
i 2005/04/18 14:03:18 3dex oss
|
||||
o 2005/04/18 16:57:56
|
||||
i 2005/05/10 13:45:16 EDG dr
|
||||
o 2005/05/10 15:30:52 10 issues checked
|
||||
i 2005/05/12 14:32:16 EDG dr
|
||||
o 2005/05/12 18:12:55
|
||||
i 2005/05/13 11:20:51 EDG dr
|
||||
o 2005/05/13 12:41:03
|
||||
i 2005/05/13 15:50:54 EDG dr
|
||||
o 2005/05/13 16:13:23 break
|
||||
i 2005/05/13 16:43:59 EDG dr
|
||||
o 2005/05/13 17:37:44
|
||||
i 2005/05/16 12:30:37 EDG dr
|
||||
o 2005/05/16 13:02:55
|
||||
i 2005/05/16 16:02:11 EDG dr
|
||||
o 2005/05/16 16:36:20
|
||||
i 2005/05/17 18:33:14 EDG dr
|
||||
o 2005/05/17 18:51:02
|
||||
i 2005/05/18 14:32:08 EDG dr
|
||||
o 2005/05/18 15:07:43
|
||||
i 2005/05/20 20:02:55 EDG dr
|
||||
o 2005/05/20 21:21:14
|
||||
i 2005/05/20 21:42:16 EDG dr
|
||||
o 2005/05/20 21:52:59
|
||||
i 2005/05/21 15:39:59 EDG dr
|
||||
o 2005/05/21 16:33:27
|
||||
i 2005/05/23 20:48:20 EDG dr
|
||||
o 2005/05/23 22:17:08
|
||||
i 2005/05/24 13:08:29 EDG dr
|
||||
o 2005/05/24 15:25:06
|
||||
i 2005/06/28 15:08:29 3dex security
|
||||
o 2005/06/28 18:44:13
|
||||
i 2005/06/28 22:38:57 3dex ledger
|
||||
o 2005/06/28 23:51:31
|
||||
i 2005/06/29 16:11:41 3dex ledger
|
||||
o 2005/06/29 19:46:04
|
||||
i 2005/07/01 15:03:35 3dex ledger
|
||||
o 2005/07/01 20:41:08
|
||||
i 2005/07/02 14:00:35 3dex ledger
|
||||
o 2005/07/02 18:00:35
|
||||
i 2005/07/03 13:30:35 3dex ledger
|
||||
o 2005/07/03 17:00:35
|
||||
i 2005/07/04 14:30:35 3dex ledger
|
||||
o 2005/07/04 19:00:35
|
||||
i 2005/07/04 20:44:35 3dex ledger
|
||||
o 2005/07/04 22:01:35
|
||||
i 2005/07/05 17:20:29 3dex ledger
|
||||
o 2005/07/05 22:58:35
|
||||
i 2005/07/06 23:43:14 3dex ledger
|
||||
o 2005/07/07 03:09:01
|
||||
i 2005/07/07 19:43:14 3dex ledger
|
||||
o 2005/07/07 21:09:01
|
||||
i 2005/07/09 13:55:22 3dex ledger
|
||||
o 2005/07/09 14:34:29
|
||||
i 2005/07/09 15:08:05 3dex ledger
|
||||
o 2005/07/09 17:46:15
|
||||
i 2005/07/12 21:24:03 3dex ledger
|
||||
o 2005/07/13 02:00:03
|
||||
i 2005/07/14 21:24:03 3dex ledger
|
||||
o 2005/07/14 21:59:40
|
||||
i 2005/07/16 22:03:57 3dex ledger
|
||||
o 2005/07/17 00:34:07
|
||||
i 2005/07/17 10:53:38 3dex ledger
|
||||
o 2005/07/17 11:56:49
|
||||
i 2005/08/10 15:45:54 3dex soap
|
||||
o 2005/08/10 16:12:02
|
||||
i 2005/08/11 15:04:23 3dex soap
|
||||
o 2005/08/11 16:07:35
|
||||
i 2005/08/15 15:07:18 3dex soap
|
||||
o 2005/08/15 15:35:18
|
||||
i 2005/08/15 15:36:14 3dex soap
|
||||
o 2005/08/15 16:18:41
|
||||
i 2005/08/17 16:21:10 3dex soap
|
||||
o 2005/08/17 16:53:37
|
||||
i 2005/08/18 14:01:46 3dex soap
|
||||
o 2005/08/18 18:33:12
|
||||
i 2005/08/25 13:30:44 3dex soap
|
||||
o 2005/08/25 15:38:09
|
||||
i 2005/08/25 16:52:18 3dex soap
|
||||
o 2005/08/25 17:54:52
|
||||
i 2005/08/25 20:19:34 3dex soap
|
||||
o 2005/08/25 21:32:07
|
||||
i 2005/08/28 18:06:40 3dex soap
|
||||
o 2005/08/28 18:36:55
|
||||
i 2005/08/28 19:34:56 3dex soap
|
||||
o 2005/08/28 19:55:25
|
||||
i 2005/10/22 00:55:10 3dex video
|
||||
o 2005/10/22 01:52:58
|
||||
i 2005/10/22 22:00:59 3dex video
|
||||
o 2005/10/22 22:58:30
|
||||
i 2005/10/25 13:00:00 MOW meeting
|
||||
o 2005/10/25 17:00:00
|
||||
i 2005/10/26 10:00:00 MOW meeting
|
||||
o 2005/10/26 14:00:00
|
||||
i 2005/10/26 18:51:52 MOW planning
|
||||
o 2005/10/26 18:57:43
|
||||
i 2005/10/27 20:34:28 MOW website
|
||||
o 2005/10/27 21:40:28
|
||||
i 2005/10/28 22:04:28 MOW website
|
||||
o 2005/10/28 22:50:28
|
||||
i 2005/10/29 23:04:28 MOW planning
|
||||
o 2005/10/29 23:40:28
|
||||
i 2005/10/30 22:18:28 MOW website
|
||||
o 2005/10/31 01:22:28
|
||||
i 2005/10/31 05:15:29 3dex video
|
||||
o 2005/10/31 05:55:34
|
||||
i 2005/10/31 15:51:55 3dex video
|
||||
o 2005/10/31 17:37:09
|
||||
i 2005/11/01 01:15:34 MOW website
|
||||
o 2005/11/01 02:34:55
|
||||
i 2005/11/01 18:04:47 MOW website
|
||||
o 2005/11/01 18:35:25
|
||||
i 2005/11/01 20:39:42 MOW website
|
||||
o 2005/11/01 23:00:08
|
||||
i 2005/11/02 00:26:09 MOW website
|
||||
o 2005/11/02 04:14:33
|
||||
i 2005/11/02 17:07:40 MOW website
|
||||
o 2005/11/02 18:13:49
|
||||
i 2005/11/02 22:09:53 MOW website
|
||||
o 2005/11/02 22:41:31
|
||||
i 2005/11/03 00:11:02 MOW website
|
||||
o 2005/11/03 04:52:25
|
||||
i 2005/11/03 04:55:38 3dex video
|
||||
o 2005/11/03 06:22:42
|
||||
i 2005/11/03 19:45:00 MOW website
|
||||
o 2005/11/03 22:53:12
|
||||
i 2005/11/04 00:16:33 MOW website
|
||||
o 2005/11/04 00:43:07
|
||||
i 2005/11/04 02:01:23 MOW website
|
||||
o 2005/11/04 04:31:25
|
||||
i 2005/11/04 14:11:55 MOW website
|
||||
o 2005/11/04 16:48:30
|
||||
i 2005/11/04 16:59:06 MOW website
|
||||
o 2005/11/04 19:54:46
|
||||
i 2005/11/05 22:29:03 MOW website
|
||||
o 2005/11/06 04:53:57
|
||||
i 2005/11/07 02:13:36 MOW website
|
||||
o 2005/11/07 04:38:12
|
||||
i 2005/11/07 20:29:07 MOW website
|
||||
o 2005/11/07 23:03:45
|
||||
i 2005/11/07 23:53:46 MOW website
|
||||
o 2005/11/08 04:35:27
|
||||
i 2005/11/08 16:02:23 MOW website
|
||||
o 2005/11/08 17:26:28
|
||||
i 2005/11/09 00:25:44 MOW website
|
||||
o 2005/11/09 03:35:00
|
||||
i 2005/11/09 14:28:03 MOW website
|
||||
o 2005/11/09 14:49:27
|
||||
i 2005/11/09 17:13:19 MOW website
|
||||
o 2005/11/09 17:29:51
|
||||
i 2005/11/10 00:13:33 MOW website
|
||||
o 2005/11/10 03:08:40
|
||||
i 2005/11/10 15:22:12 MOW website
|
||||
o 2005/11/10 16:33:16
|
||||
i 2005/11/10 19:10:44 MOW website
|
||||
o 2005/11/10 22:19:44
|
||||
i 2005/11/11 01:00:54 MOW website
|
||||
o 2005/11/11 01:31:39
|
||||
i 2005/11/11 01:50:07 MOW website
|
||||
o 2005/11/11 03:13:36
|
||||
i 2005/11/11 03:35:18 MOW website
|
||||
o 2005/11/11 05:32:27
|
||||
i 2005/11/13 20:07:14 MOW website
|
||||
o 2005/11/13 21:14:05
|
||||
i 2005/11/13 22:02:04 MOW website
|
||||
o 2005/11/14 01:34:44
|
||||
i 2005/11/14 23:35:33 MOW website
|
||||
o 2005/11/15 12:25:00
|
||||
i 2005/11/15 01:31:53 MOW website
|
||||
o 2005/11/15 01:54:55
|
||||
i 2005/11/15 16:58:26 MOW website
|
||||
o 2005/11/15 18:17:43
|
||||
i 2005/11/15 21:16:00 MOW website
|
||||
o 2005/11/15 22:57:24
|
||||
i 2005/11/15 23:52:00 MOW website
|
||||
o 2005/11/16 07:08:14
|
||||
i 2005/11/16 20:06:33 MOW website
|
||||
o 2005/11/16 23:00:45
|
||||
i 2005/11/17 00:15:29 MOW website
|
||||
o 2005/11/17 09:39:11
|
||||
i 2005/11/17 15:33:03 MOW website: Polishing MainIndex.aspx
|
||||
o 2005/11/17 17:12:52
|
||||
i 2005/11/17 20:40:53 MOW website: Fixing the display of StoryTable.ascx
|
||||
o 2005/11/18 00:14:58
|
||||
i 2005/11/18 00:15:19 MOW website: Improve Asset class
|
||||
o 2005/11/18 03:42:35
|
||||
i 2005/11/19 19:04:00 MOW website: Fix MainIndex page
|
||||
o 2005/11/19 22:30:14
|
||||
i 2005/11/19 22:56:38 MOW website: Finalize HTML for AuthorIndex and Profile
|
||||
o 2005/11/20 07:49:00
|
||||
i 2005/11/20 19:02:48 MOW website: Resolving final issues
|
||||
o 2005/11/20 23:58:01
|
||||
i 2005/11/22 00:04:47 MOW website: MainIndex - Change header display and fixed alignment
|
||||
o 2005/11/22 02:54:14
|
||||
i 2005/11/22 02:54:14 MOW website: AuthorProfile - Fix alignment issues created by MainIndex fixes
|
||||
o 2005/11/22 03:08:13
|
||||
i 2005/11/22 03:08:13 MOW website: Breadcrumb navigation
|
||||
o 2005/11/22 04:13:01
|
||||
i 2005/11/22 04:13:01 MOW website: CreateTheme - Fixing style
|
||||
o 2005/11/22 04:45:41
|
||||
i 2005/11/22 04:45:41 MOW website: Confirming deletion
|
||||
o 2005/11/22 05:14:26
|
||||
i 2005/11/22 05:14:29 MOW website: Yellow message boxes
|
||||
o 2005/11/22 06:17:15
|
||||
i 2005/11/22 06:47:00 MOW website: MainIndex - Testing and fixing HTML
|
||||
o 2005/11/22 08:20:19
|
||||
i 2005/11/22 17:41:19 MOW website: MainIndex - Use PostedDate in Themes for sorting
|
||||
o 2005/11/22 18:14:23
|
||||
i 2005/11/22 18:49:32 MOW website: MainIndex - Use PostedDate in Themes for sorting
|
||||
o 2005/11/22 20:01:52
|
||||
i 2005/11/23 00:04:07 MOW website: AssetList - Finishing uploads
|
||||
o 2005/11/23 01:13:28
|
||||
i 2005/11/24 16:49:19 MOW website: AssetList - Support ordering
|
||||
o 2005/11/24 20:20:23
|
||||
i 2005/11/24 20:50:28 MOW website: AssetList - Finishing uploads
|
||||
o 2005/11/24 22:13:13
|
||||
i 2005/11/27 19:33:05 MOW website: StoryDetails - Adding other tables
|
||||
o 2005/11/27 21:15:26
|
||||
i 2005/11/28 20:27:07 MOW website: StoryDetails - Adding other tables
|
||||
o 2005/11/28 21:17:52
|
||||
i 2005/11/28 21:58:54 MOW website: StoryDetails - Adding other tables
|
||||
o 2005/11/29 00:49:57
|
||||
i 2005/11/29 02:16:10 MOW website: Use field validators again
|
||||
o 2005/11/29 03:20:58
|
||||
i 2005/11/29 04:09:57 MOW website: Use field validators again
|
||||
o 2005/11/29 04:35:41
|
||||
i 2005/11/30 00:08:28 MOW website: AddedStories - The main added story list
|
||||
o 2005/11/30 01:00:32
|
||||
i 2005/11/30 20:58:15 MOW website: AddedStories - The main added story list
|
||||
o 2005/11/30 22:01:42
|
||||
i 2005/11/30 22:57:15 MOW website: AddedStories - The main added story list
|
||||
o 2005/12/01 03:02:46
|
||||
i 2005/12/01 20:32:47 MOW website: AddedStories - The main added story list
|
||||
o 2005/12/01 21:18:13
|
||||
i 2005/12/01 21:18:27 MOW website: MainIndex - Further corrections using latest HTML
|
||||
o 2005/12/01 21:55:20
|
||||
i 2005/12/01 22:55:49 MOW website: MainIndex - Further corrections using latest HTML
|
||||
o 2005/12/02 03:21:50
|
||||
i 2005/12/02 12:19:06 MOW website: BookDescription
|
||||
o 2005/12/02 13:27:17
|
||||
i 2005/12/02 13:27:22 MOW website: Cleanup
|
||||
o 2005/12/02 17:35:32
|
||||
i 2005/12/05 17:50:37 MOW website: Cleanup
|
||||
o 2005/12/05 17:52:33
|
||||
i 2005/12/05 18:44:48 MOW website: Cleanup
|
||||
o 2005/12/05 22:13:06
|
||||
i 2005/12/05 22:29:40 MOW website: Cleanup
|
||||
o 2005/12/06 01:00:03
|
||||
i 2005/12/06 01:38:51 MOW website: Cleanup
|
||||
o 2005/12/06 02:30:04
|
||||
i 2005/12/06 18:44:24 MOW website: Cleanup
|
||||
o 2005/12/06 20:00:21
|
||||
i 2005/12/06 21:00:03 MOW website: Cleanup
|
||||
o 2005/12/07 00:44:28
|
||||
i 2005/12/07 00:44:46 MOW website: AuthorProfile - Support for CommLanguage and Passwords
|
||||
o 2005/12/07 02:10:41
|
||||
i 2005/12/07 02:11:11 MOW website: ShowImage - Make Popup size based on Image size
|
||||
o 2005/12/07 02:35:37
|
||||
i 2005/12/07 02:41:14 MOW website: ShowImage - Make Popup size based on Image size
|
||||
o 2005/12/07 03:02:45
|
||||
i 2005/12/07 04:22:17 MOW website: ShowImage - Make Popup size based on Image size
|
||||
o 2005/12/07 06:00:31
|
||||
i 2005/12/07 06:00:45 MOW website: AuthorIndex - Fixes for the Cleanup
|
||||
o 2005/12/07 06:31:09
|
||||
i 2005/12/07 10:10:21 MOW website: AddedStories - Add support for searching by author
|
||||
o 2005/12/07 11:37:51
|
||||
i 2005/12/07 12:55:55 MOW planning
|
||||
o 2005/12/07 13:26:03
|
||||
i 2005/12/07 13:26:19 MOW website: Cleanup
|
||||
o 2005/12/07 14:20:32
|
||||
i 2005/12/07 15:13:21 MOW website: Cleanup
|
||||
o 2005/12/07 15:46:54
|
||||
i 2005/12/07 17:52:33 MOW website: Cleanup
|
||||
o 2005/12/07 18:36:52
|
||||
i 2005/12/08 10:31:32 MOW website: Cleanup
|
||||
o 2005/12/08 16:28:12
|
||||
i 2005/12/08 20:37:50 MOW website: Cleanup
|
||||
o 2005/12/08 22:38:42
|
||||
i 2005/12/09 13:44:36 MOW website: StoryDetails - Split into multiple pages
|
||||
o 2005/12/09 14:09:44
|
||||
i 2005/12/11 14:46:31 MOW website: StoryDetails - Split into multiple pages
|
||||
o 2005/12/11 16:09:49
|
||||
i 2005/12/12 11:27:15 MOW website: StoryDetails - Split into multiple pages
|
||||
o 2005/12/12 14:39:05
|
||||
i 2005/12/12 14:58:15 MOW website: StoryDetails - Split into multiple pages
|
||||
o 2005/12/12 17:06:12
|
||||
i 2005/12/12 17:06:19 MOW website: Advertisements
|
||||
o 2005/12/12 18:22:28
|
||||
i 2005/12/12 19:07:13 MOW website: Advertisements
|
||||
o 2005/12/12 21:47:22
|
||||
i 2005/12/13 17:05:38 MOW website: Events
|
||||
o 2005/12/13 17:54:49
|
||||
i 2005/12/13 19:08:43 MOW website: Events
|
||||
o 2005/12/13 21:43:52
|
||||
i 2005/12/14 15:35:08 MOW website: Events
|
||||
o 2005/12/14 16:30:54
|
||||
i 2005/12/15 13:01:22 MOW website: Events
|
||||
o 2005/12/15 14:41:30
|
||||
i 2005/12/15 17:25:51 MOW website: Events
|
||||
o 2005/12/15 18:07:43
|
||||
i 2005/12/16 08:19:13 MOW website: Events
|
||||
o 2005/12/16 10:51:19
|
||||
i 2005/12/19 14:32:21 MOW website: Bugs
|
||||
o 2005/12/19 18:17:29
|
||||
i 2005/12/19 19:52:21 MOW website: Events
|
||||
o 2005/12/19 22:01:36
|
||||
i 2005/12/21 18:52:02 MOW website: TakeAction
|
||||
o 2005/12/21 21:30:58
|
||||
i 2005/12/29 22:35:56 MOW website: TakeAction
|
||||
o 2005/12/29 23:26:52
|
||||
i 2005/12/30 22:51:30 MOW website: Flags
|
||||
o 2005/12/31 00:02:40
|
||||
i 2006/01/02 19:12:34 MOW website: Communication
|
||||
o 2006/01/02 19:58:53
|
||||
i 2006/01/05 17:53:58 MOW website: Schedule
|
||||
o 2006/01/05 18:30:02
|
||||
i 2006/01/06 00:08:19 MOW website: Cleanup
|
||||
o 2006/01/06 01:36:11
|
||||
i 2006/01/07 17:25:54 MOW website: Cleanup
|
||||
o 2006/01/07 19:30:29
|
||||
i 2006/01/07 22:05:33 MOW website: Cleanup
|
||||
o 2006/01/08 00:45:18
|
||||
i 2006/01/08 15:36:25 MOW website: Cleanup
|
||||
o 2006/01/08 16:41:19
|
||||
i 2006/01/08 18:04:57 MOW website: Cleanup
|
||||
o 2006/01/08 20:03:15
|
||||
i 2006/01/08 20:50:43 MOW website: Cleanup
|
||||
o 2006/01/08 22:12:04
|
||||
i 2006/01/08 22:12:09 sina
|
||||
o 2006/01/08 23:19:16
|
||||
i 2006/01/08 23:19:17 MOW website: Cleanup
|
||||
o 2006/01/09 01:01:51
|
||||
i 2006/01/09 14:46:53 MOW website: Cleanup
|
||||
o 2006/01/09 17:19:53
|
||||
i 2006/01/09 18:19:54 MOW website: Cleanup
|
||||
o 2006/01/09 19:35:47
|
||||
i 2006/01/12 14:50:26 MOW website: Cleanup
|
||||
o 2006/01/12 17:34:41
|
||||
i 2006/01/12 19:59:47 MOW website: Cleanup
|
||||
o 2006/01/12 23:33:20
|
||||
i 2006/01/13 15:32:37 MOW website: Cleanup
|
||||
o 2006/01/13 16:03:19
|
||||
i 2006/01/14 18:50:12 sina
|
||||
o 2006/01/14 19:22:54
|
||||
i 2006/01/15 01:14:21 sina
|
||||
o 2006/01/15 01:50:04
|
||||
i 2006/01/15 02:21:13 MOW website: PressReleases
|
||||
o 2006/01/15 03:11:35
|
||||
i 2006/01/16 02:25:45 sina
|
||||
o 2006/01/16 02:59:01
|
||||
i 2006/01/16 18:08:28 MOW planning
|
||||
o 2006/01/16 18:21:21
|
||||
i 2006/01/16 21:43:57 sina
|
||||
o 2006/01/16 22:57:09
|
||||
i 2006/01/17 00:23:05 sina
|
||||
o 2006/01/17 02:51:55
|
||||
i 2006/01/17 18:01:54 sina
|
||||
o 2006/01/17 18:22:33
|
||||
i 2006/01/17 19:00:48 sina
|
||||
o 2006/01/17 19:19:36
|
||||
i 2006/01/17 19:34:10 sina
|
||||
o 2006/01/17 19:50:48
|
||||
i 2006/01/17 19:53:38 MOW website: v11
|
||||
o 2006/01/17 21:09:27
|
||||
i 2006/01/17 21:33:29 sina
|
||||
o 2006/01/17 21:55:42
|
||||
i 2006/01/17 22:02:38 sina
|
||||
o 2006/01/17 22:28:36
|
||||
i 2006/01/17 22:28:59 MOW website: v11
|
||||
o 2006/01/17 22:48:06
|
||||
i 2006/01/18 01:57:59 MOW website: v11
|
||||
o 2006/01/18 03:27:34
|
||||
i 2006/01/18 03:50:52 sina
|
||||
o 2006/01/18 04:32:47
|
||||
i 2006/01/18 18:07:31 MOW website: TakeAction
|
||||
o 2006/01/18 21:01:43
|
||||
i 2006/01/18 23:53:49 MOW website: TakeAction
|
||||
o 2006/01/19 01:20:50
|
||||
i 2006/01/19 14:50:56 MOW website: TakeAction
|
||||
o 2006/01/19 15:40:04
|
||||
i 2006/01/19 17:53:04 MOW website: TakeAction
|
||||
o 2006/01/19 19:25:36
|
||||
i 2006/01/22 00:59:17 MOW website: Cleanup
|
||||
o 2006/01/22 01:23:58
|
||||
i 2006/01/22 07:43:01 MOW website: Cleanup
|
||||
o 2006/01/22 10:02:30
|
||||
i 2006/01/22 19:18:23 MOW website: Cleanup
|
||||
o 2006/01/22 19:48:01
|
||||
i 2006/01/22 20:31:36 MOW website: Cleanup
|
||||
o 2006/01/22 23:05:58
|
||||
i 2006/01/23 18:45:59 MOW website: SubTheme
|
||||
o 2006/01/23 19:50:39
|
||||
i 2006/01/23 21:05:19 MOW website: SubTheme
|
||||
o 2006/01/24 01:02:44
|
||||
i 2006/01/24 20:07:33 MOW website: Bugs
|
||||
o 2006/01/24 20:39:11
|
||||
i 2006/01/25 08:38:02 MOW website: Bugs
|
||||
o 2006/01/25 10:17:25
|
||||
i 2006/01/25 11:54:50 MOW website: Bugs
|
||||
o 2006/01/25 14:26:52
|
||||
i 2006/01/27 03:42:03 MOW website: Bugs
|
||||
o 2006/01/27 04:35:28
|
||||
i 2006/01/27 05:25:53 MOW website: Bugs
|
||||
o 2006/01/27 06:14:55
|
||||
i 2006/01/27 16:27:55 MOW website: Bugs
|
||||
o 2006/01/27 16:36:42
|
||||
i 2006/01/27 17:08:46 MOW website: Bugs
|
||||
o 2006/01/27 17:38:40
|
||||
i 2006/01/29 15:42:37 MOW website: Bugs
|
||||
o 2006/01/29 16:12:01
|
||||
i 2006/01/29 22:12:15 MOW website: Bugs
|
||||
o 2006/01/30 00:30:12
|
||||
i 2006/01/30 13:24:14 MOW website: Comments
|
||||
o 2006/01/30 14:54:21
|
||||
i 2006/01/30 15:38:38 MOW website: Events
|
||||
o 2006/01/30 18:30:18
|
||||
i 2006/01/30 18:50:55 MOW website: AboutTheBook
|
||||
o 2006/01/30 19:14:55
|
||||
i 2006/01/31 12:30:40 MOW website: AboutTheBook
|
||||
o 2006/01/31 14:20:46
|
||||
i 2006/01/31 16:11:25 MOW website: Events
|
||||
o 2006/01/31 18:35:55
|
||||
i 2006/02/01 03:44:57 MOW website: public
|
||||
o 2006/02/01 04:21:29
|
||||
i 2006/02/01 10:40:37 MOW website: public
|
||||
o 2006/02/01 15:19:13
|
||||
i 2006/02/01 16:49:14 MOW website: public
|
||||
o 2006/02/01 19:37:46
|
||||
i 2006/02/02 09:55:16 MOW website: public
|
||||
o 2006/02/02 10:34:26
|
||||
i 2006/02/02 15:47:38 MOW website: public
|
||||
o 2006/02/02 18:39:48
|
||||
i 2006/02/03 09:14:47 MOW website: public
|
||||
o 2006/02/03 10:21:18
|
||||
i 2006/02/03 16:21:20 MOW website: public
|
||||
o 2006/02/03 17:26:02
|
||||
i 2006/02/05 11:49:52 MOW website: public
|
||||
o 2006/02/05 22:49:53
|
||||
i 2006/02/06 16:49:23 MOW website: public
|
||||
o 2006/02/06 18:10:33
|
||||
i 2006/02/07 17:01:45 MOW website: public
|
||||
o 2006/02/07 18:39:24
|
||||
i 2006/02/07 21:00:15 sina
|
||||
o 2006/02/08 23:27:28
|
||||
i 2006/02/08 11:47:31 MOW website: public
|
||||
o 2006/02/08 12:09:20
|
||||
i 2006/02/08 12:21:06 MOW website: public
|
||||
o 2006/02/08 12:54:37
|
||||
i 2006/02/10 21:20:03 MOW website: public
|
||||
o 2006/02/10 23:36:40
|
||||
i 2006/02/16 21:26:56 3dex scheduler
|
||||
o 2006/02/16 22:52:50
|
||||
i 2006/02/16 23:35:24 3dex scheduler
|
||||
o 2006/02/17 01:11:31
|
||||
i 2006/02/17 17:57:19 MOW website: public
|
||||
o 2006/02/17 19:09:45
|
||||
i 2006/02/17 21:00:15 sina
|
||||
o 2006/02/17 21:30:15
|
||||
i 2006/02/18 22:00:57 3dex scheduler
|
||||
o 2006/02/18 22:59:26
|
||||
i 2006/02/19 01:14:16 3dex scheduler
|
||||
o 2006/02/19 02:32:59
|
||||
i 2006/02/19 17:05:01 3dex scheduler
|
||||
o 2006/02/19 17:26:51
|
||||
i 2006/02/20 22:28:05 3dex scheduler
|
||||
o 2006/02/20 22:48:37
|
||||
i 2006/02/21 14:50:37 MOW website: Events
|
||||
o 2006/02/21 16:55:24
|
||||
i 2006/02/21 17:14:06 MOW website: Events
|
||||
o 2006/02/21 18:20:14
|
||||
i 2006/02/21 19:34:15 MOW website: Events
|
||||
o 2006/02/21 20:00:09
|
||||
i 2006/02/23 18:02:57 sina
|
||||
o 2006/02/23 19:35:47
|
||||
i 2006/02/28 16:01:01 MOW website: Factoids
|
||||
o 2006/02/28 18:32:39
|
||||
i 2006/02/28 22:13:01 MOW website: testing
|
||||
o 2006/02/28 23:41:58
|
||||
i 2006/03/02 12:52:49 MOW website: Factoids
|
||||
o 2006/03/02 14:13:21
|
||||
i 2006/03/02 16:01:03 MOW website: bugs
|
||||
o 2006/03/02 17:45:58
|
||||
i 2006/03/02 18:10:59 MOW website: bugs
|
||||
o 2006/03/02 18:59:01
|
||||
i 2006/03/03 16:23:29 MOW website: bugs
|
||||
o 2006/03/03 17:23:29
|
||||
i 2006/03/10 16:45:13 MOW website: testing
|
||||
o 2006/03/10 17:25:14
|
||||
i 2006/03/11 16:54:29 MOW website: testing
|
||||
o 2006/03/11 18:03:01
|
||||
i 2006/03/11 21:06:39 MOW website: testing
|
||||
o 2006/03/11 21:36:29
|
||||
i 2006/03/11 23:59:37 sina
|
||||
o 2006/03/12 03:30:39
|
||||
i 2006/03/13 00:41:27 MOW website: testing
|
||||
o 2006/03/13 02:04:44
|
||||
i 2006/03/14 03:19:06 MOW website: testing
|
||||
o 2006/03/14 03:37:49
|
||||
i 2006/03/15 02:03:32 MOW website: bugs
|
||||
o 2006/03/15 04:04:44
|
||||
i 2006/03/15 21:02:35 College:Setup
|
||||
o 2006/03/15 22:10:44
|
||||
i 2006/03/16 01:08:22 College:Setup
|
||||
o 2006/03/16 02:28:17
|
||||
i 2006/03/16 03:02:34 College:Setup
|
||||
o 2006/03/16 03:34:47
|
||||
i 2006/03/16 08:08:17 College:Setup
|
||||
o 2006/03/16 08:59:51
|
||||
i 2006/03/22 10:31:58 sina
|
||||
o 2006/03/22 13:06:15
|
||||
55
tests/confirm.py
Executable file
55
tests/confirm.py
Executable file
|
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
# This script confirms what ledger tells you.
|
||||
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
|
||||
def clean(num):
|
||||
return float(re.sub("(\s+|\$|,)","", num))
|
||||
|
||||
running_total = 0.0
|
||||
index = 1
|
||||
last_line = ""
|
||||
errors = 0
|
||||
|
||||
report = sys.argv[1]
|
||||
for line in os.popen("./ledger -f utils/standard.dat -e 2004/4 %s reg %s" %
|
||||
(report, sys.argv[2])):
|
||||
value = clean(line[55:67])
|
||||
total = clean(line[68:])
|
||||
|
||||
running_total += value
|
||||
diff = abs(running_total - total)
|
||||
if report == "-V" or report == "-G" and diff < 0.015:
|
||||
diff = 0.0
|
||||
if diff > 0.001:
|
||||
print "! discrepancy of %.2f (%.2f - %.2f) at line %d:" % \
|
||||
(running_total - total, running_total, total, index)
|
||||
print line,
|
||||
running_total = total
|
||||
errors += 1
|
||||
|
||||
index += 1
|
||||
last_line = line
|
||||
|
||||
balance_total = 0.0
|
||||
|
||||
for line in os.popen("./ledger -f utils/standard.dat -e 2004/4 %s bal %s" %
|
||||
(report, sys.argv[2])):
|
||||
if line[0] != '-':
|
||||
balance_total = clean(line[:20])
|
||||
|
||||
diff = abs(balance_total - running_total)
|
||||
if report == "-V" or report == "-G" and diff < 0.015:
|
||||
diff = 0.0
|
||||
if diff > 0.001:
|
||||
print
|
||||
print "! discrepancy of %.2f (%.2f - %.2f) between register and balance" % \
|
||||
(balance_total - running_total, balance_total, running_total)
|
||||
print last_line,
|
||||
print line,
|
||||
errors += 1
|
||||
|
||||
sys.exit(errors)
|
||||
65
tests/parser.h
Normal file
65
tests/parser.h
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
#ifndef __TESTFILEFORMAT_H
|
||||
#define __TESTFILEFORMAT_H
|
||||
|
||||
#include <cxxtest/TestSuite.h>
|
||||
|
||||
#include <textual.h>
|
||||
#include <xml.h>
|
||||
#include <binary.h>
|
||||
#include <gnucash.h>
|
||||
#include <qif.h>
|
||||
|
||||
using namespace std;
|
||||
using namespace ledger;
|
||||
|
||||
class TestFileFormat : public CxxTest::TestSuite
|
||||
{
|
||||
public:
|
||||
void testEmptyFileIsTextualFile()
|
||||
{
|
||||
stringstream emptyStream(stringstream::in);
|
||||
textual_parser_t textualParser;
|
||||
TS_ASSERT(textualParser.test(emptyStream));
|
||||
TS_ASSERT(emptyStream.good());
|
||||
TS_ASSERT_EQUALS(0, emptyStream.tellg());
|
||||
}
|
||||
|
||||
void testEmptyFileIsNotXMLFile()
|
||||
{
|
||||
stringstream emptyStream(stringstream::in);
|
||||
xml_parser_t xmlParser;
|
||||
TS_ASSERT(!xmlParser.test(emptyStream));
|
||||
TS_ASSERT(emptyStream.good());
|
||||
TS_ASSERT_EQUALS(0, emptyStream.tellg());
|
||||
}
|
||||
|
||||
void testEmptyFileIsNotBinaryFile()
|
||||
{
|
||||
stringstream emptyStream(stringstream::in);
|
||||
binary_parser_t binaryParser;
|
||||
TS_ASSERT(!binaryParser.test(emptyStream));
|
||||
TS_ASSERT(emptyStream.good());
|
||||
TS_ASSERT_EQUALS(0, emptyStream.tellg());
|
||||
}
|
||||
|
||||
void testEmptyFileIsNotGnuCashFile()
|
||||
{
|
||||
stringstream emptyStream(stringstream::in);
|
||||
gnucash_parser_t gnucashParser;
|
||||
TS_ASSERT(!gnucashParser.test(emptyStream));
|
||||
TS_ASSERT(emptyStream.good());
|
||||
TS_ASSERT_EQUALS(0, emptyStream.tellg());
|
||||
}
|
||||
|
||||
void testEmptyFileIsNotQIFFile()
|
||||
{
|
||||
stringstream emptyStream(stringstream::in);
|
||||
qif_parser_t qifParser;
|
||||
TS_ASSERT(!qifParser.test(emptyStream));
|
||||
TS_ASSERT(emptyStream.good());
|
||||
TS_ASSERT_EQUALS(0, emptyStream.tellg());
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif // __TESTFILEFORMAT_H
|
||||
95
tests/regress
Executable file
95
tests/regress
Executable file
|
|
@ -0,0 +1,95 @@
|
|||
#!/bin/sh
|
||||
|
||||
TMPDIR=/tmp
|
||||
TESTS=tests
|
||||
UTILS=utils
|
||||
CASES=$TESTS/cases
|
||||
|
||||
result=0
|
||||
|
||||
generate=false
|
||||
if [ "$1" = "--generate" ]; then
|
||||
generate=true
|
||||
fi
|
||||
|
||||
runtest() {
|
||||
num=$1
|
||||
shift
|
||||
if [ $generate = true ]; then
|
||||
echo generating $num
|
||||
./ledger "$@" > $TESTS/baseline/$num 2> $TMPDIR/errors-$$.out
|
||||
cat $TMPDIR/errors-$$.out >> $TESTS/baseline/$num
|
||||
rm -f $TMPDIR/*-$$.out
|
||||
elif [ -r $TESTS/baseline/$num ]; then
|
||||
./ledger "$@" > $TMPDIR/test-$$.out 2> $TMPDIR/errors-$$.out
|
||||
cat $TMPDIR/errors-$$.out >> $TMPDIR/test-$$.out
|
||||
|
||||
diff $TESTS/baseline/$num $TMPDIR/test-$$.out \
|
||||
> $TMPDIR/result-$$.out 2>&1
|
||||
if [ -s $TMPDIR/result-$$.out ]; then
|
||||
echo Error: Regression $num failed
|
||||
echo ":: regression $num: ./ledger $@" >> errors.out
|
||||
cat $TMPDIR/result-$$.out >> errors.out
|
||||
result=`expr $result + 1`
|
||||
fi
|
||||
rm -f $TMPDIR/*-$$.out
|
||||
fi
|
||||
}
|
||||
|
||||
echo Running Ledger regression tests...
|
||||
|
||||
runtest 1032 -f $CASES/1032.dat -S t bal
|
||||
|
||||
runtest 1031 -f $CASES/1030.dat reg
|
||||
runtest 1030 -f $CASES/1030.dat bal
|
||||
|
||||
runtest 1029 -f $CASES/1002.dat entry 2006/10/20 "stock option"
|
||||
runtest 1028 -f $CASES/1002.dat entry 2006/10/20 "stock option" -20
|
||||
runtest 1027 -f $CASES/1002.dat entry 2006/10/20 "stock option" opti
|
||||
runtest 1026 -f $CASES/1002.dat entry 2006/10/20 "stock option" time
|
||||
runtest 1025 -f $CASES/1002.dat entry 2006/10/20 "stock option" gain
|
||||
runtest 1024 -f $CASES/1002.dat entry 2006/10/20 "stock option" opti -20
|
||||
runtest 1023 -f $CASES/1002.dat entry 2006/10/20 "stock option" time -20
|
||||
runtest 1022 -f $CASES/1002.dat entry 2006/10/20 "stock option" gain -20
|
||||
|
||||
runtest 1021 -f $CASES/1002.dat entry 2006/10/20 "stock optionx"
|
||||
runtest 1020 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" -20
|
||||
runtest 1019 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" opti
|
||||
runtest 1018 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" time
|
||||
runtest 1017 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" gain
|
||||
runtest 1016 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" opti -20
|
||||
runtest 1015 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" time -20
|
||||
runtest 1014 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" gain -20
|
||||
|
||||
runtest 1013 -f $CASES/1002.dat entry 2006/10/20 "stock option" xopti
|
||||
runtest 1012 -f $CASES/1002.dat entry 2006/10/20 "stock option" xtime
|
||||
runtest 1011 -f $CASES/1002.dat entry 2006/10/20 "stock option" xgain
|
||||
runtest 1010 -f $CASES/1002.dat entry 2006/10/20 "stock option" xopti -20
|
||||
runtest 1009 -f $CASES/1002.dat entry 2006/10/20 "stock option" xtime -20
|
||||
runtest 1008 -f $CASES/1002.dat entry 2006/10/20 "stock option" xgain -20
|
||||
|
||||
runtest 1007 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" xopti
|
||||
runtest 1006 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" xtime
|
||||
runtest 1005 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" xgain
|
||||
runtest 1004 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" xopti -20
|
||||
runtest 1003 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" xtime -20
|
||||
runtest 1002 -f $CASES/1002.dat entry 2006/10/20 "stock optionx" xgain -20
|
||||
|
||||
runtest 1001 -f $CASES/1001.dat bal
|
||||
|
||||
if [ -f $UTILS/standard.dat ]; then
|
||||
runtest 10 -f $UTILS/standard.dat --truncate=trailing -M -r -s -n reg rent
|
||||
runtest 9 -f $UTILS/standard.dat --truncate=trailing -M -r -s reg rent
|
||||
runtest 8 -f $UTILS/standard.dat --truncate=trailing -M -r -n reg rent
|
||||
runtest 7 -f $UTILS/standard.dat --truncate=trailing -M -r reg rent
|
||||
runtest 6 -f $UTILS/standard.dat --truncate=trailing -M reg rent
|
||||
runtest 5 -f $UTILS/standard.dat --truncate=trailing -r -s -n reg rent
|
||||
runtest 4 -f $UTILS/standard.dat --truncate=trailing -r -s reg rent
|
||||
runtest 3 -f $UTILS/standard.dat --truncate=trailing -r -n reg rent
|
||||
runtest 2 -f $UTILS/standard.dat --truncate=trailing -r reg rent
|
||||
runtest 1 -f $UTILS/standard.dat --truncate=trailing reg rent
|
||||
fi
|
||||
|
||||
echo Running Ledger regression tests...done
|
||||
|
||||
exit $result
|
||||
27
tests/regtest
Executable file
27
tests/regtest
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh
|
||||
|
||||
errors=0
|
||||
|
||||
if [ ! -f utils/standard.dat ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for test in \
|
||||
"-O nrl:checking" \
|
||||
"-O ^expenses" \
|
||||
"-B 401" \
|
||||
"-V 401" \
|
||||
"-G 401" \
|
||||
"-B ira" \
|
||||
"-V ira" \
|
||||
"-G ira" \
|
||||
"-B retire" \
|
||||
"-V retire" \
|
||||
"-G retire"
|
||||
do
|
||||
echo testing: $test
|
||||
python tests/confirm.py $test
|
||||
errors=`expr $errors + $?`
|
||||
done
|
||||
|
||||
exit $errors
|
||||
184
tests/runtests.py
Executable file
184
tests/runtests.py
Executable file
|
|
@ -0,0 +1,184 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import random
|
||||
import string
|
||||
import signal
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
true, false = 1, 0
|
||||
|
||||
options = [
|
||||
"--account=TempAccount",
|
||||
"--actual",
|
||||
"--add-budget",
|
||||
"--amount-data",
|
||||
"--amount=a",
|
||||
"--ansi",
|
||||
"--ansi-invert",
|
||||
"--average",
|
||||
#"--balance-format",
|
||||
"--basis",
|
||||
"--begin=2004/01",
|
||||
"--budget",
|
||||
"--by-payee",
|
||||
#"--cache=/tmp/cache",
|
||||
"--cleared",
|
||||
"--collapse",
|
||||
"--comm-as-payee",
|
||||
#"--csv-register-format",
|
||||
"--current",
|
||||
"--date-format=%Y",
|
||||
"--descend='$100'",
|
||||
"--descend-if='t=={$100}'",
|
||||
"--deviation",
|
||||
"--display='a>10'",
|
||||
"--dow",
|
||||
"--download",
|
||||
"--effective",
|
||||
"--empty",
|
||||
"--end=2005/01",
|
||||
#"--equity-format",
|
||||
#"--file=/tmp/file",
|
||||
"--forecast='d<[2006]'",
|
||||
"--format=%Y",
|
||||
#"--full-help",
|
||||
"--gain",
|
||||
"--head=10",
|
||||
#"--help",
|
||||
#"--help-calc",
|
||||
#"--help-comm",
|
||||
#"--help-disp",
|
||||
#"--init-file=/tmp/init",
|
||||
#"--input-date-format",
|
||||
"--limit='a>10'",
|
||||
"--lots",
|
||||
"--lot-prices",
|
||||
"--lot-dates",
|
||||
"--lot-tags",
|
||||
"--market",
|
||||
"--monthly",
|
||||
"--no-cache",
|
||||
#"--output=/tmp/output",
|
||||
#"--pager",
|
||||
#"--percentage",
|
||||
"--performance",
|
||||
"--period-sort=A\\(t\\)",
|
||||
"--period=oct",
|
||||
#"--plot-amount-format",
|
||||
#"--plot-total-format",
|
||||
"--price",
|
||||
"--price-exp=1000",
|
||||
#"--price-db=/tmp/foo",
|
||||
#"--prices-format",
|
||||
#"--print-format",
|
||||
"--quantity",
|
||||
"--real",
|
||||
#"--reconcile",
|
||||
#"--reconcile-date",
|
||||
#"--register-format",
|
||||
"--related",
|
||||
"--sort=A\\(t\\)",
|
||||
"--subtotal",
|
||||
"--tail=5",
|
||||
"--total-data",
|
||||
"--total=O",
|
||||
"--totals",
|
||||
"--unbudgeted",
|
||||
"--uncleared",
|
||||
#"--version",
|
||||
"--weekly",
|
||||
"--wide",
|
||||
#"--wide-register-format",
|
||||
#"--write-hdr-format",
|
||||
#"--write-xact-format",
|
||||
"--yearly",
|
||||
]
|
||||
|
||||
commands = [
|
||||
"bal rent",
|
||||
"bal ira",
|
||||
"bal auto",
|
||||
"reg rent",
|
||||
"reg ira",
|
||||
"reg expenses:food",
|
||||
"print rent",
|
||||
"print irc",
|
||||
"xml rent",
|
||||
"xml irc",
|
||||
"equity rent",
|
||||
"equity ira",
|
||||
"prices AAPL",
|
||||
]
|
||||
|
||||
random.seed ()
|
||||
|
||||
loop = true
|
||||
count = 0
|
||||
errors = 0
|
||||
if len(sys.argv) > 1:
|
||||
errors = int(sys.argv[1])
|
||||
signals = 0
|
||||
|
||||
while loop:
|
||||
try:
|
||||
n = random.randint (0, len (options))
|
||||
opts = random.sample (options, n)
|
||||
for cmd in commands:
|
||||
if os.path.exists ("/tmp/out"):
|
||||
os.unlink ("/tmp/out")
|
||||
|
||||
cmd = "./ledger -f utils/standard.dat " + string.join(opts, " ") + " " + cmd + \
|
||||
" >> /tmp/out 2>&1"
|
||||
|
||||
sys.stdout = open ("/tmp/out", "w")
|
||||
print "::", cmd
|
||||
sys.stdout.close ()
|
||||
|
||||
ret = os.system (cmd)
|
||||
|
||||
sys.stdout = open ("/tmp/out", "a")
|
||||
|
||||
# Convert an odd UNIX return type into the appropriate
|
||||
# signal indication.
|
||||
if ret and ret % 256 == 0 and ret / 256 > 127:
|
||||
ret = 0x100 + (ret / 256 - 128)
|
||||
|
||||
if ret and ret % 256 == 0:
|
||||
print "ERROR: Return value", ret / 256
|
||||
sys.stdout.close ()
|
||||
os.system ("cat /tmp/out >> errors.out")
|
||||
errors += 1
|
||||
elif ret:
|
||||
if ret % 256 == signal.SIGINT:
|
||||
loop = false
|
||||
break
|
||||
print "SIGNAL: Return value", ret % 256
|
||||
sys.stdout.close ()
|
||||
os.system ("cat /tmp/out >> signals.out")
|
||||
signals += 1
|
||||
else:
|
||||
sys.stdout.close ()
|
||||
os.system ("cat /tmp/out >> results.out")
|
||||
|
||||
sys.stdout = sys.__stdout__
|
||||
count += 1
|
||||
if count < 10 or \
|
||||
(count < 100 and count % 10 == 0) or \
|
||||
(count < 1000 and count % 100 == 0) or \
|
||||
count % 1000 == 0:
|
||||
if signals > 0 and errors > 0:
|
||||
print "%d tests ... (%d signals, %d errors)" % \
|
||||
(count, signals, errors)
|
||||
elif signals > 0:
|
||||
print "%d tests ... (%d signals)" % \
|
||||
(count, signals)
|
||||
elif errors > 0:
|
||||
print "%d tests ... (%d errors)" % \
|
||||
(count, errors)
|
||||
else:
|
||||
print "%d tests ..." % count
|
||||
|
||||
except KeyboardInterrupt:
|
||||
loop = false
|
||||
34
tests/textual.h
Normal file
34
tests/textual.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
#ifndef __TESTTEXTUALJOURNAL_H
|
||||
#define __TESTTEXTUALJOURNAL_H
|
||||
|
||||
#include <cxxtest/TestSuite.h>
|
||||
|
||||
#include <textual.h>
|
||||
#include <config.h>
|
||||
|
||||
using namespace std;
|
||||
using namespace ledger;
|
||||
|
||||
class TestTextualJournal : public CxxTest::TestSuite
|
||||
{
|
||||
public:
|
||||
void testEmptyFileIsTextualFile()
|
||||
{
|
||||
stringstream j(stringstream::in);
|
||||
|
||||
j << "2005/10/15 Something" << endl;
|
||||
j << " A $ 42" << endl;
|
||||
j << " B" << endl;
|
||||
|
||||
textual_parser_t textualParser;
|
||||
TS_ASSERT(textualParser.test(j));
|
||||
TS_ASSERT(j.good());
|
||||
TS_ASSERT_EQUALS(0, j.tellg());
|
||||
|
||||
config_t config;
|
||||
std::auto_ptr<journal_t> journal(new journal_t);
|
||||
textualParser.parse(j, config, journal.get());
|
||||
}
|
||||
};
|
||||
|
||||
#endif // __TESTTEXTUALJOURNAL_H
|
||||
2
value.h
2
value.h
|
|
@ -396,7 +396,7 @@ inline value_t abs(const value_t& value) {
|
|||
inline std::ostream& operator<<(std::ostream& out, const value_t& value) {
|
||||
switch (value.type) {
|
||||
case value_t::BOOLEAN:
|
||||
out << *((bool *) value.data) ? "true" : "false";
|
||||
out << (*((bool *) value.data) ? "true" : "false");
|
||||
break;
|
||||
case value_t::INTEGER:
|
||||
out << *((long *) value.data);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue