tracks/ruby/lib/grains_cases.rb in trackler-2.1.0.1 vs tracks/ruby/lib/grains_cases.rb in trackler-2.1.0.2

- old
+ new

@@ -1,53 +1,26 @@ require 'exercise_cases' -class GrainsCase < OpenStruct - def test_name - 'test_%s' % description.downcase.tr_s(' ', '_') - end +class GrainsCase < ExerciseCase def workload - fail NotImplementedError + send("#{property}_workload") end - def skipped - index.zero? ? '# skip' : 'skip' - end - private - def underscore_format(number) - number.to_s.reverse.gsub(/...(?=.)/, '\&_').reverse + def square_workload + if raises_error? + "assert_raises(ArgumentError) { Grains.square(#{input}) }" + else + "assert_equal #{underscore_format(expected)}, Grains.square(#{input})" + end end -end -class GrainsCase::SquareMethod < GrainsCase - def workload - return error_assertion if expected < 0 - - "assert_equal #{underscore_format(expected)}, Grains.square(#{input})" - end - - private - - def error_assertion - "assert_raises(ArgumentError) { Grains.square(#{input}) }" - end -end - -class GrainsCase::TotalMethod < GrainsCase - def workload + def total_workload "assert_equal #{underscore_format(expected)}, Grains.total" end -end -GrainsCases = proc do |data| - data = JSON.parse(data) - - cases = data['square']['cases'].map.with_index do |row, i| - GrainsCase::SquareMethod.new(row.merge('index' => i)) + def underscore_format(number) + number.to_s.reverse.gsub(/...(?=.)/, '\&_').reverse end - - cases << GrainsCase::TotalMethod.new( - data['total'].merge('index' => cases.size) - ) end