* Create .abapgit.xml * Create package.devc.xml * Create package.devc.xml * Create zcl_anagram.clas.xml * Update .abapgit.xml * Add packages * Add classes * Update packages * Update abapGit.xml * Update XML objects * Fix EOF * Update EE * Update EOF * Change starting folder * Add execises * Update .abapgit.xml * Package description * Update xml * Update EOF Co-authored-by: Marc Bernard <marc@mail.marcbernardtools.com>
165 lines
6.6 KiB
ABAP
165 lines
6.6 KiB
ABAP
CLASS ltcl_anagram DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
|
|
|
PRIVATE SECTION.
|
|
DATA cut TYPE REF TO zcl_anagram.
|
|
METHODS setup.
|
|
METHODS test_test FOR TESTING RAISING cx_static_check.
|
|
METHODS test_no_matches FOR TESTING RAISING cx_static_check.
|
|
METHODS test_two_anagrams FOR TESTING RAISING cx_static_check.
|
|
METHODS test_two_anagrams2 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_anagram_subset FOR TESTING RAISING cx_static_check.
|
|
METHODS test_one_anagram FOR TESTING RAISING cx_static_check.
|
|
METHODS test_three_anagrams FOR TESTING RAISING cx_static_check.
|
|
METHODS test_multiple_case FOR TESTING RAISING cx_static_check.
|
|
METHODS test_identical_checksum FOR TESTING RAISING cx_static_check.
|
|
METHODS test_case_insensitive FOR TESTING RAISING cx_static_check.
|
|
METHODS test_case_insensitive2 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_case_insensitive3 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_original_word FOR TESTING RAISING cx_static_check.
|
|
METHODS test_letters_once FOR TESTING RAISING cx_static_check.
|
|
METHODS test_case_insensitive_original FOR TESTING RAISING cx_static_check.
|
|
METHODS test_other_than_themselves FOR TESTING RAISING cx_static_check.
|
|
|
|
ENDCLASS.
|
|
|
|
CLASS ltcl_anagram IMPLEMENTATION.
|
|
|
|
METHOD setup.
|
|
cut = NEW zcl_anagram( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_test.
|
|
DATA(candidates) = VALUE string_table( ( |tset| ) ( |sett| ) ( |tesi| ) ( |tesit| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |tset| ) ( |sett| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'test' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_no_matches.
|
|
DATA(candidates) = VALUE string_table( ( |hello| ) ( |world| ) ( |zombies| ) ( |pants| ) ).
|
|
DATA(exp_result) = VALUE string_table( ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'diaper' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_two_anagrams.
|
|
DATA(candidates) = VALUE string_table( ( |stream| ) ( |pigeon| ) ( |maters| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |stream| ) ( |maters| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'master' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_two_anagrams2.
|
|
DATA(candidates) = VALUE string_table( ( |lemons| ) ( |cherry| ) ( |melons| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |lemons| ) ( |melons| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'solemn' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_anagram_subset.
|
|
DATA(candidates) = VALUE string_table( ( |dog| ) ( |goody| ) ).
|
|
DATA(exp_result) = VALUE string_table( ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'good' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_one_anagram.
|
|
DATA(candidates) = VALUE string_table( ( |enlists| ) ( |google| ) ( |inlets| ) ( |banana| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |inlets| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'listen' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_three_anagrams.
|
|
DATA(candidates) = VALUE string_table( ( |gallery| )
|
|
( |ballerina| )
|
|
( |regally| )
|
|
( |clergy| )
|
|
( |largely| )
|
|
( |leading| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |gallery| ) ( |regally| ) ( |largely| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'allergy' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_multiple_case.
|
|
DATA(candidates) = VALUE string_table( ( |Eons| ) ( |ONES| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |Eons| ) ( |ONES| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'nose' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_identical_checksum.
|
|
DATA(candidates) = VALUE string_table( ( |last| ) ).
|
|
DATA(exp_result) = VALUE string_table( ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'mass' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_case_insensitive.
|
|
DATA(candidates) = VALUE string_table( ( |cashregister| ) ( |Carthorse| ) ( |radishes| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |Carthorse| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'Orchestra' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_case_insensitive2.
|
|
DATA(candidates) = VALUE string_table( ( |cashregister| ) ( |carthorse| ) ( |radishes| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |carthorse| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'Orchestra' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_case_insensitive3.
|
|
DATA(candidates) = VALUE string_table( ( |cashregister| ) ( |Carthorse| ) ( |radishes| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |Carthorse| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'orchestra' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_original_word.
|
|
DATA(candidates) = VALUE string_table( ( |go Go GO| ) ).
|
|
DATA(exp_result) = VALUE string_table( ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'go' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_letters_once.
|
|
DATA(candidates) = VALUE string_table( ( |patter| ) ).
|
|
DATA(exp_result) = VALUE string_table( ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'tapper' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_case_insensitive_original.
|
|
DATA(candidates) = VALUE string_table( ( |BANANA| ) ( |Banana| ) ( |banana| ) ).
|
|
DATA(exp_result) = VALUE string_table( ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'BANANA' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
METHOD test_other_than_themselves.
|
|
DATA(candidates) = VALUE string_table( ( |Listen| ) ( |Silent| ) ( |LISTEN| ) ).
|
|
DATA(exp_result) = VALUE string_table( ( |Silent| ) ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->anagram( input = 'LISTEN' candidates = candidates )
|
|
exp = exp_result ).
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|