Sha256: 5100e2c3d9a7f3a30ed629ec31f8ed5b7a11f0d3e1f4b22264f25dc0cf8f551b
Contents?: true
Size: 1.89 KB
Versions: 5
Compression:
Stored size: 1.89 KB
Contents
# This file contains a suite of tests for the Calc grammar found in calc.citrus. require 'citrus' Citrus.require File.expand_path('../calc', __FILE__) require 'test/unit' class CalcTest < Test::Unit::TestCase # A helper method that tests the successful parsing and evaluation of the # given mathematical expression. def do_test(expr) match = ::Calc.parse(expr) assert(match) assert_equal(expr, match) assert_equal(expr.length, match.length) assert_equal(eval(expr), match.value) end def test_int do_test('3') end def test_float do_test('1.5') end def test_addition do_test('1+2') end def test_addition_multi do_test('1+2+3') end def test_addition_float do_test('1.5+3') end def test_subtraction do_test('3-2') end def test_subtraction_float do_test('4.5-3') end def test_multiplication do_test('2*5') end def test_multiplication_float do_test('1.5*3') end def test_division do_test('20/5') end def test_division_float do_test('4.5/3') end def test_complex do_test('7*4+3.5*(4.5/3)') end def test_complex_spaced do_test('7 * 4 + 3.5 * (4.5 / 3)') end def test_complex_with_underscores do_test('(12_000 / 3) * 2.5') end def test_modulo do_test('3 % 2 + 4') end def test_exponent do_test('2**9') end def test_exponent_float do_test('2**2.2') end def test_negative_exponent do_test('2**-3') end def test_exponent_exponent do_test('2**2**2') end def test_exponent_group do_test('2**(3+1)') end def test_negative do_test('-5') end def test_double_negative do_test('--5') end def test_complement do_test('~4') end def test_double_complement do_test('~~4') end def test_mixed_unary do_test('~-4') end def test_complex_with_negatives do_test('4 * -7 / (8.0 + 1_2)**2') end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
citrus-2.3.7 | examples/calc_test.rb |
citrus-2.3.6 | examples/calc_test.rb |
citrus-2.3.5 | examples/calc_test.rb |
citrus-2.3.4 | examples/calc.rb |
citrus-2.3.3 | examples/calc.rb |