Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
136
tasks_gen/train/G1082/hidden/climb_hidden.clas.abap
Normal file
136
tasks_gen/train/G1082/hidden/climb_hidden.clas.abap
Normal file
@@ -0,0 +1,136 @@
|
||||
CLASS {{p}}climb_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}climb_pricer.
|
||||
METHODS setup.
|
||||
METHODS assert_amount
|
||||
IMPORTING iv_expected TYPE {{p}}climb_pricer=>ty_amount
|
||||
iv_actual TYPE {{p}}climb_pricer=>ty_amount
|
||||
iv_text TYPE string.
|
||||
METHODS adult_two_hours FOR TESTING.
|
||||
METHODS youth_single_hour FOR TESTING.
|
||||
METHODS family_rate FOR TESTING.
|
||||
METHODS equipment_fee FOR TESTING.
|
||||
METHODS group_fee FOR TESTING.
|
||||
METHODS member_discount FOR TESTING.
|
||||
METHODS member_beats_loyalty FOR TESTING.
|
||||
METHODS top_loyalty FOR TESTING.
|
||||
METHODS mid_loyalty FOR TESTING.
|
||||
METHODS unknown_entry FOR TESTING.
|
||||
METHODS invalid_hours FOR TESTING.
|
||||
METHODS invalid_climbers FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}climb_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}climb_pricer( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_amount.
|
||||
cl_abap_unit_assert=>assert_equals( exp = iv_expected act = iv_actual msg = iv_text ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD adult_two_hours.
|
||||
DATA(ls_result) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 2 ) ).
|
||||
assert_amount( iv_expected = '36.00' iv_actual = ls_result-base iv_text = 'base' ).
|
||||
assert_amount( iv_expected = '0.00' iv_actual = ls_result-surcharge iv_text = 'surcharge' ).
|
||||
assert_amount( iv_expected = '0.00' iv_actual = ls_result-discount iv_text = 'discount' ).
|
||||
assert_amount( iv_expected = '36.00' iv_actual = ls_result-total iv_text = 'total' ).
|
||||
cl_abap_unit_assert=>assert_initial( act = ls_result-message msg = 'message must be empty' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD youth_single_hour.
|
||||
DATA(ls_result) = mo_cut->price( VALUE #( entry_type = 'Y' hours = 1 climbers = 1 ) ).
|
||||
assert_amount( iv_expected = '6.00' iv_actual = ls_result-base iv_text = 'base' ).
|
||||
assert_amount( iv_expected = '6.00' iv_actual = ls_result-total iv_text = 'total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD family_rate.
|
||||
DATA(ls_result) = mo_cut->price( VALUE #( entry_type = 'F' hours = 3 climbers = 4 ) ).
|
||||
assert_amount( iv_expected = '84.00' iv_actual = ls_result-base iv_text = 'base' ).
|
||||
assert_amount( iv_expected = '84.00' iv_actual = ls_result-total iv_text = 'total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD equipment_fee.
|
||||
DATA(ls_result) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 3
|
||||
equipment = abap_true ) ).
|
||||
assert_amount( iv_expected = '54.00' iv_actual = ls_result-base iv_text = 'base' ).
|
||||
assert_amount( iv_expected = '12.00' iv_actual = ls_result-surcharge iv_text = 'surcharge' ).
|
||||
assert_amount( iv_expected = '66.00' iv_actual = ls_result-total iv_text = 'total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD group_fee.
|
||||
DATA(ls_small) = mo_cut->price( VALUE #( entry_type = 'A' hours = 1 climbers = 5 ) ).
|
||||
assert_amount( iv_expected = '45.00' iv_actual = ls_small-base iv_text = 'small base' ).
|
||||
assert_amount( iv_expected = '0.00' iv_actual = ls_small-surcharge iv_text = 'small surcharge' ).
|
||||
|
||||
DATA(ls_group) = mo_cut->price( VALUE #( entry_type = 'A' hours = 1 climbers = 6 ) ).
|
||||
assert_amount( iv_expected = '54.00' iv_actual = ls_group-base iv_text = 'group base' ).
|
||||
assert_amount( iv_expected = '15.00' iv_actual = ls_group-surcharge iv_text = 'group surcharge' ).
|
||||
assert_amount( iv_expected = '69.00' iv_actual = ls_group-total iv_text = 'group total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD member_discount.
|
||||
DATA(ls_result) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 2
|
||||
member = abap_true ) ).
|
||||
assert_amount( iv_expected = '36.00' iv_actual = ls_result-base iv_text = 'base' ).
|
||||
assert_amount( iv_expected = '5.40' iv_actual = ls_result-discount iv_text = 'discount' ).
|
||||
assert_amount( iv_expected = '30.60' iv_actual = ls_result-total iv_text = 'total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD member_beats_loyalty.
|
||||
DATA(ls_result) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 2
|
||||
member = abap_true visits = 10 ) ).
|
||||
assert_amount( iv_expected = '5.40' iv_actual = ls_result-discount iv_text = 'discount' ).
|
||||
assert_amount( iv_expected = '30.60' iv_actual = ls_result-total iv_text = 'total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD top_loyalty.
|
||||
DATA(ls_result) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 2
|
||||
visits = 10 ) ).
|
||||
assert_amount( iv_expected = '7.20' iv_actual = ls_result-discount iv_text = 'discount' ).
|
||||
assert_amount( iv_expected = '28.80' iv_actual = ls_result-total iv_text = 'total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD mid_loyalty.
|
||||
DATA(ls_three) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 2
|
||||
visits = 3 ) ).
|
||||
assert_amount( iv_expected = '1.80' iv_actual = ls_three-discount iv_text = 'discount' ).
|
||||
assert_amount( iv_expected = '34.20' iv_actual = ls_three-total iv_text = 'total' ).
|
||||
|
||||
DATA(ls_two) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 2
|
||||
visits = 2 ) ).
|
||||
assert_amount( iv_expected = '0.00' iv_actual = ls_two-discount iv_text = 'no discount' ).
|
||||
assert_amount( iv_expected = '36.00' iv_actual = ls_two-total iv_text = 'no discount total' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD unknown_entry.
|
||||
DATA(ls_result) = mo_cut->price( VALUE #( entry_type = 'X' hours = 2 climbers = 2 ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'UNKNOWN ENTRY TYPE' act = ls_result-message ).
|
||||
assert_amount( iv_expected = '0.00' iv_actual = ls_result-base iv_text = 'base' ).
|
||||
assert_amount( iv_expected = '0.00' iv_actual = ls_result-total iv_text = 'total' ).
|
||||
|
||||
DATA(ls_order) = mo_cut->price( VALUE #( entry_type = 'X' hours = 0 climbers = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'UNKNOWN ENTRY TYPE' act = ls_order-message ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_hours.
|
||||
DATA(ls_zero) = mo_cut->price( VALUE #( entry_type = 'A' hours = 0 climbers = 2 ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'INVALID HOURS' act = ls_zero-message ).
|
||||
|
||||
DATA(ls_many) = mo_cut->price( VALUE #( entry_type = 'A' hours = 7 climbers = 2 ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'INVALID HOURS' act = ls_many-message ).
|
||||
|
||||
DATA(ls_order) = mo_cut->price( VALUE #( entry_type = 'A' hours = 0 climbers = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'INVALID HOURS' act = ls_order-message ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_climbers.
|
||||
DATA(ls_none) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'INVALID CLIMBERS' act = ls_none-message ).
|
||||
|
||||
DATA(ls_many) = mo_cut->price( VALUE #( entry_type = 'A' hours = 2 climbers = 11 ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'INVALID CLIMBERS' act = ls_many-message ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user