Sha256: 23695f03faf07d357cab90a4b165f994b526eddea69ade0c02f5d2e548d36679

Contents?: true

Size: 1005 Bytes

Versions: 216

Compression:

Stored size: 1005 Bytes

Contents

require 'generator/exercise_case'

class WordyCase < Generator::ExerciseCase

  def workload
    [
      "question = '#{input}'",
      indent(4, assertion),
    ].join("\n")
  end

  private

  def indent(size, lines)
    lines.lines.each_with_object('') { |line, obj| obj << ' ' * size + line }
  end

  def assertion
    return error_assertion if expected == false
    return message_assertion if message

    "assert_equal(#{expected}, WordProblem.new(question).answer)"
  end

  def error_assertion
    [
      'assert_raises ArgumentError do',
      indent(2, 'WordProblem.new(question).answer'),
      'end',
    ].join("\n")
  end

  def message_assertion
    [
      'answer = WordProblem.new(question).answer',
      "message = \"#{message % '#{answer}'}\"",
      "assert_equal(#{expected}, answer, message)",
    ].join("\n")
  end

  def message
    return unless input == 'What is -3 plus 7 multiplied by -2?'

    'You should ignore order of precedence. -3 + 7 * -2 = -8, not %s'
  end
end

Version data entries

216 entries across 216 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.158 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.157 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.156 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.155 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.154 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.153 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.152 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.151 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.150 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.149 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.148 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.147 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.146 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.145 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.144 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.143 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.142 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.141 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
trackler-2.2.1.140 tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb