From 33010f07fc29c919eafcf34131c20c414a4385a1 Mon Sep 17 00:00:00 2001 From: Joseph Ku Date: Fri, 9 Jan 2015 18:16:01 -0800 Subject: [PATCH 1/8] Complete Assignment 1. --- .gitignore | 3 ++- assignments/assignment01.rb | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 496ee2c..af56f61 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.DS_Store \ No newline at end of file +.DS_Store +.idea/ diff --git a/assignments/assignment01.rb b/assignments/assignment01.rb index c88806d..15f198a 100644 --- a/assignments/assignment01.rb +++ b/assignments/assignment01.rb @@ -37,8 +37,11 @@ def number_to_string(n, lang) # it accepts a string # and returns the same string with each word capitalized. +# assumes titleize does not need to preserve non-word characters in the original string, i.e., +# titleize "hEllo, WORLD" => "Hello World" def titleize(s) - # your implementation here + word_array = s.split(/\W+/) + (word_array.map { |w| w.capitalize }).join(" ") end # Your method should generate the following results: @@ -53,7 +56,16 @@ def titleize(s) # Write your own implementation of `reverse` called `my_reverse` # You may *not* use the built-in `reverse` method def my_reverse(s) - # your implementation here + reversed_array = [] + + string_array = s.split("") + while not string_array.empty? do + # take a character from the end of the original string and + # add it to the beginning of the reversed string + reversed_array.push string_array.pop + end + + reversed_array.join("") end # Your method should generate the following results: @@ -68,7 +80,9 @@ def my_reverse(s) # Write a method `palindrome?` # that determines whether a string is a palindrome def palindrome?(s) - # your implementation here + # remove all non-word characters, lowercase the string + canonical_string = s.gsub(/\W+/, '').downcase + canonical_string == canonical_string.reverse end # Your method should generate the following results: From 779a03853eb843b1b71f5fb5f51ce1b1c35c252a Mon Sep 17 00:00:00 2001 From: Joseph Ku Date: Sun, 18 Jan 2015 17:50:42 -0800 Subject: [PATCH 2/8] Complete Assignment 2. --- assignments/assignment02-statement.html | 537 ++++++++++++++++++++++++ assignments/assignment02.rb | 184 +++++++- assignments/style.css | 19 + 3 files changed, 739 insertions(+), 1 deletion(-) create mode 100644 assignments/assignment02-statement.html create mode 100644 assignments/style.css diff --git a/assignments/assignment02-statement.html b/assignments/assignment02-statement.html new file mode 100644 index 0000000..c1c7dde --- /dev/null +++ b/assignments/assignment02-statement.html @@ -0,0 +1,537 @@ + + + + + + Monthly Bank Statement + + + +

Withdrawals

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DatePayeeAmount
12/01/2014Walgreens$21.92
12/04/2014Subway$7.80
12/04/2014Starbucks$5.30
12/05/2014Nike Town$85.00
12/05/2014ATM$60.00
12/06/2014Starbucks$5.30
12/07/2014Safeway$23.89
12/07/2014Arco$42.00
12/07/2014check #5132$75.00
12/08/2014Starbucks$5.30
12/09/2014Bartell's$7.83
12/09/2014check #5128$575.00
12/11/2014Safeway$42.15
12/11/2014Home Depot$17.89
12/12/2014ATM$60.00
12/13/2014check #5134$45.68
12/13/2014check #5126$25.00
12/13/2014QFC$13.25
12/14/2014Office Depot$24.85
12/14/2014Chipotle$10.42
12/14/2014check #5133$17.50
12/15/2014Starbucks$5.30
12/15/2014ATM$60.00
12/16/20147-Eleven$5.26
12/16/2014check #5127$50.00
12/16/2014Arco$48.01
12/17/2014Apple$110.62
12/18/2014Starbucks$5.30
12/18/2014Bartell's$14.82
12/18/2014Starbucks$5.30
12/18/2014check #5129$125.00
12/19/2014Chipotle$10.42
12/22/2014check #5130$120.00
12/22/2014Shell$52.00
12/22/2014Safeway$28.45
12/22/2014QFC$48.13
12/23/2014Starbucks$5.30
12/26/2014check #5135$62.50
12/27/2014Starbucks$5.30
12/27/2014Walgreens$14.56
12/28/2014check #5136$62.50
12/29/2014Starbucks$5.30
12/30/2014ATM$100.00
12/30/2014Safeway$35.17
12/31/2014Starbucks$8.45
12/31/2014check #5131$20.00
+ + +

Deposits

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DatePayeeAmount
12/04/2014Univ Washington$1500.00
12/06/2014ATM$50.00
12/06/2014ATM$500.00
12/15/2014ATM$50.00
12/17/2014Univ Washington$1500.00
12/21/2014ATM$20.00
+ + +

Daily Balance

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DateAmount
12/01/2014$-21.92
12/02/2014$-21.92
12/03/2014$-21.92
12/04/2014$1464.98
12/05/2014$1319.98
12/06/2014$1864.68
12/07/2014$1723.79
12/08/2014$1718.49
12/09/2014$1135.66
12/10/2014$1135.66
12/11/2014$1075.62
12/12/2014$1015.62
12/13/2014$931.69
12/14/2014$878.92
12/15/2014$863.62
12/16/2014$760.35
12/17/2014$2149.73
12/18/2014$1999.31
12/19/2014$1988.89
12/20/2014$1988.89
12/21/2014$2008.89
12/22/2014$1760.31
12/23/2014$1755.01
12/24/2014$1755.01
12/25/2014$1755.01
12/26/2014$1692.51
12/27/2014$1672.65
12/28/2014$1610.15
12/29/2014$1604.85
12/30/2014$1469.68
12/31/2014$1441.23
+ + +

