2022-04-01 12:25:15 +01:00
|
|
|
CLASS ltc_test DEFINITION FINAL FOR TESTING
|
|
|
|
|
DURATION SHORT
|
|
|
|
|
RISK LEVEL HARMLESS.
|
2022-01-26 14:36:16 +01:00
|
|
|
|
|
|
|
|
PRIVATE SECTION.
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
DATA cut TYPE REF TO zcl_minesweeper.
|
|
|
|
|
|
|
|
|
|
METHODS setup.
|
2022-04-01 12:25:15 +01:00
|
|
|
METHODS assert_that IMPORTING input TYPE string_table
|
|
|
|
|
output TYPE string_table.
|
|
|
|
|
|
|
|
|
|
METHODS no_rows FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS no_columns FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS no_mines FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS only_mines FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS mine_surrounded_by_spaces FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS space_surrounded_by_mines FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS horizontal_line FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS horizontal_line_mines_at_ends FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS vertical_line FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS vertical_line_mines_at_ends FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS cross FOR TESTING RAISING cx_static_check.
|
|
|
|
|
METHODS large_minefield FOR TESTING RAISING cx_static_check.
|
2022-01-26 14:36:16 +01:00
|
|
|
|
|
|
|
|
ENDCLASS.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
|
|
|
|
CLASS ltc_test IMPLEMENTATION.
|
2022-01-26 14:36:16 +01:00
|
|
|
|
|
|
|
|
METHOD setup.
|
|
|
|
|
cut = NEW zcl_minesweeper( ).
|
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD no_rows.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #( )
|
|
|
|
|
output = VALUE #( ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD no_columns.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #( ( ) )
|
|
|
|
|
output = VALUE #( ( ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD no_mines.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #(
|
|
|
|
|
( ` ` )
|
|
|
|
|
( ` ` )
|
|
|
|
|
( ` ` ) )
|
|
|
|
|
output = VALUE #(
|
|
|
|
|
( ` ` )
|
|
|
|
|
( ` ` )
|
|
|
|
|
( ` ` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
|
|
|
|
METHOD only_mines.
|
|
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #(
|
|
|
|
|
( `***` )
|
|
|
|
|
( `***` )
|
|
|
|
|
( `***` ) )
|
|
|
|
|
output = VALUE #(
|
|
|
|
|
( `***` )
|
|
|
|
|
( `***` )
|
|
|
|
|
( `***` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD mine_surrounded_by_spaces.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #(
|
|
|
|
|
( ` ` )
|
|
|
|
|
( ` * ` )
|
|
|
|
|
( ` ` ) )
|
|
|
|
|
output = VALUE #(
|
|
|
|
|
( `111` )
|
|
|
|
|
( `1*1` )
|
|
|
|
|
( `111` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD space_surrounded_by_mines.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #(
|
|
|
|
|
( `***` )
|
|
|
|
|
( `* *` )
|
|
|
|
|
( `***` ) )
|
|
|
|
|
output = VALUE #(
|
|
|
|
|
( `***` )
|
|
|
|
|
( `*8*` )
|
|
|
|
|
( `***` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD horizontal_line.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #( ( ` * * ` ) )
|
|
|
|
|
output = VALUE #( ( `1*2*1` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
|
|
|
|
METHOD horizontal_line_mines_at_ends.
|
|
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #( ( `* *` ) )
|
|
|
|
|
output = VALUE #( ( `*1 1*` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD vertical_line.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #(
|
|
|
|
|
( ` ` )
|
|
|
|
|
( `*` )
|
|
|
|
|
( ` ` )
|
|
|
|
|
( `*` )
|
|
|
|
|
( ` ` ) )
|
|
|
|
|
output = VALUE #(
|
|
|
|
|
( `1` )
|
|
|
|
|
( `*` )
|
|
|
|
|
( `2` )
|
|
|
|
|
( `*` )
|
|
|
|
|
( `1` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
|
|
|
|
METHOD vertical_line_mines_at_ends.
|
|
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #(
|
|
|
|
|
( `*` )
|
|
|
|
|
( ` ` )
|
|
|
|
|
( ` ` )
|
|
|
|
|
( ` ` )
|
|
|
|
|
( `*` ) )
|
|
|
|
|
output = VALUE #(
|
|
|
|
|
( `*` )
|
|
|
|
|
( `1` )
|
|
|
|
|
( ` ` )
|
|
|
|
|
( `1` )
|
|
|
|
|
( `*` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD cross.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #(
|
|
|
|
|
( ` * ` )
|
|
|
|
|
( ` * ` )
|
|
|
|
|
( `*****` )
|
|
|
|
|
( ` * ` )
|
|
|
|
|
( ` * ` ) )
|
|
|
|
|
output = VALUE #(
|
|
|
|
|
( ` 2*2 ` )
|
|
|
|
|
( `25*52` )
|
|
|
|
|
( `*****` )
|
|
|
|
|
( `25*52` )
|
|
|
|
|
( ` 2*2 ` ) ) ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-04-01 12:25:15 +01:00
|
|
|
|
2022-01-26 14:36:16 +01:00
|
|
|
METHOD large_minefield.
|
2022-04-01 12:25:15 +01:00
|
|
|
assert_that(
|
|
|
|
|
input = VALUE #(
|
|
|
|
|
( ` * * ` )
|
|
|
|
|
( ` * ` )
|
|
|
|
|
( ` * ` )
|
|
|
|
|
( ` * *` )
|
|
|
|
|
( ` * * ` )
|
|
|
|
|
( ` ` ) )
|
|
|
|
|
output = VALUE #(
|
|
|
|
|
( `1*22*1` )
|
|
|
|
|
( `12*322` )
|
|
|
|
|
( ` 123*2` )
|
|
|
|
|
( `112*4*` )
|
|
|
|
|
( `1*22*2` )
|
|
|
|
|
( `111111` ) ) ).
|
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
METHOD assert_that.
|
|
|
|
|
DATA(act) = cut->annotate( input ).
|
|
|
|
|
cl_abap_unit_assert=>assert_equals( act = act
|
|
|
|
|
exp = output ).
|
2022-01-26 14:36:16 +01:00
|
|
|
ENDMETHOD.
|
|
|
|
|
|
2022-05-24 10:03:57 +02:00
|
|
|
ENDCLASS.
|