Sha256: e47693bc4f893461ddd3a312945dc4c181e6e24d90f07121404dc29a51580ad5

Contents?: true

Size: 1.44 KB

Versions: 2

Compression:

Stored size: 1.44 KB

Contents

$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"

require "test/unit"
require "writeexcel"

class TC_Formula < Test::Unit::TestCase

  def setup
    @formula = Formula.new(0)
  end

  def test_scan
    # scan must return array of token info
    string01 = '1 + 2 * LEN("String")'
    expected01 = [
      [:NUMBER, '1'],
      ['+',     '+'],
      [:NUMBER, '2'],
      ['*',     '*'],
      [:FUNC,   'LEN'],
      ['(',     '('],
      [:STRING, '"String"'],
      [')',     ')'],
      [:EOL,    nil]
    ]
    assert_kind_of(Array, @formula.scan(string01))
    assert_equal(expected01, @formula.scan(string01))

    string02 = 'IF(A1>=0,SIN(0),COS(90))'
    expected02 = [
      [:FUNC,   'IF'],
      ['(',     '('],
      [:REF2D,  'A1'],
      [:GE,     '>='],
      [:NUMBER, '0'],
      [',',     ','],
      [:FUNC,   'SIN'],
      ['(',     '('],
      [:NUMBER, '0'],
      [')',     ')'],
      [',',     ','],
      [:FUNC,   'COS'],
      ['(',     '('],
      [:NUMBER, '90'],
      [')',     ')'],
      [')',     ')'],
      [:EOL,    nil]
    ]
    assert_kind_of(Array, @formula.scan(string02))
    assert_equal(expected02, @formula.scan(string02))
  end

  def test_reverse
    testcase = [
      [ [0,1,2,3,4], [0,[1,[2,3,[4]]]]      ],
      [ [0,1,2,3,4,5], [[0,1,[2,3]],[4,5]]  ]
    ]
    testcase.each do |t|
      assert_equal(t[0], @formula.reverse(t[1]))
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
writeexcel-0.3.1 test/tc_formula.rb
writeexcel-0.3.0 test/tc_formula.rb