ADT fallback: Accept headers for FUNC; G0189 accepted; regen2 results
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
FUNCTION {{p}}customs_duty_old
|
||||
IMPORTING
|
||||
iv_value TYPE decfloat34
|
||||
iv_country TYPE string
|
||||
iv_category TYPE string
|
||||
EXPORTING
|
||||
ev_rate TYPE decfloat34
|
||||
ev_duty TYPE decfloat34
|
||||
EXCEPTIONS
|
||||
invalid_value.
|
||||
|
||||
DATA lv_rate TYPE decfloat34.
|
||||
|
||||
IF iv_value < 0.
|
||||
RAISE invalid_value.
|
||||
ENDIF.
|
||||
|
||||
CASE iv_category.
|
||||
WHEN 'FOOD'.
|
||||
lv_rate = 5.
|
||||
WHEN 'TEXTILE'.
|
||||
lv_rate = 12.
|
||||
WHEN 'MACHINE'.
|
||||
lv_rate = 3.
|
||||
WHEN OTHERS.
|
||||
lv_rate = 0.
|
||||
ENDCASE.
|
||||
|
||||
IF iv_country = 'CH' OR iv_country = 'DE' OR iv_country = 'FR'
|
||||
OR iv_country = 'IT' OR iv_country = 'ES'.
|
||||
lv_rate = 0.
|
||||
ENDIF.
|
||||
|
||||
ev_rate = lv_rate.
|
||||
ev_duty = round( val = iv_value * lv_rate / 100 dec = 2 ).
|
||||
|
||||
IF ev_duty > 0 AND ev_duty < 5.
|
||||
ev_duty = 5.
|
||||
ENDIF.
|
||||
|
||||
ENDFUNCTION.
|
||||
@@ -1,72 +0,0 @@
|
||||
CLASS {{p}}duty_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
METHODS duty_for
|
||||
IMPORTING
|
||||
iv_value TYPE decfloat34
|
||||
iv_country TYPE string
|
||||
iv_category TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_duty) TYPE decfloat34.
|
||||
METHODS food_duty FOR TESTING.
|
||||
METHODS rounding FOR TESTING.
|
||||
METHODS minimum FOR TESTING.
|
||||
METHODS preferential FOR TESTING.
|
||||
METHODS negative_value FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}duty_test IMPLEMENTATION.
|
||||
METHOD duty_for.
|
||||
CALL FUNCTION '{{P}}CUSTOMS_DUTY_OLD'
|
||||
EXPORTING
|
||||
iv_value = iv_value
|
||||
iv_country = iv_country
|
||||
iv_category = iv_category
|
||||
IMPORTING
|
||||
ev_duty = rv_duty
|
||||
EXCEPTIONS
|
||||
invalid_value = 1
|
||||
OTHERS = 2.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD food_duty.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV decfloat34( 50 )
|
||||
act = duty_for( iv_value = 1000 iv_country = 'US' iv_category = 'FOOD' ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rounding.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV decfloat34( '6.19' )
|
||||
act = duty_for( iv_value = '123.7' iv_country = 'US' iv_category = 'FOOD' ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD minimum.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV decfloat34( 5 )
|
||||
act = duty_for( iv_value = 50 iv_country = 'US' iv_category = 'FOOD' ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD preferential.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV decfloat34( 0 )
|
||||
act = duty_for( iv_value = 10000 iv_country = 'FR' iv_category = 'FOOD' ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD negative_value.
|
||||
DATA lv_duty TYPE decfloat34.
|
||||
CALL FUNCTION '{{P}}CUSTOMS_DUTY_OLD'
|
||||
EXPORTING
|
||||
iv_value = -1
|
||||
iv_country = 'US'
|
||||
iv_category = 'FOOD'
|
||||
IMPORTING
|
||||
ev_duty = lv_duty
|
||||
EXCEPTIONS
|
||||
invalid_value = 1
|
||||
OTHERS = 2.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
59
tasks_gen/eval/G0189/reference/theme_fee.func.abap
Normal file
59
tasks_gen/eval/G0189/reference/theme_fee.func.abap
Normal file
@@ -0,0 +1,59 @@
|
||||
FUNCTION {{p}}theme_fee
|
||||
IMPORTING
|
||||
iv_visitor_type TYPE string
|
||||
iv_tickets TYPE i
|
||||
iv_date TYPE d
|
||||
EXPORTING
|
||||
ev_unit_price TYPE decfloat34
|
||||
ev_total_price TYPE decfloat34
|
||||
ev_discount TYPE decfloat34
|
||||
EXCEPTIONS
|
||||
invalid_visitor_type
|
||||
invalid_tickets.
|
||||
|
||||
DATA lv_base_price TYPE decfloat34.
|
||||
DATA lv_gross TYPE decfloat34.
|
||||
DATA lv_discount_pct TYPE decfloat34.
|
||||
DATA lv_month TYPE c LENGTH 2.
|
||||
|
||||
IF iv_tickets <= 0.
|
||||
RAISE invalid_tickets.
|
||||
ENDIF.
|
||||
|
||||
CASE iv_visitor_type.
|
||||
WHEN 'ADULT'.
|
||||
lv_base_price = '45.50'.
|
||||
WHEN 'CHILD'.
|
||||
lv_base_price = '25.25'.
|
||||
WHEN 'SENIOR'.
|
||||
lv_base_price = '30.75'.
|
||||
WHEN 'FAMILY'.
|
||||
lv_base_price = '40.00'.
|
||||
WHEN OTHERS.
|
||||
RAISE invalid_visitor_type.
|
||||
ENDCASE.
|
||||
|
||||
" Peak season surcharge: June, July, August
|
||||
IF iv_date IS NOT INITIAL.
|
||||
lv_month = iv_date+4(2).
|
||||
IF lv_month = '06' OR lv_month = '07' OR lv_month = '08'.
|
||||
lv_base_price = lv_base_price + 5.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
" Group discount
|
||||
IF iv_tickets >= 20.
|
||||
lv_discount_pct = 15.
|
||||
ELSEIF iv_tickets >= 10.
|
||||
lv_discount_pct = 10.
|
||||
ENDIF.
|
||||
|
||||
lv_gross = lv_base_price * iv_tickets.
|
||||
ev_discount = round( val = lv_gross * lv_discount_pct / 100
|
||||
dec = 2 mode = cl_abap_math=>round_half_up ).
|
||||
ev_total_price = round( val = lv_gross - ev_discount
|
||||
dec = 2 mode = cl_abap_math=>round_half_up ).
|
||||
ev_unit_price = round( val = lv_base_price
|
||||
dec = 2 mode = cl_abap_math=>round_half_up ).
|
||||
|
||||
ENDFUNCTION.
|
||||
68
tasks_gen/eval/G0189/reference/theme_test.clas.abap
Normal file
68
tasks_gen/eval/G0189/reference/theme_test.clas.abap
Normal file
@@ -0,0 +1,68 @@
|
||||
CLASS {{p}}theme_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
METHODS fee_for
|
||||
IMPORTING
|
||||
iv_type TYPE string
|
||||
iv_tickets TYPE i
|
||||
iv_date TYPE d
|
||||
RETURNING VALUE(rv_total) TYPE decfloat34.
|
||||
METHODS adult_price FOR TESTING.
|
||||
METHODS child_price FOR TESTING.
|
||||
METHODS group_discount FOR TESTING.
|
||||
METHODS peak_season FOR TESTING.
|
||||
METHODS invalid_type FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}theme_test IMPLEMENTATION.
|
||||
METHOD fee_for.
|
||||
CALL FUNCTION '{{P}}THEME_FEE'
|
||||
EXPORTING
|
||||
iv_visitor_type = iv_type
|
||||
iv_tickets = iv_tickets
|
||||
iv_date = iv_date
|
||||
IMPORTING
|
||||
ev_total_price = rv_total
|
||||
EXCEPTIONS
|
||||
invalid_visitor_type = 1
|
||||
invalid_tickets = 2
|
||||
OTHERS = 3.
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD adult_price.
|
||||
DATA(lv_total) = fee_for( iv_type = 'ADULT' iv_tickets = 1 iv_date = '20250115' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '45.50' ) act = lv_total ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD child_price.
|
||||
DATA(lv_total) = fee_for( iv_type = 'CHILD' iv_tickets = 1 iv_date = '20250115' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '25.25' ) act = lv_total ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD group_discount.
|
||||
DATA(lv_total) = fee_for( iv_type = 'ADULT' iv_tickets = 10 iv_date = '20250115' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '409.50' ) act = lv_total ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD peak_season.
|
||||
DATA(lv_total) = fee_for( iv_type = 'ADULT' iv_tickets = 1 iv_date = '20250715' ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '50.50' ) act = lv_total ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_type.
|
||||
DATA lv_total TYPE decfloat34.
|
||||
CALL FUNCTION '{{P}}THEME_FEE'
|
||||
EXPORTING
|
||||
iv_visitor_type = 'STUDENT'
|
||||
iv_tickets = 1
|
||||
iv_date = '20250115'
|
||||
IMPORTING
|
||||
ev_total_price = lv_total
|
||||
EXCEPTIONS
|
||||
invalid_visitor_type = 1
|
||||
OTHERS = 2.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user