From ba4c98e21384e57da3d15805bc5d5b6e4a73a470 Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Fri, 24 Jan 2020 01:05:59 +0100 Subject: [PATCH] Added Formula unit test --- lib/body_tracking/formula.rb | 1 + test/unit/formula_test.rb | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 test/unit/formula_test.rb diff --git a/lib/body_tracking/formula.rb b/lib/body_tracking/formula.rb index b3a6def..2b5f943 100644 --- a/lib/body_tracking/formula.rb +++ b/lib/body_tracking/formula.rb @@ -79,6 +79,7 @@ module BodyTracking end end + class FormulaBuilder < Ripper::SexpBuilder def initialize(*args) super(*args) diff --git a/test/unit/formula_test.rb b/test/unit/formula_test.rb new file mode 100644 index 0000000..76e9571 --- /dev/null +++ b/test/unit/formula_test.rb @@ -0,0 +1,28 @@ +require File.expand_path('../../test_helper', __FILE__) + +class FormulaTest < ActiveSupport::TestCase + include BodyTracking::Formula + + def setup + end + + def test_builder_parses_valid_formulas_properly + vector = [ + '4', Set[], [ + {type: :indexed, content: '4*2'} + ], + + #'4*2' + #'Fats' + #'fats' + ] + + vector.each_slice(3) do |formula, identifiers, parts| + parser = FormulaBuilder.new(formula) + i, p = parser.parse + assert_empty parser.errors + assert_equal identifiers, i + assert_equal parts, p + end + end +end