-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_moh.rb
146 lines (120 loc) · 5.07 KB
/
test_moh.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# -*- coding: utf-8 -*-
require 'moh'
require 'test/unit'
class TestHelpers < Test::Unit::TestCase
def test_initial_of
assert_equal(true, initial_of([], []))
assert_equal(true, initial_of([], ["A"]))
assert_equal(true, initial_of(["A"], ["A"]))
assert_equal(true, initial_of(["A"], ["A", "B"]))
assert_equal(false, initial_of(["B"], ["A", "B"]))
end
end
class TestTransaction < Test::Unit::TestCase
def test_compare
Transaction.clear
t1 = Transaction.new(Date.new(2013,1,1), 'Book', 'Book1', 100, 'A')
t2 = Transaction.new(Date.new(2013,1,2), 'Book', 'Book1', 100, 'A')
t3 = Transaction.new(Date.new(2013,1,2), 'Book', 'Book2', 100, 'A')
t4 = Transaction.new(Date.new(2013,1,2), 'Book', 'Book2', 200, 'A')
t5 = Transaction.new(Date.new(2013,1,2), 'Book', 'Book2', 200, 'B')
assert_equal(true, t1 == t1)
assert_equal(true, t1 < t2)
assert_equal(true, t2 < t3)
assert_equal(true, t3 < t4)
assert_equal(true, t4 < t5)
end
end
class TestBook < Test::Unit::TestCase
def test_simple
Transaction.clear
book1 = Book.new("Book1")
book2 = Book.new("Book2")
assert_equal(["Book1"], book1.full_path)
assert_equal("Book1", book1.fqdn)
t1 = Transaction.new(Date.new(2013,1,1), book1, book2,
100, 'A')
t2 = Transaction.new(Date.new(2013,1,2), book1, book2,
100, 'A')
assert_equal(200, book1.debit_sum{ |t| true })
assert_equal(0, book1.credit_sum{ |t| true })
child_book = Book.new("Child", book1)
assert_equal(child_book, book1.get_child("Child"))
assert_equal(["Book1", "Child"], child_book.full_path)
assert_equal(child_book, book1.get_grandchild(["Child"]))
assert_equal(true, child_book.is_contained(book1))
t3 = Transaction.new(Date.new(2013,1,3), child_book, book2,
-100, 'A')
assert_equal(200, book1.debit_sum{ |t| true })
assert_equal(-100, book1.balance)
end
end
class TestBookReader < Test::Unit::TestCase
def test_add_line
Transaction.clear
book_reader = BookReader.new
book_reader.add_line('2013-08-13', ['Wallet'], ['Expense', 'life'], 'electricity', 3000)
assert_equal(3000, book_reader.root_book.debit_sum{ |t| true })
assert_equal(3000, book_reader.root_book.credit_sum{ |t| true })
end
def test_set_balance
Transaction.clear
book_reader = BookReader.new
book_reader.add_line('2013-08-13', ['Wallet'], ['Expense', 'life'], 'electricity', 3000)
book_reader.set_balance('2013-08-14', ['Wallet'], 0)
assert_equal(0, book_reader.root_book.balance)
end
def test_parse_line_generic
Transaction.clear
book_reader = BookReader.new
book_reader.parse_line_generic('[2013-08-13]$ Wallet Expense:life electricity 3000')
assert_equal(3000, book_reader.root_book.debit_sum{ |t| true })
assert_equal(3000, book_reader.root_book.credit_sum{ |t| true })
end
def test_parse_line_generic
Transaction.clear
book_reader = BookReader.new
book_reader.parse_line_old_generic('[2013-08-13]$ Wallet -> Expense life electricity 3000')
assert_equal(3000, book_reader.root_book.debit_sum{ |t| true })
assert_equal(3000, book_reader.root_book.credit_sum{ |t| true })
end
def test_parse_line_old_expense
Transaction.clear
book_reader = BookReader.new
book_reader.parse_line_old_expense('[2013-08-13]$ life electricity 3000')
assert_equal(3000, book_reader.root_book.debit_sum{ |t| true })
assert_equal(3000, book_reader.root_book.credit_sum{ |t| true })
end
def test_parse_line_old_income
Transaction.clear
book_reader = BookReader.new
book_reader.parse_line_old_income('[2013-08-13]$$ salary XX Inc. 3000')
assert_equal(3000, book_reader.root_book.debit_sum{ |t| true })
assert_equal(3000, book_reader.root_book.credit_sum{ |t| true })
end
def test_parse_old_line
Transaction.clear
book_reader = BookReader.new
book_reader.parse_old_line('[2013-08-13]$ Wallet Expense:life electricity 3000')
book_reader.parse_old_line('[2013-08-13]$ Wallet -> Expense life electricity 3000')
book_reader.parse_old_line('[2013-08-13]$ life electricity 3000')
book_reader.parse_old_line('[2013-08-13]$$ salary XX Inc. 3000')
assert_equal(12000, book_reader.root_book.debit_sum{ |t| true })
assert_equal(12000, book_reader.root_book.credit_sum{ |t| true })
end
end
class TestBookWriter < Test::Unit::TestCase
def test_print
Transaction.clear
book_reader = BookReader.new
book_reader.parse_line('[2013-08-01]$= Wallet 6000')
book_reader.parse_line('[2013-08-13]$ Wallet Expense:life electricity 3000')
book_reader.parse_line('[2013-08-13]$ Wallet -> Expense life electricity 3000')
book_reader.parse_line('[2013-08-13]$ life electricity 3000')
book_reader.parse_line('[2013-08-13]$$ salary XX Inc. 3000')
book = book_reader.root_book
book_writer = BookWriter.new(book)
book_writer.print_summary(Date.new(2013, 01, 01), Date.new(2013, 12, 31))
book_writer.print_transactions(Date.new(2013, 01, 01), Date.new(2013, 12, 31))
end
end