Step F first pass: 81/92 accepted; budget floor 60 calls; rejected slots moved for regeneration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
18
tasks_gen/eval/G0182/empirical.json
Normal file
18
tasks_gen/eval/G0182/empirical.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"deepseek-v4.1-flash:cloud": {
|
||||
"score": 77.0,
|
||||
"parts": {
|
||||
"correctness": 40.0,
|
||||
"craft": 20.0,
|
||||
"clean": 12.0,
|
||||
"own_tests": 0.0,
|
||||
"discipline": 5.0,
|
||||
"total": 77.0,
|
||||
"note": "own_tests: faulty-reference part not implemented in skeleton"
|
||||
},
|
||||
"hidden": "8/8",
|
||||
"tool_calls": 40,
|
||||
"seconds": 164.6,
|
||||
"run_dir": "runs/emp/10009_G0017_llm_deepseek-v4.1-flash_cloud"
|
||||
}
|
||||
}
|
||||
16
tasks_gen/eval/G0182/generation.json
Normal file
16
tasks_gen/eval/G0182/generation.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"id": "G0182",
|
||||
"pool": "eval",
|
||||
"category": "K",
|
||||
"base_task": "G0017",
|
||||
"style": "free_text",
|
||||
"tool_schema": "generic_v0",
|
||||
"attempts": [
|
||||
{
|
||||
"stage": "validate",
|
||||
"oracle": 100.0,
|
||||
"null": 0
|
||||
}
|
||||
],
|
||||
"accepted": true
|
||||
}
|
||||
86
tasks_gen/eval/G0182/hidden/t21_hidden.clas.abap
Normal file
86
tasks_gen/eval/G0182/hidden/t21_hidden.clas.abap
Normal file
@@ -0,0 +1,86 @@
|
||||
CLASS {{p}}t21_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
|
||||
CLASS-METHODS class_setup.
|
||||
CLASS-METHODS class_teardown.
|
||||
METHODS setup.
|
||||
METHODS cost_of_project_one FOR TESTING.
|
||||
METHODS hours_of_project_one FOR TESTING.
|
||||
METHODS count_of_project_one FOR TESTING.
|
||||
METHODS no_active_assignment FOR TESTING.
|
||||
METHODS row_count FOR TESTING.
|
||||
METHODS over_budget_flag FOR TESTING.
|
||||
METHODS budget_not_exceeded FOR TESTING.
|
||||
METHODS project_name_shown FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t21_hidden IMPLEMENTATION.
|
||||
METHOD class_setup.
|
||||
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_PROJ_EFFORT' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD class_teardown.
|
||||
go_env->destroy( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD setup.
|
||||
DATA lt_proj TYPE STANDARD TABLE OF {{p}}proj WITH EMPTY KEY.
|
||||
DATA lt_asgn TYPE STANDARD TABLE OF {{p}}asgn WITH EMPTY KEY.
|
||||
go_env->clear_doubles( ).
|
||||
lt_proj = VALUE #( ( proj_id = 'P1' proj_name = 'ALPHA' budget = '500.00' )
|
||||
( proj_id = 'P2' proj_name = 'BETA' budget = '100.00' )
|
||||
( proj_id = 'P3' proj_name = 'GAMMA' budget = '1000.00' )
|
||||
( proj_id = 'P4' proj_name = 'DELTA' budget = '50.00' ) ).
|
||||
lt_asgn = VALUE #( ( proj_id = 'P1' emp_id = 'E1' work_hours = 10 rate = '50.00' status = 'A' )
|
||||
( proj_id = 'P1' emp_id = 'E2' work_hours = 4 rate = '25.00' status = 'A' )
|
||||
( proj_id = 'P1' emp_id = 'E3' work_hours = 8 rate = '100.00' status = 'I' )
|
||||
( proj_id = 'P2' emp_id = 'E1' work_hours = 2 rate = '50.00' status = 'A' )
|
||||
( proj_id = 'P4' emp_id = 'E2' work_hours = 5 rate = '10.00' status = 'I' ) ).
|
||||
go_env->insert_test_data( lt_proj ).
|
||||
go_env->insert_test_data( lt_asgn ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD cost_of_project_one.
|
||||
SELECT SINGLE total_cost FROM {{p}}i_proj_effort WHERE proj_id = 'P1' INTO @DATA(lv_cost).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '600.00' )
|
||||
act = CONV decfloat34( lv_cost ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD hours_of_project_one.
|
||||
SELECT SINGLE total_hours FROM {{p}}i_proj_effort WHERE proj_id = 'P1' INTO @DATA(lv_hours).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV i( lv_hours ) act = 14 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD count_of_project_one.
|
||||
SELECT SINGLE assign_count FROM {{p}}i_proj_effort WHERE proj_id = 'P1' INTO @DATA(lv_count).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV i( lv_count ) act = 2 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD no_active_assignment.
|
||||
SELECT SINGLE proj_name FROM {{p}}i_proj_effort WHERE proj_id = 'P4' INTO @DATA(lv_name).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = sy-subrc ).
|
||||
cl_abap_unit_assert=>assert_initial( lv_name ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD row_count.
|
||||
SELECT COUNT(*) FROM {{p}}i_proj_effort INTO @DATA(lv_rows).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV i( lv_rows ) act = 2 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD over_budget_flag.
|
||||
SELECT SINGLE over_budget FROM {{p}}i_proj_effort WHERE proj_id = 'P1' INTO @DATA(lv_flag).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = lv_flag ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD budget_not_exceeded.
|
||||
SELECT SINGLE over_budget FROM {{p}}i_proj_effort WHERE proj_id = 'P2' INTO @DATA(lv_flag).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'N' act = lv_flag ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD project_name_shown.
|
||||
SELECT SINGLE proj_name FROM {{p}}i_proj_effort WHERE proj_id = 'P2' INTO @DATA(lv_name).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'BETA' act = lv_name ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
22
tasks_gen/eval/G0182/reference/i_proj_effort.ddls.asddls
Normal file
22
tasks_gen/eval/G0182/reference/i_proj_effort.ddls.asddls
Normal file
@@ -0,0 +1,22 @@
|
||||
@AccessControl.authorizationCheck: #NOT_REQUIRED
|
||||
@EndUserText.label: 'Project effort'
|
||||
define view entity {{P}}I_PROJ_EFFORT
|
||||
as select from {{p}}proj as proj
|
||||
inner join {{p}}asgn as asgn on asgn.proj_id = proj.proj_id
|
||||
{
|
||||
key proj.proj_id as proj_id,
|
||||
proj.proj_name as proj_name,
|
||||
count( * ) as assign_count,
|
||||
sum( asgn.work_hours ) as total_hours,
|
||||
sum( cast( asgn.work_hours as abap.dec( 15, 2 ) ) * asgn.rate ) as total_cost,
|
||||
case
|
||||
when sum( cast( asgn.work_hours as abap.dec( 15, 2 ) ) * asgn.rate ) > proj.budget
|
||||
then 'X'
|
||||
else 'N'
|
||||
end as over_budget
|
||||
}
|
||||
where asgn.status = 'A'
|
||||
group by
|
||||
proj.proj_id,
|
||||
proj.proj_name,
|
||||
proj.budget
|
||||
53
tasks_gen/eval/G0182/reference/t21_test.clas.abap
Normal file
53
tasks_gen/eval/G0182/reference/t21_test.clas.abap
Normal file
@@ -0,0 +1,53 @@
|
||||
CLASS {{p}}t21_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
||||
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||
PRIVATE SECTION.
|
||||
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
|
||||
CLASS-METHODS class_setup.
|
||||
CLASS-METHODS class_teardown.
|
||||
METHODS setup.
|
||||
METHODS effort_of_one_project FOR TESTING.
|
||||
METHODS no_active_assignment FOR TESTING.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t21_test IMPLEMENTATION.
|
||||
METHOD class_setup.
|
||||
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_PROJ_EFFORT' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD class_teardown.
|
||||
go_env->destroy( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD setup.
|
||||
DATA lt_proj TYPE STANDARD TABLE OF {{p}}proj WITH EMPTY KEY.
|
||||
DATA lt_asgn TYPE STANDARD TABLE OF {{p}}asgn WITH EMPTY KEY.
|
||||
go_env->clear_doubles( ).
|
||||
lt_proj = VALUE #( ( proj_id = 'A' proj_name = 'ONE' budget = '100.00' )
|
||||
( proj_id = 'B' proj_name = 'TWO' budget = '10.00' ) ).
|
||||
lt_asgn = VALUE #( ( proj_id = 'A' emp_id = 'E1' work_hours = 2 rate = '10.00' status = 'A' )
|
||||
( proj_id = 'A' emp_id = 'E2' work_hours = 1 rate = '5.00' status = 'A' )
|
||||
( proj_id = 'A' emp_id = 'E3' work_hours = 9 rate = '9.00' status = 'I' )
|
||||
( proj_id = 'B' emp_id = 'E1' work_hours = 3 rate = '1.00' status = 'I' ) ).
|
||||
go_env->insert_test_data( lt_proj ).
|
||||
go_env->insert_test_data( lt_asgn ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD effort_of_one_project.
|
||||
SELECT SINGLE assign_count, total_hours, total_cost, over_budget
|
||||
FROM {{p}}i_proj_effort
|
||||
WHERE proj_id = 'A'
|
||||
INTO @DATA(ls_effort).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV i( ls_effort-assign_count ) act = 2 ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV i( ls_effort-total_hours ) act = 3 ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '25.00' )
|
||||
act = CONV decfloat34( ls_effort-total_cost ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'N' act = ls_effort-over_budget ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD no_active_assignment.
|
||||
SELECT SINGLE proj_id FROM {{p}}i_proj_effort WHERE proj_id = 'B' INTO @DATA(lv_proj_id).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = sy-subrc ).
|
||||
cl_abap_unit_assert=>assert_initial( lv_proj_id ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
7
tasks_gen/eval/G0182/review.json
Normal file
7
tasks_gen/eval/G0182/review.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"decision": "accept",
|
||||
"note": "Survived inner->left outer join is equivalent (WHERE on the right table).",
|
||||
"by": "Claude",
|
||||
"date": "2026-10-03",
|
||||
"failed_checks": {}
|
||||
}
|
||||
13
tasks_gen/eval/G0182/seed/asgn.tabl.asabap
Normal file
13
tasks_gen/eval/G0182/seed/asgn.tabl.asabap
Normal file
@@ -0,0 +1,13 @@
|
||||
@EndUserText.label : 'Project assignment'
|
||||
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
|
||||
@AbapCatalog.tableCategory : #TRANSPARENT
|
||||
@AbapCatalog.deliveryClass : #A
|
||||
@AbapCatalog.dataMaintenance : #RESTRICTED
|
||||
define table {{p}}asgn {
|
||||
key client : abap.clnt not null;
|
||||
key proj_id : abap.char(10) not null;
|
||||
key emp_id : abap.char(10) not null;
|
||||
work_hours : abap.int4;
|
||||
rate : abap.dec(15,2);
|
||||
status : abap.char(1);
|
||||
}
|
||||
11
tasks_gen/eval/G0182/seed/proj.tabl.asabap
Normal file
11
tasks_gen/eval/G0182/seed/proj.tabl.asabap
Normal file
@@ -0,0 +1,11 @@
|
||||
@EndUserText.label : 'Project'
|
||||
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
|
||||
@AbapCatalog.tableCategory : #TRANSPARENT
|
||||
@AbapCatalog.deliveryClass : #A
|
||||
@AbapCatalog.dataMaintenance : #RESTRICTED
|
||||
define table {{p}}proj {
|
||||
key client : abap.clnt not null;
|
||||
key proj_id : abap.char(10) not null;
|
||||
proj_name : abap.char(30);
|
||||
budget : abap.dec(15,2);
|
||||
}
|
||||
3
tasks_gen/eval/G0182/spec.md
Normal file
3
tasks_gen/eval/G0182/spec.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Hello,
|
||||
|
||||
Please create the CDS view entity {{P}}I_PROJ_EFFORT in package $TMP. A report and an OData service read the project effort. The calculation must be in the database, in a CDS view. Use table {{P}}PROJ for projects. Its key is PROJ_ID with CHAR 10. Its fields are PROJ_NAME with CHAR 30 and BUDGET with DEC 15,2. Use table {{P}}ASGN for project assignments. Its key is PROJ_ID with CHAR 10 and EMP_ID with CHAR 10. Its fields are WORK_HOURS with INT4, RATE with DEC 15,2, and STATUS with CHAR 1. Both tables are in package $TMP. Do not change {{P}}PROJ and {{P}}ASGN. The view must have these elements: PROJ_ID as key, PROJ_NAME, ASSIGN_COUNT, TOTAL_HOURS, TOTAL_COST, and OVER_BUDGET. Do not do an authorization check. Use #NOT_REQUIRED. Show one row for each project that has at least one active assignment. An assignment is active when its STATUS is 'A'. An assignment with another status is not active. A project without active assignments does not appear in the view. ASSIGN_COUNT is the number of active assignments of the project. TOTAL_HOURS is the sum of WORK_HOURS of the active assignments of the project. TOTAL_COST is the sum of WORK_HOURS multiplied by RATE of the active assignments of the project, with 2 decimals. OVER_BUDGET is 'X' when TOTAL_COST is greater than the BUDGET of the project. Otherwise OVER_BUDGET is 'N'. The release target is 7.58. Follow Clean ABAP coding standards. The view must be active and have no syntax error. The hidden tests must pass. Write ABAP Unit tests with CL_CDS_TEST_ENVIRONMENT in a global test class. There are no open questions.
|
||||
70
tasks_gen/eval/G0182/task.json
Normal file
70
tasks_gen/eval/G0182/task.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"id": "G0182",
|
||||
"category": "K",
|
||||
"object_type": "DDLS",
|
||||
"difficulty": 2,
|
||||
"release_target": "v758",
|
||||
"expected_outcome": "implement",
|
||||
"budget": {
|
||||
"max_tool_calls": 60,
|
||||
"max_activations": 15
|
||||
},
|
||||
"seed": [
|
||||
{
|
||||
"type": "TABL",
|
||||
"name": "{{P}}PROJ",
|
||||
"file": "seed/proj.tabl.asabap",
|
||||
"description": "Project"
|
||||
},
|
||||
{
|
||||
"type": "TABL",
|
||||
"name": "{{P}}ASGN",
|
||||
"file": "seed/asgn.tabl.asabap",
|
||||
"description": "Project assignment"
|
||||
}
|
||||
],
|
||||
"contract": [
|
||||
{
|
||||
"type": "DDLS",
|
||||
"name": "{{P}}I_PROJ_EFFORT",
|
||||
"fields": [
|
||||
"PROJ_ID",
|
||||
"PROJ_NAME",
|
||||
"ASSIGN_COUNT",
|
||||
"TOTAL_HOURS",
|
||||
"TOTAL_COST",
|
||||
"OVER_BUDGET"
|
||||
]
|
||||
}
|
||||
],
|
||||
"out_of_scope": [
|
||||
"{{P}}PROJ",
|
||||
"{{P}}ASGN"
|
||||
],
|
||||
"hidden_tests": [
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}T21_HIDDEN",
|
||||
"file": "hidden/t21_hidden.clas.abap",
|
||||
"description": "T21 hidden tests"
|
||||
}
|
||||
],
|
||||
"reference": [
|
||||
{
|
||||
"type": "DDLS",
|
||||
"name": "{{P}}I_PROJ_EFFORT",
|
||||
"file": "reference/i_proj_effort.ddls.asddls",
|
||||
"description": "Project effort"
|
||||
},
|
||||
{
|
||||
"type": "CLAS",
|
||||
"name": "{{P}}T21_TEST",
|
||||
"file": "reference/t21_test.clas.abap",
|
||||
"description": "T21 own tests"
|
||||
}
|
||||
],
|
||||
"craft_checks": [],
|
||||
"base_task": "G0017",
|
||||
"input_style": "free_text",
|
||||
"tool_schema": "generic_v0"
|
||||
}
|
||||
Reference in New Issue
Block a user