Summary

+ + + + + + + + + + + + + + + + + + + + + + +
Starting balance$0.00
Total deposits$3620.00
Total withdrawals$2178.77
Ending balance$1441.23
+ + + + + diff --git a/assignments/assignment02.rb b/assignments/assignment02.rb index 7fddf97..ec5de8d 100644 --- a/assignments/assignment02.rb +++ b/assignments/assignment02.rb @@ -2,6 +2,9 @@ # Assignment 2 # ======================================================================================== +require 'bigdecimal' +require 'date' + # ======================================================================================== # Problem 1 - `to_sentence` @@ -11,6 +14,9 @@ def to_sentence(ary) # your implementation here + return ary.join("") if ary.length < 2 + last_element = ary.pop + "#{ary.join(", ")} and #{last_element}" end # Your method should generate the following results: @@ -26,10 +32,21 @@ def to_sentence(ary) # implement methods "mean", "median" on Array of numbers def mean(ary) # your implementation here + ary.reduce(:+) / ary.length end def median(ary) # your implementation here + # the array has to be sorted for the algorithm to work + sorted_ary = ary.sort() + mid_index = sorted_ary.length/2 + if sorted_ary.length.odd? + # if the number of elements is odd, the median is just the number in the middle + sorted_ary[mid_index] + else + # if the number of elements is even, the median is the average of the two numbers in the middle + (sorted_ary[mid_index] + sorted_ary[mid_index + 1])/2.0 + end end # Your method should generate the following results: @@ -44,8 +61,9 @@ def median(ary) # Problem 3 - `pluck` # implement method `pluck` on array of hashes -def pluck(ary) +def pluck(ary, key) # your implementation here + ary.map {|m| m[key]} end # Your method should generate the following results: @@ -73,3 +91,167 @@ def pluck(ary) # - daily balance # - summary: # - starting balance, total deposits, total withdrawals, ending balance +STARTING_BALANCE = BigDecimal.new("0") + +def generate_html_statement(csv_filename) + transactions = read_transactions(csv_filename) + withdrawals = transactions.select { |t| t[:type] == :withdrawal } + deposits = transactions.select { |t| t[:type] == :deposit } + daily_balances = compute_daily_balances(STARTING_BALANCE, transactions) + deposits_total = deposits.reduce(0) { |sum, t| sum += t[:amount] } + withdrawals_total = withdrawals.reduce(0) { |sum, t| sum += t[:amount] } + summary = [] + summary << {label: "Starting balance", amount: STARTING_BALANCE} + summary << {label: "Total deposits", amount: deposits_total} + summary << {label: "Total withdrawals", amount: withdrawals_total} + summary << {label: "Ending balance", amount: STARTING_BALANCE + deposits_total - withdrawals_total} + + html = render_html("Monthly Bank Statement", withdrawals, deposits, daily_balances, summary) + + File.open("assignment02-statement.html", "w") do |output| + output.print html + end +end + +# return an array of daily balance records, each record has two keys: :date and :amount. +def compute_daily_balances(starting_balance, transactions) + # create a hash of date => transaction array + transactions_by_date = transactions.group_by { |t| t[:date] } + # create a hash of date => total amount of transactions for a given day + daily_changes = transactions_by_date.reduce(Hash.new(BigDecimal.new("0"))) do |h, (k, v)| + h[k] = v.reduce(0) do |total, t| + type = t[:type] + amount = t[:amount] + if type == :deposit + total += amount + elsif type == :withdrawal + total -= amount + end + end + h + end + daily_balances = {} + current_balance = starting_balance + (transactions_by_date.keys.min..transactions_by_date.keys.max).each do |d| + current_balance += daily_changes[d] + daily_balances[d] = current_balance + end + daily_balances.reduce([]) do |ary, (k, v)| + ary << {date: k, amount: v} + end +end + +# returns an array of transactions, each represented as a map in Ruby +# the transactions are sorted by date +def read_transactions(csv_filename) + transactions = [] + + File.open(csv_filename, "r") do |f| + keys_array = nil + + f.each_with_index(sep="\r") do |line, line_num| + values = line.chomp().split(",") + + if line_num == 0 + keys_array = values.map { |value| value.to_sym } + else + # create a map as a record for each transaction + transaction = {} + + # convert string values to Ruby types as appropriate + values.each_with_index do |value, i| + key = keys_array[i] + case key + when :date + value = Date.strptime(value, "%m/%d/%Y") + when :amount + # use BigDecimal to represent currency values + value = BigDecimal.new(value) + when :type + value = value.to_sym + end + transaction[key] = value + end + + transactions << transaction + end + end + end + + # return a sorted list of transactions by date + transactions.sort { |t1, t2| t1[:date] <=> t2[:date] } +end + +def render_html(title, withdrawals, deposits, daily_balances, summary) +< + + #{render_head title} + #{render_body withdrawals, deposits, daily_balances, summary} + +HTML +end + +def render_head(title) +< + + + #{title} + +HEAD +end + +def render_body(withdrawals, deposits, daily_balances, summary) +< + #{render_section "Withdrawals", [:date, :payee, :amount], withdrawals, true} + #{render_section "Deposits", [:date, :payee, :amount], deposits, true} + #{render_section "Daily Balance", [:date, :amount], daily_balances, true} + #{render_section "Summary", [:label, :amount], summary, false} + +BODY +end + +def render_section(title, headers, rows, render_header) +<
#{title} + #{render_table headers, rows, render_header} +SECTION +end + +def render_table(headers, rows, render_header) +< + #{render_header ? render_table_header(headers) : ""} + #{rows.map {|r| render_row r, headers}.join "\n"} +
+TABLE +end + +def render_table_header(headers) +<
+ #{headers.map {|h| "#{h.to_s.capitalize}"}.join "\n"} + +HEADER +end + +def render_row(row, headers) +< + #{headers.map {|h| "#{format_value(row[h], h)}"}.join "\n"} + +ROW +end + +def format_value(value, header) + case header + when :date + value.strftime("%m/%d/%Y") + when :amount + '$%.2f' % value + else + value + end +end diff --git a/assignments/style.css b/assignments/style.css new file mode 100644 index 0000000..bc6db78 --- /dev/null +++ b/assignments/style.css @@ -0,0 +1,19 @@ +.date { + width: 30%; + text-align: left; +} + +.payee { + width: 60%; + text-align: left; +} + +.label { + font-weight: bold; + width: 50%; + text-align: left; +} + +.amount { + text-align: right; +} From 88075927496ac3042332b4ca0d16fb6f09844ac4 Mon Sep 17 00:00:00 2001 From: Joseph Ku Date: Wed, 28 Jan 2015 15:25:40 -0800 Subject: [PATCH 3/8] Complete Assignment 3. --- assignments/assignment03-statement.html | 525 ++++++++++++++++++++++++ assignments/assignment03.rb | 319 ++++++++++++++ assignments/style.css | 4 + 3 files changed, 848 insertions(+) create mode 100644 assignments/assignment03-statement.html diff --git a/assignments/assignment03-statement.html b/assignments/assignment03-statement.html new file mode 100644 index 0000000..a4954a4 --- /dev/null +++ b/assignments/assignment03-statement.html @@ -0,0 +1,525 @@ + + + + + + Monthly Bank Statement + + +

