Fix coverage with several contract classes; table annotation and file path checks; clean task dir on write
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
96
tasks_gen/eval/G0104/faulty/m0_insurance_premium.clas.abap
Normal file
96
tasks_gen/eval/G0104/faulty/m0_insurance_premium.clas.abap
Normal file
@@ -0,0 +1,96 @@
|
||||
CLASS {{p}}insurance_premium DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES:
|
||||
ty_region TYPE c LENGTH 2,
|
||||
ty_premium TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_premium
|
||||
IMPORTING iv_age TYPE i
|
||||
iv_power_kw TYPE i
|
||||
iv_region TYPE ty_region
|
||||
iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_premium) TYPE ty_premium.
|
||||
PRIVATE SECTION.
|
||||
METHODS get_base_premium
|
||||
IMPORTING iv_region TYPE ty_region
|
||||
RETURNING VALUE(rv_base) TYPE ty_premium.
|
||||
METHODS get_age_factor
|
||||
IMPORTING iv_age TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_power_factor
|
||||
IMPORTING iv_power_kw TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_discount_factor
|
||||
IMPORTING iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS {{p}}insurance_premium IMPLEMENTATION.
|
||||
METHOD calculate_premium.
|
||||
IF iv_age < 18 OR iv_age > 99
|
||||
AND iv_power_kw <= 0
|
||||
OR iv_claim_free_years < 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_base) = get_base_premium( iv_region ).
|
||||
IF lv_base = 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_premium) = CONV decfloat34( lv_base )
|
||||
* get_age_factor( iv_age )
|
||||
* get_power_factor( iv_power_kw )
|
||||
* get_discount_factor( iv_claim_free_years ).
|
||||
rv_premium = lv_premium.
|
||||
IF rv_premium < 100.
|
||||
rv_premium = 100.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_base_premium.
|
||||
CASE iv_region.
|
||||
WHEN 'A1'.
|
||||
rv_base = 150.
|
||||
WHEN 'B2'.
|
||||
rv_base = 200.
|
||||
WHEN 'C3'.
|
||||
rv_base = 250.
|
||||
WHEN 'D4'.
|
||||
rv_base = 300.
|
||||
WHEN 'E5'.
|
||||
rv_base = 350.
|
||||
WHEN OTHERS.
|
||||
rv_base = 0.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_age_factor.
|
||||
IF iv_age < 25.
|
||||
rv_factor = '1.5'.
|
||||
ELSEIF iv_age > 65.
|
||||
rv_factor = '1.2'.
|
||||
ELSE.
|
||||
rv_factor = '1.0'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_power_factor.
|
||||
IF iv_power_kw <= 50.
|
||||
rv_factor = '0.9'.
|
||||
ELSEIF iv_power_kw <= 100.
|
||||
rv_factor = '1.0'.
|
||||
ELSEIF iv_power_kw <= 150.
|
||||
rv_factor = '1.3'.
|
||||
ELSE.
|
||||
rv_factor = '1.6'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_discount_factor.
|
||||
DATA(lv_discount) = iv_claim_free_years * 5.
|
||||
IF lv_discount > 30.
|
||||
lv_discount = 30.
|
||||
ENDIF.
|
||||
rv_factor = CONV decfloat34( 100 - lv_discount ) / 100.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
96
tasks_gen/eval/G0104/faulty/m1_insurance_premium.clas.abap
Normal file
96
tasks_gen/eval/G0104/faulty/m1_insurance_premium.clas.abap
Normal file
@@ -0,0 +1,96 @@
|
||||
CLASS {{p}}insurance_premium DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES:
|
||||
ty_region TYPE c LENGTH 2,
|
||||
ty_premium TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_premium
|
||||
IMPORTING iv_age TYPE i
|
||||
iv_power_kw TYPE i
|
||||
iv_region TYPE ty_region
|
||||
iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_premium) TYPE ty_premium.
|
||||
PRIVATE SECTION.
|
||||
METHODS get_base_premium
|
||||
IMPORTING iv_region TYPE ty_region
|
||||
RETURNING VALUE(rv_base) TYPE ty_premium.
|
||||
METHODS get_age_factor
|
||||
IMPORTING iv_age TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_power_factor
|
||||
IMPORTING iv_power_kw TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_discount_factor
|
||||
IMPORTING iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS {{p}}insurance_premium IMPLEMENTATION.
|
||||
METHOD calculate_premium.
|
||||
IF iv_age < 18 OR iv_age > 99
|
||||
OR iv_power_kw <= 0
|
||||
OR iv_claim_free_years >= 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_base) = get_base_premium( iv_region ).
|
||||
IF lv_base = 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_premium) = CONV decfloat34( lv_base )
|
||||
* get_age_factor( iv_age )
|
||||
* get_power_factor( iv_power_kw )
|
||||
* get_discount_factor( iv_claim_free_years ).
|
||||
rv_premium = lv_premium.
|
||||
IF rv_premium < 100.
|
||||
rv_premium = 100.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_base_premium.
|
||||
CASE iv_region.
|
||||
WHEN 'A1'.
|
||||
rv_base = 150.
|
||||
WHEN 'B2'.
|
||||
rv_base = 200.
|
||||
WHEN 'C3'.
|
||||
rv_base = 250.
|
||||
WHEN 'D4'.
|
||||
rv_base = 300.
|
||||
WHEN 'E5'.
|
||||
rv_base = 350.
|
||||
WHEN OTHERS.
|
||||
rv_base = 0.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_age_factor.
|
||||
IF iv_age < 25.
|
||||
rv_factor = '1.5'.
|
||||
ELSEIF iv_age > 65.
|
||||
rv_factor = '1.2'.
|
||||
ELSE.
|
||||
rv_factor = '1.0'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_power_factor.
|
||||
IF iv_power_kw <= 50.
|
||||
rv_factor = '0.9'.
|
||||
ELSEIF iv_power_kw <= 100.
|
||||
rv_factor = '1.0'.
|
||||
ELSEIF iv_power_kw <= 150.
|
||||
rv_factor = '1.3'.
|
||||
ELSE.
|
||||
rv_factor = '1.6'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_discount_factor.
|
||||
DATA(lv_discount) = iv_claim_free_years * 5.
|
||||
IF lv_discount > 30.
|
||||
lv_discount = 30.
|
||||
ENDIF.
|
||||
rv_factor = CONV decfloat34( 100 - lv_discount ) / 100.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
96
tasks_gen/eval/G0104/faulty/m2_insurance_premium.clas.abap
Normal file
96
tasks_gen/eval/G0104/faulty/m2_insurance_premium.clas.abap
Normal file
@@ -0,0 +1,96 @@
|
||||
CLASS {{p}}insurance_premium DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES:
|
||||
ty_region TYPE c LENGTH 2,
|
||||
ty_premium TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_premium
|
||||
IMPORTING iv_age TYPE i
|
||||
iv_power_kw TYPE i
|
||||
iv_region TYPE ty_region
|
||||
iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_premium) TYPE ty_premium.
|
||||
PRIVATE SECTION.
|
||||
METHODS get_base_premium
|
||||
IMPORTING iv_region TYPE ty_region
|
||||
RETURNING VALUE(rv_base) TYPE ty_premium.
|
||||
METHODS get_age_factor
|
||||
IMPORTING iv_age TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_power_factor
|
||||
IMPORTING iv_power_kw TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_discount_factor
|
||||
IMPORTING iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS {{p}}insurance_premium IMPLEMENTATION.
|
||||
METHOD calculate_premium.
|
||||
IF iv_age < 18 OR iv_age > 99
|
||||
OR iv_power_kw <= 0
|
||||
OR iv_claim_free_years < 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_base) = get_base_premium( iv_region ).
|
||||
IF lv_base <> 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_premium) = CONV decfloat34( lv_base )
|
||||
* get_age_factor( iv_age )
|
||||
* get_power_factor( iv_power_kw )
|
||||
* get_discount_factor( iv_claim_free_years ).
|
||||
rv_premium = lv_premium.
|
||||
IF rv_premium < 100.
|
||||
rv_premium = 100.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_base_premium.
|
||||
CASE iv_region.
|
||||
WHEN 'A1'.
|
||||
rv_base = 150.
|
||||
WHEN 'B2'.
|
||||
rv_base = 200.
|
||||
WHEN 'C3'.
|
||||
rv_base = 250.
|
||||
WHEN 'D4'.
|
||||
rv_base = 300.
|
||||
WHEN 'E5'.
|
||||
rv_base = 350.
|
||||
WHEN OTHERS.
|
||||
rv_base = 0.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_age_factor.
|
||||
IF iv_age < 25.
|
||||
rv_factor = '1.5'.
|
||||
ELSEIF iv_age > 65.
|
||||
rv_factor = '1.2'.
|
||||
ELSE.
|
||||
rv_factor = '1.0'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_power_factor.
|
||||
IF iv_power_kw <= 50.
|
||||
rv_factor = '0.9'.
|
||||
ELSEIF iv_power_kw <= 100.
|
||||
rv_factor = '1.0'.
|
||||
ELSEIF iv_power_kw <= 150.
|
||||
rv_factor = '1.3'.
|
||||
ELSE.
|
||||
rv_factor = '1.6'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_discount_factor.
|
||||
DATA(lv_discount) = iv_claim_free_years * 5.
|
||||
IF lv_discount > 30.
|
||||
lv_discount = 30.
|
||||
ENDIF.
|
||||
rv_factor = CONV decfloat34( 100 - lv_discount ) / 100.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
96
tasks_gen/eval/G0104/faulty/m3_insurance_premium.clas.abap
Normal file
96
tasks_gen/eval/G0104/faulty/m3_insurance_premium.clas.abap
Normal file
@@ -0,0 +1,96 @@
|
||||
CLASS {{p}}insurance_premium DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES:
|
||||
ty_region TYPE c LENGTH 2,
|
||||
ty_premium TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_premium
|
||||
IMPORTING iv_age TYPE i
|
||||
iv_power_kw TYPE i
|
||||
iv_region TYPE ty_region
|
||||
iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_premium) TYPE ty_premium.
|
||||
PRIVATE SECTION.
|
||||
METHODS get_base_premium
|
||||
IMPORTING iv_region TYPE ty_region
|
||||
RETURNING VALUE(rv_base) TYPE ty_premium.
|
||||
METHODS get_age_factor
|
||||
IMPORTING iv_age TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_power_factor
|
||||
IMPORTING iv_power_kw TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_discount_factor
|
||||
IMPORTING iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS {{p}}insurance_premium IMPLEMENTATION.
|
||||
METHOD calculate_premium.
|
||||
IF iv_age < 18 OR iv_age > 99
|
||||
OR iv_power_kw <= 0
|
||||
OR iv_claim_free_years < 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_base) = get_base_premium( iv_region ).
|
||||
IF lv_base = 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_premium) = CONV decfloat34( lv_base )
|
||||
/ get_age_factor( iv_age )
|
||||
* get_power_factor( iv_power_kw )
|
||||
* get_discount_factor( iv_claim_free_years ).
|
||||
rv_premium = lv_premium.
|
||||
IF rv_premium < 100.
|
||||
rv_premium = 100.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_base_premium.
|
||||
CASE iv_region.
|
||||
WHEN 'A1'.
|
||||
rv_base = 150.
|
||||
WHEN 'B2'.
|
||||
rv_base = 200.
|
||||
WHEN 'C3'.
|
||||
rv_base = 250.
|
||||
WHEN 'D4'.
|
||||
rv_base = 300.
|
||||
WHEN 'E5'.
|
||||
rv_base = 350.
|
||||
WHEN OTHERS.
|
||||
rv_base = 0.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_age_factor.
|
||||
IF iv_age < 25.
|
||||
rv_factor = '1.5'.
|
||||
ELSEIF iv_age > 65.
|
||||
rv_factor = '1.2'.
|
||||
ELSE.
|
||||
rv_factor = '1.0'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_power_factor.
|
||||
IF iv_power_kw <= 50.
|
||||
rv_factor = '0.9'.
|
||||
ELSEIF iv_power_kw <= 100.
|
||||
rv_factor = '1.0'.
|
||||
ELSEIF iv_power_kw <= 150.
|
||||
rv_factor = '1.3'.
|
||||
ELSE.
|
||||
rv_factor = '1.6'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_discount_factor.
|
||||
DATA(lv_discount) = iv_claim_free_years * 5.
|
||||
IF lv_discount > 30.
|
||||
lv_discount = 30.
|
||||
ENDIF.
|
||||
rv_factor = CONV decfloat34( 100 - lv_discount ) / 100.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
96
tasks_gen/eval/G0104/faulty/m4_insurance_premium.clas.abap
Normal file
96
tasks_gen/eval/G0104/faulty/m4_insurance_premium.clas.abap
Normal file
@@ -0,0 +1,96 @@
|
||||
CLASS {{p}}insurance_premium DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES:
|
||||
ty_region TYPE c LENGTH 2,
|
||||
ty_premium TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_premium
|
||||
IMPORTING iv_age TYPE i
|
||||
iv_power_kw TYPE i
|
||||
iv_region TYPE ty_region
|
||||
iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_premium) TYPE ty_premium.
|
||||
PRIVATE SECTION.
|
||||
METHODS get_base_premium
|
||||
IMPORTING iv_region TYPE ty_region
|
||||
RETURNING VALUE(rv_base) TYPE ty_premium.
|
||||
METHODS get_age_factor
|
||||
IMPORTING iv_age TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_power_factor
|
||||
IMPORTING iv_power_kw TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_discount_factor
|
||||
IMPORTING iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS {{p}}insurance_premium IMPLEMENTATION.
|
||||
METHOD calculate_premium.
|
||||
IF iv_age < 18 OR iv_age > 99
|
||||
OR iv_power_kw <= 0
|
||||
OR iv_claim_free_years < 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_base) = get_base_premium( iv_region ).
|
||||
IF lv_base = 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_premium) = CONV decfloat34( lv_base )
|
||||
* get_age_factor( iv_age )
|
||||
* get_power_factor( iv_power_kw )
|
||||
* get_discount_factor( iv_claim_free_years ).
|
||||
rv_premium = lv_premium.
|
||||
IF rv_premium < 100.
|
||||
rv_premium = 100.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_base_premium.
|
||||
CASE iv_region.
|
||||
WHEN 'A1'.
|
||||
rv_base = 150.
|
||||
WHEN 'B2'.
|
||||
rv_base = 200.
|
||||
WHEN 'C3'.
|
||||
rv_base = 250.
|
||||
WHEN 'D4'.
|
||||
rv_base = 300.
|
||||
WHEN 'E5'.
|
||||
rv_base = 350.
|
||||
WHEN OTHERS.
|
||||
rv_base = 0.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_age_factor.
|
||||
IF iv_age < 25.
|
||||
rv_factor = '1.5'.
|
||||
ELSEIF iv_age > 65.
|
||||
rv_factor = '1.2'.
|
||||
ELSE.
|
||||
rv_factor = '1.0'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_power_factor.
|
||||
IF iv_power_kw <= 50.
|
||||
rv_factor = '0.9'.
|
||||
ELSEIF iv_power_kw <= 100.
|
||||
rv_factor = '1.0'.
|
||||
ELSEIF iv_power_kw <= 150.
|
||||
rv_factor = '1.3'.
|
||||
ELSE.
|
||||
rv_factor = '1.6'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_discount_factor.
|
||||
DATA(lv_discount) = iv_claim_free_years * 5.
|
||||
IF lv_discount > 30.
|
||||
lv_discount = 30.
|
||||
ENDIF.
|
||||
rv_factor = CONV decfloat34( 101 - lv_discount ) / 100.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
24
tasks_gen/eval/G0104/generation.json
Normal file
24
tasks_gen/eval/G0104/generation.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"id": "G0104",
|
||||
"pool": "eval",
|
||||
"object_type": "CLAS",
|
||||
"category": "A",
|
||||
"attempts": [
|
||||
{
|
||||
"stage": "validate",
|
||||
"oracle": 91.0,
|
||||
"null": 0
|
||||
},
|
||||
{
|
||||
"stage": "validate",
|
||||
"oracle": 100.0,
|
||||
"null": 0,
|
||||
"mutation": {
|
||||
"valid": 5,
|
||||
"killed": 5,
|
||||
"ok": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"accepted": true
|
||||
}
|
||||
111
tasks_gen/eval/G0104/hidden/t02_hidden.clas.abap
Normal file
111
tasks_gen/eval/G0104/hidden/t02_hidden.clas.abap
Normal file
@@ -0,0 +1,111 @@
|
||||
CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}insurance_premium.
|
||||
METHODS setup.
|
||||
METHODS standard_premium FOR TESTING.
|
||||
METHODS young_driver FOR TESTING.
|
||||
METHODS senior_driver FOR TESTING.
|
||||
METHODS high_power FOR TESTING.
|
||||
METHODS very_high_power FOR TESTING.
|
||||
METHODS low_power FOR TESTING.
|
||||
METHODS claim_free_discount FOR TESTING.
|
||||
METHODS claim_free_capped FOR TESTING.
|
||||
METHODS minimum_premium FOR TESTING.
|
||||
METHODS all_regions FOR TESTING.
|
||||
METHODS invalid_region FOR TESTING.
|
||||
METHODS invalid_inputs FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS {{p}}t02_hidden IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}insurance_premium( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD standard_premium.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 150
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD young_driver.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 225
|
||||
act = mo_cut->calculate_premium( iv_age = 22 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD senior_driver.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 180
|
||||
act = mo_cut->calculate_premium( iv_age = 70 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD high_power.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 195
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 120 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD very_high_power.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 240
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 200 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD low_power.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 135
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 40 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD claim_free_discount.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 180
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'B2' iv_claim_free_years = 2 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD claim_free_capped.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 140
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'B2' iv_claim_free_years = 10 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD minimum_premium.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 100
|
||||
act = mo_cut->calculate_premium( iv_age = 25 iv_power_kw = 50 iv_region = 'A1' iv_claim_free_years = 6 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD all_regions.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 250 msg = 'C3'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'C3' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 300 msg = 'D4'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'D4' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 350 msg = 'E5'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'E5' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_region.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'X9' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_inputs.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0 msg = 'age too low'
|
||||
act = mo_cut->calculate_premium( iv_age = 17 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0 msg = 'age too high'
|
||||
act = mo_cut->calculate_premium( iv_age = 100 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0 msg = 'power too low'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 0 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0 msg = 'negative claim free years'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = -1 ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
83
tasks_gen/eval/G0104/mutation.json
Normal file
83
tasks_gen/eval/G0104/mutation.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"task": "G0104",
|
||||
"mutants": [
|
||||
{
|
||||
"object": "{{P}}INSURANCE_PREMIUM",
|
||||
"mutant": "line 30: OR -> AND (logic)",
|
||||
"status": "killed",
|
||||
"hidden": "11/12",
|
||||
"failed_tests": [
|
||||
"INVALID_INPUTS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}INSURANCE_PREMIUM",
|
||||
"mutant": "line 31: < -> >= (rel)",
|
||||
"status": "killed",
|
||||
"hidden": "1/12",
|
||||
"failed_tests": [
|
||||
"ALL_REGIONS",
|
||||
"CLAIM_FREE_CAPPED",
|
||||
"CLAIM_FREE_DISCOUNT",
|
||||
"HIGH_POWER",
|
||||
"INVALID_INPUTS",
|
||||
"LOW_POWER",
|
||||
"MINIMUM_PREMIUM",
|
||||
"SENIOR_DRIVER",
|
||||
"STANDARD_PREMIUM",
|
||||
"VERY_HIGH_POWER",
|
||||
"YOUNG_DRIVER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}INSURANCE_PREMIUM",
|
||||
"mutant": "line 36: = -> <> (eq)",
|
||||
"status": "killed",
|
||||
"hidden": "1/12",
|
||||
"failed_tests": [
|
||||
"ALL_REGIONS",
|
||||
"CLAIM_FREE_CAPPED",
|
||||
"CLAIM_FREE_DISCOUNT",
|
||||
"HIGH_POWER",
|
||||
"INVALID_REGION",
|
||||
"LOW_POWER",
|
||||
"MINIMUM_PREMIUM",
|
||||
"SENIOR_DRIVER",
|
||||
"STANDARD_PREMIUM",
|
||||
"VERY_HIGH_POWER",
|
||||
"YOUNG_DRIVER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}INSURANCE_PREMIUM",
|
||||
"mutant": "line 41: * -> / (arith)",
|
||||
"status": "killed",
|
||||
"hidden": "10/12",
|
||||
"failed_tests": [
|
||||
"SENIOR_DRIVER",
|
||||
"YOUNG_DRIVER"
|
||||
]
|
||||
},
|
||||
{
|
||||
"object": "{{P}}INSURANCE_PREMIUM",
|
||||
"mutant": "line 94: 100 -> 101 (const)",
|
||||
"status": "killed",
|
||||
"hidden": "3/12",
|
||||
"failed_tests": [
|
||||
"ALL_REGIONS",
|
||||
"CLAIM_FREE_CAPPED",
|
||||
"CLAIM_FREE_DISCOUNT",
|
||||
"HIGH_POWER",
|
||||
"LOW_POWER",
|
||||
"SENIOR_DRIVER",
|
||||
"STANDARD_PREMIUM",
|
||||
"VERY_HIGH_POWER",
|
||||
"YOUNG_DRIVER"
|
||||
]
|
||||
}
|
||||
],
|
||||
"valid": 5,
|
||||
"killed": 5,
|
||||
"kill_rate": 1.0,
|
||||
"ok": true
|
||||
}
|
||||
96
tasks_gen/eval/G0104/reference/insurance_premium.clas.abap
Normal file
96
tasks_gen/eval/G0104/reference/insurance_premium.clas.abap
Normal file
@@ -0,0 +1,96 @@
|
||||
CLASS {{p}}insurance_premium DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES:
|
||||
ty_region TYPE c LENGTH 2,
|
||||
ty_premium TYPE p LENGTH 8 DECIMALS 2.
|
||||
METHODS calculate_premium
|
||||
IMPORTING iv_age TYPE i
|
||||
iv_power_kw TYPE i
|
||||
iv_region TYPE ty_region
|
||||
iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_premium) TYPE ty_premium.
|
||||
PRIVATE SECTION.
|
||||
METHODS get_base_premium
|
||||
IMPORTING iv_region TYPE ty_region
|
||||
RETURNING VALUE(rv_base) TYPE ty_premium.
|
||||
METHODS get_age_factor
|
||||
IMPORTING iv_age TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_power_factor
|
||||
IMPORTING iv_power_kw TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
METHODS get_discount_factor
|
||||
IMPORTING iv_claim_free_years TYPE i
|
||||
RETURNING VALUE(rv_factor) TYPE decfloat34.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS {{p}}insurance_premium IMPLEMENTATION.
|
||||
METHOD calculate_premium.
|
||||
IF iv_age < 18 OR iv_age > 99
|
||||
OR iv_power_kw <= 0
|
||||
OR iv_claim_free_years < 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_base) = get_base_premium( iv_region ).
|
||||
IF lv_base = 0.
|
||||
rv_premium = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_premium) = CONV decfloat34( lv_base )
|
||||
* get_age_factor( iv_age )
|
||||
* get_power_factor( iv_power_kw )
|
||||
* get_discount_factor( iv_claim_free_years ).
|
||||
rv_premium = lv_premium.
|
||||
IF rv_premium < 100.
|
||||
rv_premium = 100.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_base_premium.
|
||||
CASE iv_region.
|
||||
WHEN 'A1'.
|
||||
rv_base = 150.
|
||||
WHEN 'B2'.
|
||||
rv_base = 200.
|
||||
WHEN 'C3'.
|
||||
rv_base = 250.
|
||||
WHEN 'D4'.
|
||||
rv_base = 300.
|
||||
WHEN 'E5'.
|
||||
rv_base = 350.
|
||||
WHEN OTHERS.
|
||||
rv_base = 0.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_age_factor.
|
||||
IF iv_age < 25.
|
||||
rv_factor = '1.5'.
|
||||
ELSEIF iv_age > 65.
|
||||
rv_factor = '1.2'.
|
||||
ELSE.
|
||||
rv_factor = '1.0'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_power_factor.
|
||||
IF iv_power_kw <= 50.
|
||||
rv_factor = '0.9'.
|
||||
ELSEIF iv_power_kw <= 100.
|
||||
rv_factor = '1.0'.
|
||||
ELSEIF iv_power_kw <= 150.
|
||||
rv_factor = '1.3'.
|
||||
ELSE.
|
||||
rv_factor = '1.6'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_discount_factor.
|
||||
DATA(lv_discount) = iv_claim_free_years * 5.
|
||||
IF lv_discount > 30.
|
||||
lv_discount = 30.
|
||||
ENDIF.
|
||||
rv_factor = CONV decfloat34( 100 - lv_discount ) / 100.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
@@ -0,0 +1,110 @@
|
||||
CLASS ltc_insurance_premium DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
DATA mo_cut TYPE REF TO {{p}}insurance_premium.
|
||||
METHODS setup.
|
||||
METHODS standard_premium FOR TESTING.
|
||||
METHODS young_driver FOR TESTING.
|
||||
METHODS senior_driver FOR TESTING.
|
||||
METHODS high_power FOR TESTING.
|
||||
METHODS very_high_power FOR TESTING.
|
||||
METHODS low_power FOR TESTING.
|
||||
METHODS claim_free_discount FOR TESTING.
|
||||
METHODS claim_free_capped FOR TESTING.
|
||||
METHODS minimum_premium FOR TESTING.
|
||||
METHODS all_regions FOR TESTING.
|
||||
METHODS invalid_region FOR TESTING.
|
||||
METHODS invalid_inputs FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltc_insurance_premium IMPLEMENTATION.
|
||||
METHOD setup.
|
||||
mo_cut = NEW {{p}}insurance_premium( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD standard_premium.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 150
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD young_driver.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 225
|
||||
act = mo_cut->calculate_premium( iv_age = 22 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD senior_driver.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 180
|
||||
act = mo_cut->calculate_premium( iv_age = 70 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD high_power.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 195
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 120 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD very_high_power.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 240
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 200 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD low_power.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 135
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 40 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD claim_free_discount.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 180
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'B2' iv_claim_free_years = 2 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD claim_free_capped.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 140
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'B2' iv_claim_free_years = 10 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD minimum_premium.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 100
|
||||
act = mo_cut->calculate_premium( iv_age = 25 iv_power_kw = 50 iv_region = 'A1' iv_claim_free_years = 6 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD all_regions.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 250 msg = 'C3'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'C3' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 300 msg = 'D4'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'D4' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 350 msg = 'E5'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'E5' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_region.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'X9' iv_claim_free_years = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD invalid_inputs.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0 msg = 'age too low'
|
||||
act = mo_cut->calculate_premium( iv_age = 17 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0 msg = 'age too high'
|
||||
act = mo_cut->calculate_premium( iv_age = 100 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0 msg = 'power too low'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 0 iv_region = 'A1' iv_claim_free_years = 0 ) ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0 msg = 'negative claim free years'
|
||||
act = mo_cut->calculate_premium( iv_age = 30 iv_power_kw = 80 iv_region = 'A1' iv_claim_free_years = -1 ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
63
tasks_gen/eval/G0104/spec.md
Normal file
63
tasks_gen/eval/G0104/spec.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# 1. Goal
|
||||
Calculate the annual premium of a car insurance policy. An insurance program calls the calculation before it sends an offer to a customer. The program needs one premium for each policy.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- Package $TMP.
|
||||
- No other objects are required.
|
||||
|
||||
# 4. Contract
|
||||
- Create the class {{P}}INSURANCE_PREMIUM in package $TMP.
|
||||
- The class is public, final, and has a public constructor without parameters.
|
||||
- The class has the public type TY_REGION (CHAR 2) and TY_PREMIUM (P LENGTH 8 DECIMALS 2).
|
||||
- The class has one public method:
|
||||
CALCULATE_PREMIUM
|
||||
IMPORTING
|
||||
iv_age TYPE i
|
||||
iv_power_kw TYPE i
|
||||
iv_region TYPE ty_region
|
||||
iv_claim_free_years TYPE i
|
||||
RETURNING
|
||||
VALUE(rv_premium) TYPE ty_premium.
|
||||
- Do not add other public methods.
|
||||
|
||||
# 5. Business rules
|
||||
Apply the rules in this sequence.
|
||||
1. Validate the inputs:
|
||||
- iv_age must be between 18 and 99.
|
||||
- iv_power_kw must be greater than 0.
|
||||
- iv_claim_free_years must not be negative.
|
||||
- iv_region must be one of the known regions (see rule 2).
|
||||
If any check fails, return 0.
|
||||
2. The base premium depends on the region:
|
||||
A1: 150, B2: 200, C3: 250, D4: 300, E5: 350.
|
||||
3. The age factor:
|
||||
- age < 25: 1.5
|
||||
- 25 <= age <= 65: 1.0
|
||||
- age > 65: 1.2
|
||||
4. The power factor:
|
||||
- power <= 50 kW: 0.9
|
||||
- 51 <= power <= 100 kW: 1.0
|
||||
- 101 <= power <= 150 kW: 1.3
|
||||
- power > 150 kW: 1.6
|
||||
5. The claim-free discount:
|
||||
- Each claim-free year gives a 5% discount.
|
||||
- The maximum discount is 30%.
|
||||
- The discount factor is 1 minus the discount (e.g., 0 claim-free years: 1.0, 6 or more: 0.7).
|
||||
6. Calculate the premium:
|
||||
premium = base premium * age factor * power factor * discount factor.
|
||||
Calculate with full precision and round the final result to 2 decimals.
|
||||
7. If the rounded premium is less than 100, return 100.
|
||||
8. Else return the rounded premium.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: 7.58.
|
||||
- Coding standards: Clean ABAP. Method length below 40 statements. No global variables. No comment that restates the code. One statement per line.
|
||||
- Out of scope: do not create other objects.
|
||||
|
||||
# 7. Acceptance
|
||||
- The class is active and has no syntax error.
|
||||
- The hidden tests pass.
|
||||
- Write your own ABAP Unit tests for the class.
|
||||
40
tasks_gen/eval/G0104/task.json
Normal file
40
tasks_gen/eval/G0104/task.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"id": "G0104",
|
||||
"category": "A",
|
||||
"object_type": "CLAS",
|
||||
"difficulty": 2,
|
||||
"release_target": "v758",
|
||||
"expected_outcome": "implement",
|
||||
"budget": {
|
||||
"max_tool_calls": 40,
|
||||
"max_activations": 10
|
||||
},
|
||||
"seed": [],
|
||||
"contract": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}INSURANCE_PREMIUM"
|
||||
}
|
||||
],
|
||||
"out_of_scope": [],
|
||||
"hidden_tests": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}T02_HIDDEN",
|
||||
"file": "hidden/t02_hidden.clas.abap",
|
||||
"description": "T02 hidden tests"
|
||||
}
|
||||
],
|
||||
"reference": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}INSURANCE_PREMIUM",
|
||||
"file": "reference/insurance_premium.clas.abap",
|
||||
"description": "Insurance premium calculator",
|
||||
"testclasses_file": "reference/insurance_premium.testclasses.abap"
|
||||
}
|
||||
],
|
||||
"craft_checks": [
|
||||
"method_length"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user