Files
abap/exercises/practice/anagram/zcl_anagram.clas.testclasses.abap
Marc Bernard bb6b3d0480 Make repository compatible with abapGit (#82)
* 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>
2022-05-24 10:03:57 +02:00

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.