Summary

+ + + + + + + + + + + + + + + + + +
Starting balance$0.00
Total deposits$3620.00
Total withdrawals$2178.77
Ending balance$1441.23
+ +

Withdrawals

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DatePayeeAmount
12/01/2014Walgreens$21.92
12/18/2014check #5129$125.00
12/16/2014check #5127$50.00
12/07/2014Safeway$23.89
12/31/2014Starbucks$8.45
12/30/2014ATM$100.00
12/04/2014Starbucks$5.30
12/04/2014Subway$7.80
12/05/2014Nike Town$85.00
12/06/2014Starbucks$5.30
12/08/2014Starbucks$5.30
12/11/2014Safeway$42.15
12/09/2014Bartell's$7.83
12/09/2014check #5128$575.00
12/15/2014Starbucks$5.30
12/22/2014check #5130$120.00
12/11/2014Home Depot$17.89
12/18/2014Starbucks$5.30
12/27/2014Walgreens$14.56
12/30/2014Safeway$35.17
12/23/2014Starbucks$5.30
12/18/2014Starbucks$5.30
12/31/2014check #5131$20.00
12/07/2014check #5132$75.00
12/14/2014check #5133$17.50
12/13/2014check #5134$45.68
12/14/2014Office Depot$24.85
12/17/2014Apple$110.62
12/26/2014check #5135$62.50
12/28/2014check #5136$62.50
12/27/2014Starbucks$5.30
12/12/2014ATM$60.00
12/13/2014QFC$13.25
12/13/2014check #5126$25.00
12/19/2014Chipotle$10.42
12/18/2014Bartell's$14.82
12/22/2014Safeway$28.45
12/22/2014QFC$48.13
12/22/2014Shell$52.00
12/05/2014ATM$60.00
12/07/2014Arco$42.00
12/14/2014Chipotle$10.42
12/15/2014ATM$60.00
12/16/20147-Eleven$5.26
12/16/2014Arco$48.01
12/29/2014Starbucks$5.30
+ +

Deposits

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DatePayeeAmount
12/04/2014Univ Washington$1500.00
12/06/2014ATM$50.00
12/15/2014ATM$50.00
12/06/2014ATM$500.00
12/21/2014ATM$20.00
12/17/2014Univ Washington$1500.00
+ +

