Sha256: 77d806b6664c9f8ac3e691d9466ad60b00f83d261571a4fb0e2a7daf83451b2e

Contents?: true

Size: 1.05 KB

Versions: 24

Compression:

Stored size: 1.05 KB

Contents

class Gobstones::Batch
  attr_accessor :options, :examples, :content, :extra

  def initialize(content, examples, extra, options)
    @content = content
    @examples = examples
    @extra = extra
    @options = options
  end

  def run_tests!(output)
    Mumukit::Metatest::Framework.new(
      checker: Gobstones::Checker.new(options),
      runner: Gobstones::MultipleExecutionsRunner.new).test output, examples
  end

  def to_json
    examples.map { |example| example_json(example) }.to_json
  end

  private

  def example_json(example)
    expected_board = example[:postconditions][:final_board]
    base = example_base_json(example)
    expected_board ? base.merge(extraBoard: expected_board) : base
  end

  def example_base_json(example)
    json = {initialBoard: example[:preconditions][:initial_board],
            code: example_code(example),
            extraCode: extra}

    json[:originalCode] = content if json[:code] != content
    json
  end

  def example_code(example)
    Gobstones::ExampleCodeBuilder.new(content, example, options).build
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
mumuki-gobstones-runner-2.3.0 lib/gobstones/batch.rb
mumuki-gobstones-runner-2.2.1 lib/gobstones/batch.rb
mumuki-gobstones-runner-2.2.0 lib/gobstones/batch.rb
mumuki-gobstones-runner-2.1.3 lib/gobstones/batch.rb
mumuki-gobstones-runner-2.1.2 lib/gobstones/batch.rb
mumuki-gobstones-runner-2.1.1 lib/gobstones/batch.rb
mumuki-gobstones-runner-2.1.0 lib/gobstones/batch.rb
mumuki-gobstones-runner-2.0.1 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.12.1 lib/gobstones/batch.rb
mumuki-gobstones-runner-2.0.0 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.12.0 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.11.2 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.11.1 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.11.0 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.10.2 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.10.1 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.10.0 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.8.0 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.7.5 lib/gobstones/batch.rb
mumuki-gobstones-runner-1.7.4 lib/gobstones/batch.rb