Class: TestArithmetic

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/tester/test_unit.rb

Instance Method Summary collapse

Instance Method Details

#test_additionObject



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/tester/test_unit.rb', line 28

def test_addition
  assert_equal(3, LangParser.new.calc_test("1 + 2"))
  assert_equal(3, LangParser.new.calc_test("(1 + 2)"))
  assert_equal(3, LangParser.new.calc_test("((1 + 2))"))

  assert_equal(6, LangParser.new.calc_test("1 + 2 + 3"))
  assert_equal(6, LangParser.new.calc_test("(1 + 2) + 3"))
  assert_equal(6, LangParser.new.calc_test("((1 + 2) + 3)"))
  assert_equal(10, LangParser.new.calc_test("((1 + 2) + 3) + 4"))
  assert_equal(10, LangParser.new.calc_test("4 + ((3) + (2 + 1))"))
end

#test_divisionObject



67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/tester/test_unit.rb', line 67

def test_division
  assert_equal(2, LangParser.new.calc_test("2 / 1"))
  assert_equal(1, LangParser.new.calc_test("2 / 2"))
  assert_equal(0.5, LangParser.new.calc_test("1 / 2"))
  assert_equal(-0.5, LangParser.new.calc_test("-1 / 2"))
  assert_equal(-2.5, LangParser.new.calc_test("-5 / 2"))

  assert_equal(0, LangParser.new.calc_test("(-1 + 1) / 2"))
  assert_equal(1, LangParser.new.calc_test("(3 / (3 / 1)) / 1"))
  assert_equal(1, LangParser.new.calc_test("(3 / (3 / 1)) / (1)"))
  assert_equal(3, LangParser.new.calc_test("(3 / (3 / 1-1-1)) / (1)"))
end

#test_multiplyObject



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/tester/test_unit.rb', line 54

def test_multiply
  assert_equal(2, LangParser.new.calc_test("2 * 1"))
  assert_equal(2, LangParser.new.calc_test("1 * 2"))
  assert_equal(2, LangParser.new.calc_test("1 * (2)"))
  assert_equal(2, LangParser.new.calc_test("(1) * (2)"))

  assert_equal(6, LangParser.new.calc_test("(1) * (2 * 3)"))
  assert_equal(6, LangParser.new.calc_test("(1 * 2 * 3)"))
  assert_equal(6, LangParser.new.calc_test("(1 * 2) * 3"))
  assert_equal(18, LangParser.new.calc_test("(3) * 2 * (3)"))
  assert_equal(-6, LangParser.new.calc_test("(3) * (0 - 2) * (1)"))
end

#test_subtractionObject



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/tester/test_unit.rb', line 40

def test_subtraction
  assert_equal(1, LangParser.new.calc_test("2 - 1"))
  assert_equal(-3, LangParser.new.calc_test("(-2) - 1"))
  assert_equal(1, LangParser.new.calc_test("(2 - 1)"))
  assert_equal(1, LangParser.new.calc_test("((2 - 1))"))

  assert_equal(0, LangParser.new.calc_test("3 - 2 - 1"))
  assert_equal(0, LangParser.new.calc_test("(3 - 2) - 1"))
  assert_equal(0, LangParser.new.calc_test("((3 - 2)) - 1"))
  assert_equal(2, LangParser.new.calc_test("(4 - (3 - 2)) - 1"))
  assert_equal(2, LangParser.new.calc_test("(4 - ((3) - 2)) - 1"))
  assert_equal(4, LangParser.new.calc_test("4 - (((3) - 2) - 1)"))
end