Daily Balance

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DateAmount
12/01/2014$-21.92
12/02/2014$-21.92
12/03/2014$-21.92
12/04/2014$1464.98
12/05/2014$1319.98
12/06/2014$1864.68
12/07/2014$1723.79
12/08/2014$1718.49
12/09/2014$1135.66
12/10/2014$1135.66
12/11/2014$1075.62
12/12/2014$1015.62
12/13/2014$931.69
12/14/2014$878.92
12/15/2014$863.62
12/16/2014$760.35
12/17/2014$2149.73
12/18/2014$1999.31
12/19/2014$1988.89
12/20/2014$1988.89
12/21/2014$2008.89
12/22/2014$1760.31
12/23/2014$1755.01
12/24/2014$1755.01
12/25/2014$1755.01
12/26/2014$1692.51
12/27/2014$1672.65
12/28/2014$1610.15
12/29/2014$1604.85
12/30/2014$1469.68
12/31/2014$1441.23
+ + + + + diff --git a/assignments/assignment03.rb b/assignments/assignment03.rb index ee5cd93..08b4ee6 100644 --- a/assignments/assignment03.rb +++ b/assignments/assignment03.rb @@ -2,11 +2,26 @@ # Assignment 3 # ======================================================================================== +require 'bigdecimal' +require 'date' + # ======================================================================================== # Problem 1 - re-implement titleize, palindrome? # re-implement titleize and palindrome? as methods on String +class String + def titleize + word_array = self.split(/\W+/) + word_array.map { |w| w.capitalize }.join(" ") + end + + def palindrome? + canonical_string = self.gsub(/\W+/, '').downcase + canonical_string == canonical_string.reverse + end +end + "hEllo WORLD".titleize #=> "Hello World" "gooDbye CRUel wORLD".titleize #=> "Goodbye Cruel World" @@ -23,6 +38,33 @@ # re-implement mean, median, to_sentence as methods on Array +class Array + def mean + self.reduce(:+).to_f / self.length + end + + def median + # the array has to be sorted for the algorithm to work + sorted_ary = self.sort + mid_index = sorted_ary.length/2 + if sorted_ary.length.odd? + # if the number of elements is odd, the median is just the number in the middle + sorted_ary[mid_index] + else + # if the number of elements is even, the median is the average of the two numbers in the middle + (sorted_ary[mid_index] + sorted_ary[mid_index + 1])/2.0 + end + end + + def to_sentence + return self.join("") if self.length < 2 + # make a copy of the array since pop is destructive + array_copy = Array.new(self) + last_element = array_copy.pop + "#{array_copy.join(", ")} and #{last_element}" + end +end + # Your method should generate the following results: [1, 2, 3].mean #=> 2 [1, 1, 4].mean #=> 2 @@ -47,4 +89,281 @@ # - DepositTransaction # - WithdrawalTransaction +class BankAccount + attr_reader :transactions + + def initialize(csv_filename) + @transactions = [] + + File.open(csv_filename, "r") do |f| + keys_array = nil + + f.each_with_index do |line, line_num| + values = line.chomp().split(",") + + if line_num == 0 + keys_array = values.map { |value| value.to_sym } + else + # create a map as a record for each transaction + fields = {} + + # convert string values to Ruby types as appropriate + values.each_with_index do |value, i| + key = keys_array[i] + case key + when :date + value = Date.strptime(value, "%m/%d/%Y") + when :amount + # use BigDecimal to represent currency values + value = BigDecimal.new(value) + when :type + value = value.to_sym + end + fields[key] = value + end + + @transactions << Transaction.create(fields) + end + end + end + + # return a sorted list of transactions by date + @transactions.sort { |t1, t2| t1.date <=> t2.date } + end + + def starting_balance + BigDecimal("0") + end + + def ending_balance + starting_balance + total_deposits - total_withdrawals + end + + def total_withdrawals + withdrawals.reduce(BigDecimal("0")) { |sum, t| sum += t.amount } + end + + def total_deposits + deposits.reduce(BigDecimal("0")) { |sum, t| sum += t.amount } + end + + def withdrawals + @transactions.select { |t| t.class == WithdrawalTransaction } + end + + def deposits + @transactions.select { |t| t.class == DepositTransaction } + end + + # return an array of daily balance records, each record has two keys: :date and :amount. + def daily_balances + # create a hash of date => transaction array + transactions_by_date = @transactions.group_by { |t| t.date } + # create a hash of date => total amount of transactions for a given day + daily_changes = transactions_by_date.reduce(Hash.new(BigDecimal.new("0"))) do |h, (k, v)| + h[k] = v.reduce(0) do |total, t| + total += t.signed_amount + end + h + end + daily_balances = {} + current_balance = starting_balance + (transactions_by_date.keys.min..transactions_by_date.keys.max).each do |d| + current_balance += daily_changes[d] + daily_balances[d] = current_balance + end + daily_balances.reduce([]) do |ary, (k, v)| + ary << {date: k, amount: v} + end + end +end + +class Transaction + attr_reader :date, :payee, :amount + + # factory method for creating a transaction from a hash + def self.create(fields) + date = fields[:date] + payee = fields[:payee] + amount = fields[:amount] + type = fields[:type] + if type == :deposit + DepositTransaction.new(date, payee, amount) + elsif type == :withdrawal + WithdrawalTransaction.new(date, payee, amount) + end + end + + def initialize(date, payee, amount) + @date = date + @payee = payee + @amount = amount.abs + end + + def signed_amount + @amount + end +end + +class DepositTransaction < Transaction + def initialize(date, payee, amount) + super(date, payee, amount) + end +end + +class WithdrawalTransaction < Transaction + def initialize(date, payee, amount) + super(date, payee, amount) + end + + def signed_amount + -@amount + end +end + # use blocks for your HTML rendering code + +def generate_html_statement(csv_filename) + account = BankAccount.new(csv_filename) + + # invoke the render functions in a DSL-style-like structure + + html = render_html("Monthly Bank Statement", account) do |title, account| + render_head(title) + + render_body(account) do |account| + render_section("Summary", account) do |account| + render_summary_table(account) + end + + render_section("Withdrawals", account.withdrawals) do |transactions| + render_transaction_table(transactions) do |transaction| + render_transaction_row(transaction) + end + end + + render_section("Deposits", account.deposits) do |transactions| + render_transaction_table(transactions) do |transaction| + render_transaction_row(transaction) + end + end + + render_section("Daily Balance", account.daily_balances) do |daily_balances| + render_daily_balance_table(daily_balances) do |balances| + render_daily_balance_row(balances) + end + end + end + end + + # output the html + + File.open("assignment03-statement.html", "w") do |output| + output.print html + end +end + +def render_html(title, account, &block) +< + +#{block.call(title, account)} + +HTML +end + +def render_head(title) +< + + + #{title} + +HEAD +end + +def render_body(account, &block) +< +#{block.call(account)} + +BODY +end + +def render_section(title, section_params, &block) +<
#{title} +#{block.call(section_params)} +SECTION +end + +def render_transaction_table(transactions, &block) +< + + + + + + #{transactions.map { |r| block.call(r) }.join("\n")} +
DatePayeeAmount
+TABLE +end + +def render_transaction_row(row) +< + #{format_date(row.date)} + #{row.payee} + #{format_amount(row.amount)} + +ROW +end + +def render_daily_balance_table(daily_balances, &block) +< + + + + + #{daily_balances.map { |r| block.call(r) }.join("\n")} +
DateAmount
+TABLE +end + +def render_daily_balance_row(row) +< + #{format_date(row[:date])} + #{format_amount(row[:amount])} + +ROW +end + +def render_summary_table(account) +< + + + + + + + + + + + + + + + + +
Starting balance#{format_amount(account.starting_balance)}
Total deposits#{format_amount(account.total_deposits)}
Total withdrawals#{format_amount(account.total_withdrawals)}
Ending balance#{format_amount(account.ending_balance)}
+TABLE +end + +def format_date(date) + date.strftime("%m/%d/%Y") +end + +def format_amount(amount) + "$%.2f" % amount +end diff --git a/assignments/style.css b/assignments/style.css index bc6db78..104a0b5 100644 --- a/assignments/style.css +++ b/assignments/style.css @@ -1,3 +1,7 @@ +h1, h2, th, td { + font-family: Helvetica +} + .date { width: 30%; text-align: left; From 12a29348f6e0e359af89389d4923e4a254cb6528 Mon Sep 17 00:00:00 2001 From: Joseph Ku Date: Wed, 28 Jan 2015 16:22:36 -0800 Subject: [PATCH 4/8] Fix sorting of transactions. (Use sort! to sort in-place.) --- assignments/assignment03-statement.html | 250 ++++++++++++------------ assignments/assignment03.rb | 2 +- 2 files changed, 126 insertions(+), 126 deletions(-) diff --git a/assignments/assignment03-statement.html b/assignments/assignment03-statement.html index a4954a4..361b171 100644 --- a/assignments/assignment03-statement.html +++ b/assignments/assignment03-statement.html @@ -40,57 +40,51 @@

Withdrawals

- 12/18/2014 - check #5129 - $125.00 - - - - 12/16/2014 - check #5127 - $50.00 + 12/04/2014 + Subway + $7.80 - 12/07/2014 - Safeway - $23.89 + 12/04/2014 + Starbucks + $5.30 - 12/31/2014 - Starbucks - $8.45 + 12/05/2014 + Nike Town + $85.00 - 12/30/2014 + 12/05/2014 ATM - $100.00 + $60.00 - 12/04/2014 + 12/06/2014 Starbucks $5.30 - 12/04/2014 - Subway - $7.80 + 12/07/2014 + Safeway + $23.89 - 12/05/2014 - Nike Town - $85.00 + 12/07/2014 + Arco + $42.00 - 12/06/2014 - Starbucks - $5.30 + 12/07/2014 + check #5132 + $75.00 @@ -99,12 +93,6 @@

Withdrawals

$5.30 - - 12/11/2014 - Safeway - $42.15 - - 12/09/2014 Bartell's @@ -118,15 +106,9 @@

Withdrawals

- 12/15/2014 - Starbucks - $5.30 - - - - 12/22/2014 - check #5130 - $120.00 + 12/11/2014 + Safeway + $42.15 @@ -136,45 +118,39 @@

Withdrawals

- 12/18/2014 - Starbucks - $5.30 - - - - 12/27/2014 - Walgreens - $14.56 + 12/12/2014 + ATM + $60.00 - 12/30/2014 - Safeway - $35.17 + 12/13/2014 + check #5134 + $45.68 - 12/23/2014 - Starbucks - $5.30 + 12/13/2014 + check #5126 + $25.00 - 12/18/2014 - Starbucks - $5.30 + 12/13/2014 + QFC + $13.25 - 12/31/2014 - check #5131 - $20.00 + 12/14/2014 + Office Depot + $24.85 - 12/07/2014 - check #5132 - $75.00 + 12/14/2014 + Chipotle + $10.42 @@ -184,57 +160,63 @@

Withdrawals

- 12/13/2014 - check #5134 - $45.68 + 12/15/2014 + Starbucks + $5.30 - 12/14/2014 - Office Depot - $24.85 + 12/15/2014 + ATM + $60.00 - 12/17/2014 - Apple - $110.62 + 12/16/2014 + 7-Eleven + $5.26 - 12/26/2014 - check #5135 - $62.50 + 12/16/2014 + check #5127 + $50.00 - 12/28/2014 - check #5136 - $62.50 + 12/16/2014 + Arco + $48.01 - 12/27/2014 + 12/17/2014 + Apple + $110.62 + + + + 12/18/2014 Starbucks $5.30 - 12/12/2014 - ATM - $60.00 + 12/18/2014 + Bartell's + $14.82 - 12/13/2014 - QFC - $13.25 + 12/18/2014 + Starbucks + $5.30 - 12/13/2014 - check #5126 - $25.00 + 12/18/2014 + check #5129 + $125.00 @@ -244,9 +226,15 @@

Withdrawals

- 12/18/2014 - Bartell's - $14.82 + 12/22/2014 + check #5130 + $120.00 + + + + 12/22/2014 + Shell + $52.00 @@ -262,51 +250,63 @@

Withdrawals

- 12/22/2014 - Shell - $52.00 + 12/23/2014 + Starbucks + $5.30 - 12/05/2014 - ATM - $60.00 + 12/26/2014 + check #5135 + $62.50 - 12/07/2014 - Arco - $42.00 + 12/27/2014 + Starbucks + $5.30 - 12/14/2014 - Chipotle - $10.42 + 12/27/2014 + Walgreens + $14.56 - 12/15/2014 - ATM - $60.00 + 12/28/2014 + check #5136 + $62.50 - 12/16/2014 - 7-Eleven - $5.26 + 12/29/2014 + Starbucks + $5.30 - 12/16/2014 - Arco - $48.01 + 12/30/2014 + ATM + $100.00 - 12/29/2014 + 12/30/2014 + Safeway + $35.17 + + + + 12/31/2014 Starbucks - $5.30 + $8.45 + + + + 12/31/2014 + check #5131 + $20.00 @@ -330,12 +330,6 @@

Deposits

$50.00 - - 12/15/2014 - ATM - $50.00 - - 12/06/2014 ATM @@ -343,9 +337,9 @@

Deposits

- 12/21/2014 + 12/15/2014 ATM - $20.00 + $50.00 @@ -354,6 +348,12 @@

Deposits

$1500.00 + + 12/21/2014 + ATM + $20.00 + +

Daily Balance

diff --git a/assignments/assignment03.rb b/assignments/assignment03.rb index 08b4ee6..2e65a4e 100644 --- a/assignments/assignment03.rb +++ b/assignments/assignment03.rb @@ -128,7 +128,7 @@ def initialize(csv_filename) end # return a sorted list of transactions by date - @transactions.sort { |t1, t2| t1.date <=> t2.date } + @transactions.sort! { |t1, t2| t1.date <=> t2.date } end def starting_balance From 9938bc24c552abf13e05bb72d5acab163096b0bf Mon Sep 17 00:00:00 2001 From: Joseph Ku Date: Mon, 2 Feb 2015 15:03:11 -0800 Subject: [PATCH 5/8] Complete Assignment 4. --- assignments/assignment04.rb | 148 +++++++++++++++++++++++++----------- 1 file changed, 104 insertions(+), 44 deletions(-) diff --git a/assignments/assignment04.rb b/assignments/assignment04.rb index d2443a2..7615dfa 100644 --- a/assignments/assignment04.rb +++ b/assignments/assignment04.rb @@ -12,7 +12,9 @@ # F[n] -> F[n-2] + F[n-1] def fib(n) - # your implementation here + return 1 if n <= 1 + + fib(n - 2) + fib(n - 1) end # expected behavior: @@ -24,46 +26,83 @@ def fib(n) # ======================================================================================== -# Problem 2 - Queue +# Problem 3 - LinkedList -# implement a Queue class that does not use Array. +# implement a LinkedList class that does not use Array. -# expected behavior: -q = Queue.new -q.empty? #=> true -q.enqueue "first" -q.empty? #=> false -q.enqueue "second" -q.dequeue #=> "first" -q.dequeue #=> "second" -q.dequeue #=> nil +class LinkedList + class Node + attr_accessor :item, :link -class Queue - def initialize - # your implementation here + def initialize(item, link) + @item = item + @link = link + end end - def enqueue(item) - # your implementation here - end - def dequeue - # your implementation here + + def initialize + @head = @tail = nil + @count = 0 end + def empty? - # your implementation here - end - def peek - # your implementation here + @count == 0 end + def length - # your implementation here + @count end -end + def <<(item) + node = Node.new(item, nil) + if @head.nil? + @head = @tail = node + else + @tail.link = node + @tail = node + end + @count += 1 + self + end -# ======================================================================================== -# Problem 3 - LinkedList + def first + @head.nil? ? nil : @head.item + end -# implement a LinkedList class that does not use Array. + def last + @tail.nil? ? nil : @tail.item + end + + def each(&block) + node = @head + while not node.nil? + block.call node.item + node = node.link + end + end + + # removes the first node matching item from the linked list + def delete(item) + node = @head + node_prev = nil + while not node.nil? + if node.item == item + if node_prev.nil? + @head = node.link + @tail = nil if @head.nil? + else + node_prev.link = node.link + end + node.link = nil + @count -= 1 + return node.item + end + node_prev = node + node = node.link + end + nil + end +end # expected behavior: ll = LinkedList.new @@ -87,26 +126,47 @@ def length ll.length #=> 2 ll.each {|x| puts x} #=> prints out "first", "third" -class LinkedList + +# ======================================================================================== +# Problem 2 - Queue + +# implement a Queue class that does not use Array. + +class Queue def initialize - # your implementation here - end - def empty? - # your implementation here + @list = LinkedList.new end - def length - # your implementation here + + def enqueue(item) + @list << item + self end - def <<(item) - # your implementation here + + def dequeue + return nil if empty? + @list.delete(@list.first) end - def first - # your implementation here + + def empty? + @list.empty? end - def last - # your implementation here + + def peek + return nil if empty? + @list.first.item end - def each(&block) - # your implementation here + + def length + @list.length end end + +# expected behavior: +q = Queue.new +q.empty? #=> true +q.enqueue "first" +q.empty? #=> false +q.enqueue "second" +q.dequeue #=> "first" +q.dequeue #=> "second" +q.dequeue #=> nil From e4fbdf7c3ab5cb8100e10e6a31075e27e4f02a34 Mon Sep 17 00:00:00 2001 From: Joseph Ku Date: Thu, 5 Feb 2015 18:30:37 -0800 Subject: [PATCH 6/8] Complete Assignment 4. Updated fib() with tail-recursive implementation. --- assignments/assignment04.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/assignments/assignment04.rb b/assignments/assignment04.rb index 7615dfa..94e6382 100644 --- a/assignments/assignment04.rb +++ b/assignments/assignment04.rb @@ -12,9 +12,13 @@ # F[n] -> F[n-2] + F[n-1] def fib(n) - return 1 if n <= 1 + def fib_helper(n, acc1, acc2) + return acc1 if n == 0 - fib(n - 2) + fib(n - 1) + fib_helper(n - 1, acc2, acc1 + acc2) + end + + fib_helper(n, 1, 1) end # expected behavior: From 14781090101075be810503c4aa51f216090b68ce Mon Sep 17 00:00:00 2001 From: Joseph Ku Date: Thu, 5 Mar 2015 21:59:07 -0800 Subject: [PATCH 7/8] Complete Final Project. --- assignments/final_project.rb | 215 ++++++++++++++++++++++++++++++++++- assignments/run_life.rb | 14 +++ 2 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 assignments/run_life.rb diff --git a/assignments/final_project.rb b/assignments/final_project.rb index a621230..a296fe1 100644 --- a/assignments/final_project.rb +++ b/assignments/final_project.rb @@ -2,6 +2,9 @@ # Final Project: Game of Life # ======================================================================================== +require 'minitest/autorun' +require 'tk' + # The Game of Life is a simplified model of evolution and natural selection # invented by the mathematician James Conway. @@ -58,18 +61,228 @@ # Suggested Implementation module FinalProject - class GameOfLife + class Cell + NUM_NEIGHBORS_PER_CELL = 8 + + attr_accessor :row, :col, :alive + alias_method :alive?, :alive + + def initialize(row, col, board) + @row = row + @col = col + @board = board + @alive = false + end + + def neighbors + cells = [] + + (@row-1..@row+1).each do |row| + (@col-1..@col+1).each do |col| + cells << @board.cell_at(row, col) + end + end + cells.delete self + + cells + end + + def live_neighbors + neighbors.find_all { |cell| cell.alive? } + end + end + + class Board + # creates a board of size size * size + # the top-left most cell is row 0, col(umn) 0 + # the bottom-right most cell is row size - 1, col size - 1 def initialize(size) + @size = size + @board = [] + (0...size).each do |row| + @board << [] + (0...size).each do |col| + @board[row] << Cell.new(row, col, self) + end + end + end + + def each(&block) + (0...@size).each do |row| + (0...@size).each do |col| + block.call @board[row][col] + end + end + end + + def cell_at(row, col) + row += @size if row < 0 + col += @size if col < 0 + + @board[row % @size][col % @size] + end + + def to_s + @board.map do |row| + row.map do |cell| + cell.alive? ? '*' : '.' + end.join('') + end.join("\n") + end + end + + class GameOfLife + def initialize(size, render_strategy) + @render_strategy = render_strategy + @board = Board.new(size) # randomly initialize the board + @board.each { |cell| cell.alive = [true, false].sample } end + def evolve # apply rules to each cell and generate new state + new_states = [] + @board.each do |cell| + num_live_neighbors = cell.live_neighbors.length + if cell.alive? + new_state = num_live_neighbors == 2 || num_live_neighbors == 3 + else + new_state = num_live_neighbors == 3 + end + new_states << new_state + end + + # update the board with new states + @board.each do |cell| + cell.alive = new_states.shift + end end + def render # render the current state of the board + # delegate to the render strategy + @render_strategy.render @board end + def run(num_generations) # evolve and render for num_generations + (1..num_generations).each do |i| + evolve + render + end + end + end +end + +# render strategies + +module FinalProject + class ConsoleRenderStrategy + def render(board) + puts board.to_s + end + end + + class TkRenderStrategy + CELL_SIZE = 20 + + def initialize(size) + @size = size + canvas_size = @size * CELL_SIZE + root = TkRoot.new + canvas = TkCanvas.new(root) do + place height: canvas_size , width: canvas_size + end + + @cells = [] + (0...@size).each do |row| + (0...@size).each do |col| + top = row * CELL_SIZE + 3 + left = col * CELL_SIZE + 3 + bottom = (row + 1) * CELL_SIZE - 3 + right = (col + 1) * CELL_SIZE - 3 + @cells << TkcOval.new(canvas, left, top, right, bottom, width: 0, fill: "white") + end + end + end + + def render(board) + i = 0 + board.each do |cell| + @cells[i][:fill] = cell.alive? ? "green" : "white" + i += 1 + end + end + end +end + +# unit tests + +module FinalProject + class CellTest < Minitest::Test + def setup + @board = Board.new(8) + end + + def test_neighbors + # each cell should have exactly 8 neighbors + @board.each { |cell| assert_equal Cell::NUM_NEIGHBORS_PER_CELL, cell.neighbors.count } + end + + def test_live_neighbors + # each cell should have no live neighbors initially + @board.each { |cell| assert_equal 0, cell.live_neighbors.count } + # now set the top-left most cell as alive + # all neighbors of the alive cell should have live neighbors + cell0 = @board.cell_at(0, 0) + cell0.alive = true + cell0_neighbors = cell0.neighbors + @board.each do |cell| + if cell0_neighbors.include? cell + assert_equal 1, cell.live_neighbors.count + else + assert_equal 0, cell.live_neighbors.count + end + end + end + end + + class BoardTest < Minitest::Test + def setup + @board = Board.new(2) + @cells = [@board.cell_at(0, 0), @board.cell_at(0, 1), @board.cell_at(1, 0), @board.cell_at(1, 1)] + end + + def test_cell_at_wrapping + assert_equal @board.cell_at(0, 0), @board.cell_at(0, 2) + assert_equal @board.cell_at(0, 0), @board.cell_at(2, 0) + assert_equal @board.cell_at(0, 1), @board.cell_at(0, -1) + assert_equal @board.cell_at(0, 1), @board.cell_at(2, 1) + assert_equal @board.cell_at(1, 0), @board.cell_at(1, 2) + assert_equal @board.cell_at(1, 0), @board.cell_at(-1, 0) + assert_equal @board.cell_at(1, 1), @board.cell_at(1, -1) + assert_equal @board.cell_at(1, 1), @board.cell_at(-1, 1) + end + + def test_each_order + i = 0 + @board.each do |cell| + assert_equal @cells[i], cell + i += 1 + end + assert @cells.count, i + end + + def test_to_s + assert_equal "..\n..", @board.to_s + @cells[0].alive = true + assert_equal "*.\n..", @board.to_s + @cells[1].alive = true + assert_equal "**\n..", @board.to_s + @cells[2].alive = true + assert_equal "**\n*.", @board.to_s + @cells[3].alive = true + assert_equal "**\n**", @board.to_s end end end diff --git a/assignments/run_life.rb b/assignments/run_life.rb new file mode 100644 index 0000000..bf34aef --- /dev/null +++ b/assignments/run_life.rb @@ -0,0 +1,14 @@ +# script for running Game of Life in a Tk Canvas + +load 'final_project.rb' + +BOARD_SIZE = 20 +DELAY_IN_MILLIS = 100 + +s = FinalProject::TkRenderStrategy.new(BOARD_SIZE) +g = FinalProject::GameOfLife.new(BOARD_SIZE, s) + +my_timer = TkTimer.new(DELAY_IN_MILLIS, -1, proc {g.render; g.evolve}) +my_timer.start + +Tk.mainloop From 679176b070049af1a6766f65a37080ca85c5713d Mon Sep 17 00:00:00 2001 From: Joseph Ku Date: Thu, 5 Mar 2015 23:13:06 -0800 Subject: [PATCH 8/8] Added game DSL and PNG demoing a single run. --- assignments/final_project.rb | 94 +++++++++++++++++++++++++++++++++-- assignments/gol.gif | Bin 0 -> 147316 bytes assignments/run_life_dsl.rb | 20 ++++++++ 3 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 assignments/gol.gif create mode 100644 assignments/run_life_dsl.rb diff --git a/assignments/final_project.rb b/assignments/final_project.rb index a296fe1..c8984ff 100644 --- a/assignments/final_project.rb +++ b/assignments/final_project.rb @@ -48,6 +48,10 @@ # You choose how you want to render the current state of the board. # ASCII? HTML? Something else? +# Rendering employs a rendering strategy which is determined at the time a game is created. +# There are two rendering strategy implementations: ConsoleRenderStrategy, which outputs the state +# of the game to the console as a sequence of ASCII characters, and TkRenderStrategy, which draws +# the state of the game to a Tk Canvas. # --------------------------------------------------------------------------------------- # Bonus: DSL @@ -56,6 +60,16 @@ # - Your render method can then be formatted as the DSL, so that you can round-trip # between the textual DSL representation and the running instance. +# The game DSL has the following representation: +# gol 2, rendering_strategy, " +# .* +# *. +# " +# +# The first argument is the size of the board. +# The second argument is a rendering strategy. +# The third argument is a Ruby multiline string. Each row represents a row of the board. '*' represents a live cell, +# whereas '.' represents a dead cell. # --------------------------------------------------------------------------------------- # Suggested Implementation @@ -74,6 +88,7 @@ def initialize(row, col, board) @alive = false end + # returns all neighboring cells def neighbors cells = [] @@ -87,6 +102,7 @@ def neighbors cells end + # returns all live neighboring cells def live_neighbors neighbors.find_all { |cell| cell.alive? } end @@ -116,6 +132,7 @@ def each(&block) end def cell_at(row, col) + # allow wrapping in either direction row += @size if row < 0 col += @size if col < 0 @@ -132,11 +149,15 @@ def to_s end class GameOfLife - def initialize(size, render_strategy) + def initialize(size, render_strategy, board = nil) @render_strategy = render_strategy - @board = Board.new(size) - # randomly initialize the board - @board.each { |cell| cell.alive = [true, false].sample } + if board.nil? + @board = Board.new(size) + # randomly initialize the board + @board.each { |cell| cell.alive = [true, false].sample } + else + @board = board + end end def evolve @@ -216,6 +237,34 @@ def render(board) end end +# game DSL + +module FinalProject + class GameOfLifeBuilder + def initialize(size, render_strategy) + @size = size + @render_strategy = render_strategy + @board = Board.new(size) + end + + def build(board_string) + rows = board_string.split + rows.each_with_index do |row_string, row| + row_string.chars.each_with_index do |col_string, col| + @board.cell_at(row, col).alive = true if col_string == '*' + @board.cell_at(row, col).alive = false if col_string == '.' + end + end + GameOfLife.new(@size, @render_strategy, @board) + end + end +end + +def gol(size, render_strategy, board_string) + builder = FinalProject::GameOfLifeBuilder.new(size, render_strategy) + builder.build(board_string) +end + # unit tests module FinalProject @@ -285,4 +334,41 @@ def test_to_s assert_equal "**\n**", @board.to_s end end + + class GameDSLTest < Minitest::Test + class MyRenderStrategy + attr_reader :rendered_value + + def render(board) + @rendered_value = board.to_s + end + end + + def setup + @render_strategy = MyRenderStrategy.new + end + + def test_two_by_two_game_dsl + game = gol 2, @render_strategy, ' + .* + *. + ' + + game.render + assert_equal ".*\n*.", @render_strategy.rendered_value + end + + def test_five_by_five_game_dsl + game = gol 5, @render_strategy, ' + .***. + *...* + *...* + *...* + .***. + ' + + game.render + assert_equal ".***.\n*...*\n*...*\n*...*\n.***.", @render_strategy.rendered_value + end + end end diff --git a/assignments/gol.gif b/assignments/gol.gif new file mode 100644 index 0000000000000000000000000000000000000000..33cbb383de891da16ec2bebbf79f9bc5d601eabc GIT binary patch literal 147316 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 a`<0M^|CWZCqkmj>MceCz1v3ncoBss~