File: test_examples.rb

package info (click to toggle)
ruby-rsec 0.4.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 272 kB
  • sloc: ruby: 2,130; lisp: 13; makefile: 3
file content (36 lines) | stat: -rw-r--r-- 846 bytes parent folder | download | duplicates (3)
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
require "#{File.dirname(__FILE__)}/helpers.rb"
$:.unshift "#{File.dirname __FILE__}/../examples"
require "arithmetic"
require "s_exp"

class TestExamples < TC
  def initialize *xs
    super(*xs)
    @a = arithmetic()
    @s_exp = s_exp()
  end
  
  def test_arithmetic
    # step by step
    s = '1'
    ase eval(s), @a.parse(s)
    s = '3+ 2'
    ase eval(s), @a.parse(s)
    s = '5-2*1'
    ase eval(s), @a.parse(s)
    s = '(2)'
    ase eval(s), @a.parse(s)
    s = '1+(2- (3+ 4))/5 * 2*4 +1'
    ase eval(s), @a.parse(s)
  end
  
  def test_s_exp
    res = @s_exp.parse! '(a 3 4.3 (add 1 3) (minus (multi 4 5)))'
    expected = ['a', 3.0, 4.3, ['add', 1, 3], ['minus', ['multi', 4, 5]]]
    ase expected, res
    
    res = @s_exp.parse! '(a (3) ce2 (add 1 3))'
    expected = ['a', 3.0, 'ce2', ['add', 1, 3]]
    ase expected, res
  end
end