Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion exercises/queen-attack/example.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ class Queens
def initialize(positions = {})
@white = positions.fetch(:white) { [0, 3] }
@black = positions.fetch(:black) { [7, 3] }
fail ArgumentError if white == black
fail ArgumentError, "Queens cannot be placed on the same spot" if white == black
fail ArgumentError, "Positions must be positive numbers" if (white + black).any? { |p| p < 0 }
fail ArgumentError, "Positions must have square on board" if (white + black).any? { |p| p > 7 }
end

def attack?
Expand Down
36 changes: 32 additions & 4 deletions exercises/queen-attack/queen_attack_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,34 @@ def test_cannot_occupy_same_space
end
end

def test_queen_must_have_positive_row
skip
assert_raises ArgumentError do
Queens.new(white: [-2, 2])
end
end

def test_queen_must_have_positive_column
skip
assert_raises ArgumentError do
Queens.new(white: [2, -2])
end
end

def test_queen_must_have_row_on_board
skip
assert_raises ArgumentError do
Queens.new(white: [8, 4])
end
end

def test_queen_must_have_column_on_board
skip
assert_raises ArgumentError do
Queens.new(white: [4, 8])
end
end

def test_string_representation
skip
queens = Queens.new(white: [2, 4], black: [6, 6])
Expand Down Expand Up @@ -100,25 +128,25 @@ def test_can_attack_on_same_column
assert queens.attack?
end

def test_can_attack_on_diagonal
def test_can_attack_on_first_diagonal
skip
queens = Queens.new(white: [1, 1], black: [6, 6])
assert queens.attack?
end

def test_can_attack_on_other_diagonal
def test_can_attack_on_second_diagonal
skip
queens = Queens.new(white: [0, 6], black: [1, 7])
assert queens.attack?
end

def test_can_attack_on_yet_another_diagonal
def test_can_attack_on_third_diagonal
skip
queens = Queens.new(white: [4, 1], black: [6, 3])
assert queens.attack?
end

def test_can_attack_on_a_diagonal_slanted_the_other_way
def test_can_attack_on_fourth_diagonal
skip
queens = Queens.new(white: [6, 1], black: [1, 6])
assert queens.attack?
Expand Down