class StonesSpec::Postcondition::ExpectedFinalBoard

Attributes

check_head_position[R]
show_initial_board[R]

Public Class Methods

new(example, check_head_position, show_initial_board) click to toggle source
Calls superclass method
# File lib/stones_spec/postcondition/expected_final_board.rb, line 6
def initialize(example, check_head_position, show_initial_board)
  super example
  @check_head_position = check_head_position
  @show_initial_board = show_initial_board
end

Public Instance Methods

validate_expected_result(initial_board_gbb, actual_final_board_gbb, _result) click to toggle source
# File lib/stones_spec/postcondition/expected_final_board.rb, line 12
def validate_expected_result(initial_board_gbb, actual_final_board_gbb, _result)
  if matches_with_expected_board? Stones::Gbb.read actual_final_board_gbb
    passed_result initial_board_gbb, actual_final_board_gbb
  else
    failed_result initial_board_gbb, example.final_board, actual_final_board_gbb
  end
end

Private Instance Methods

failed_result(initial_board_gbb, expected_board_gbb, actual_board_gbb) click to toggle source
# File lib/stones_spec/postcondition/expected_final_board.rb, line 22
def failed_result(initial_board_gbb, expected_board_gbb, actual_board_gbb)
  boards = [
      ['Tablero final esperado', expected_board_gbb],
      ['Tablero final obtenido', actual_board_gbb]
  ]

  boards.unshift ['Tablero inicial', initial_board_gbb] if show_initial_board

  make_boards_output example.title, boards, :failed
end
final_board() click to toggle source
# File lib/stones_spec/postcondition/expected_final_board.rb, line 51
def final_board
  Stones::Gbb.read example.final_board
end
matches_with_expected_board?(actual_board) click to toggle source
# File lib/stones_spec/postcondition/expected_final_board.rb, line 43
def matches_with_expected_board?(actual_board)
  if check_head_position
    actual_board == final_board
  else
    actual_board.cells_equal? final_board
  end
end
passed_result(initial_board_gbb, actual_board_gbb) click to toggle source
# File lib/stones_spec/postcondition/expected_final_board.rb, line 33
def passed_result(initial_board_gbb, actual_board_gbb)
  boards = [
      ['Tablero final', actual_board_gbb]
  ]

  boards.unshift ['Tablero inicial', initial_board_gbb] if show_initial_board

  make_boards_output example.title, boards, :passed
end