Skip to content

Commit

Permalink
Single quotes
Browse files Browse the repository at this point in the history
  • Loading branch information
simonewebdesign committed May 9, 2015
1 parent 521812c commit f0a6a00
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 28 deletions.
18 changes: 9 additions & 9 deletions evaluator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ def get_expression_value
done = false
while !done
token = @tokenizer.peek_token
if (token == "+" || token == "-")
if token == '+' || token == '-'
@tokenizer.next_token # discard + or -
value2 = get_term_value

if token == "+"
if token == '+'
value = value.to_i + value2.to_i
elsif token == "-"
elsif token == '-'
value = value.to_i - value2.to_i
end

Expand All @@ -43,12 +43,12 @@ def get_term_value
while !done
token = @tokenizer.peek_token

if token == "*" || token == "/"
if token == '*' || token == '/'
@tokenizer.next_token
value2 = get_factor_value
if token == "*"
if token == '*'
value = value.to_i * value2.to_i
elsif token == "/"
elsif token == '/'
value = value.to_i / value2.to_i
end
else
Expand All @@ -63,10 +63,10 @@ def get_term_value
def get_factor_value
value = 0
token = @tokenizer.peek_token
if token == "("
@tokenizer.next_token # ignore "("
if token == '('
@tokenizer.next_token # ignore '('
value = get_expression_value
@tokenizer.next_token # ignore ")"
@tokenizer.next_token # ignore ')'
else
value = @tokenizer.next_token
end
Expand Down
2 changes: 1 addition & 1 deletion main.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# This program calculates the value of an expression
# consisting of numbers, arithmetic operators, and parentheses.
print "Enter an expression: "
print 'Enter an expression: '
expression = gets

evaluator = Evaluator.new expression
Expand Down
36 changes: 18 additions & 18 deletions tests/evaluator.rb
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
require "./evaluator"
require "test/unit"
require './evaluator'
require 'test/unit'

class TestEvaluator < Test::Unit::TestCase

def test_get_expression_value
assert_equal 2, expr("1+1")
assert_equal 527, expr("12+(140-30)*3/2+(200)-3000+150+3000")
assert_equal 3, expr("5-2")
assert_equal 6, expr("(6*2)/2")
assert_equal 3, expr("1+ 2")
assert_equal 4, expr("2 + 2")
assert_equal 55, expr("22 + 33")
assert_equal 3, expr("100 / 50 + 1")
assert_equal 3, expr("(100 / 50) + 1")
assert_equal 5, expr("10 / 2")
assert_equal 4, expr("2 * 2")
assert_equal 6, expr("(6 * 2) / 2")
assert_equal 7, expr("4 + (3)")
assert_equal 30, expr("50-20")
assert_equal 1, expr("1")
assert_equal 2, expr(" 2 ")
assert_equal 2, expr('1+1')
assert_equal 527, expr('12+(140-30)*3/2+(200)-3000+150+3000')
assert_equal 3, expr('5-2')
assert_equal 6, expr('(6*2)/2')
assert_equal 3, expr('1+ 2')
assert_equal 4, expr('2 + 2')
assert_equal 55, expr('22 + 33')
assert_equal 3, expr('100 / 50 + 1')
assert_equal 3, expr('(100 / 50) + 1')
assert_equal 5, expr('10 / 2')
assert_equal 4, expr('2 * 2')
assert_equal 6, expr('(6 * 2) / 2')
assert_equal 7, expr('4 + (3)')
assert_equal 30, expr('50-20')
assert_equal 1, expr('1')
assert_equal 2, expr(' 2 ')
end

private
Expand Down

0 comments on commit f0a6a00

Please sign in to comment.