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:
Kral
2026-10-03 12:10:52 +02:00
parent d3250acfb8
commit 39769afce8
741 changed files with 40573 additions and 317 deletions

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 80.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 80.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "8/8",
"tool_calls": 40,
"seconds": 174.6,
"run_dir": "runs/emp/10012_G0020_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -0,0 +1,16 @@
{
"id": "G0183",
"pool": "eval",
"category": "K",
"base_task": "G0020",
"style": "incomplete",
"tool_schema": "generic_v0",
"attempts": [
{
"stage": "validate",
"oracle": 100.0,
"null": 0
}
],
"accepted": true
}

View File

@@ -0,0 +1,157 @@
CLASS {{p}}t20_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 revenue_in_period FOR TESTING.
METHODS sold_quantity_in_period FOR TESTING.
METHODS books_in_period FOR TESTING.
METHODS title_and_category FOR TESTING.
METHODS revenue_has_two_decimals FOR TESTING.
METHODS period_limits_included FOR TESTING.
METHODS empty_period FOR TESTING.
METHODS book_outside_period_hidden FOR TESTING.
ENDCLASS.
CLASS {{p}}t20_hidden IMPLEMENTATION.
METHOD class_setup.
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_BOOK_REVENUE' ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
DATA lt_book TYPE STANDARD TABLE OF {{p}}book WITH EMPTY KEY.
DATA lt_sale TYPE STANDARD TABLE OF {{p}}sale WITH EMPTY KEY.
go_env->clear_doubles( ).
lt_book = VALUE #(
( book_id = 'B1' title = 'ABAP Basics' category = 'TECH' price = '40.00' )
( book_id = 'B2' title = 'SQL Guide' category = 'TECH' price = '25.50' )
( book_id = 'B3' title = 'Cooking Fun' category = 'HOME' price = '15.00' )
( book_id = 'B4' title = 'Space Novel' category = 'FICTION' price = '9.99' )
( book_id = 'B5' title = 'Old Book' category = 'TECH' price = '5.00' ) ).
lt_sale = VALUE #(
( book_id = 'B1' sale_date = '20240110' quantity = 2 )
( book_id = 'B1' sale_date = '20240215' quantity = 1 )
( book_id = 'B1' sale_date = '20240601' quantity = 5 )
( book_id = 'B2' sale_date = '20240120' quantity = 4 )
( book_id = 'B3' sale_date = '20240305' quantity = 3 )
( book_id = 'B4' sale_date = '20240201' quantity = 1 )
( book_id = 'B4' sale_date = '20240202' quantity = 2 )
( book_id = 'B5' sale_date = '20240615' quantity = 7 ) ).
go_env->insert_test_data( lt_book ).
go_env->insert_test_data( lt_sale ).
ENDMETHOD.
METHOD revenue_in_period.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240101'.
lv_to = '20240331'.
SELECT SINGLE revenue
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'B1'
INTO @DATA(lv_revenue).
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '120.00' )
act = CONV decfloat34( lv_revenue ) ).
ENDMETHOD.
METHOD sold_quantity_in_period.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240101'.
lv_to = '20240331'.
SELECT SINGLE sold_quantity
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'B1'
INTO @DATA(lv_sold).
cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( lv_sold ) ).
ENDMETHOD.
METHOD books_in_period.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240101'.
lv_to = '20240331'.
SELECT COUNT(*)
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
INTO @DATA(lv_rows).
cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_rows ).
ENDMETHOD.
METHOD title_and_category.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240101'.
lv_to = '20240331'.
SELECT SINGLE title, category
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'B2'
INTO @DATA(ls_row).
cl_abap_unit_assert=>assert_equals( exp = 'SQL Guide' act = ls_row-title ).
cl_abap_unit_assert=>assert_equals( exp = 'TECH' act = ls_row-category ).
ENDMETHOD.
METHOD revenue_has_two_decimals.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240101'.
lv_to = '20240331'.
SELECT SINGLE revenue
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'B4'
INTO @DATA(lv_revenue).
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '29.97' )
act = CONV decfloat34( lv_revenue ) ).
ENDMETHOD.
METHOD period_limits_included.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240110'.
lv_to = '20240110'.
SELECT SINGLE sold_quantity
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'B1'
INTO @DATA(lv_sold_b1).
cl_abap_unit_assert=>assert_equals( exp = 2 act = CONV i( lv_sold_b1 ) ).
lv_from = '20240305'.
lv_to = '20240305'.
SELECT SINGLE sold_quantity
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'B3'
INTO @DATA(lv_sold_b3).
cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( lv_sold_b3 ) ).
ENDMETHOD.
METHOD empty_period.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240501'.
lv_to = '20240531'.
SELECT COUNT(*)
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
INTO @DATA(lv_rows).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rows ).
ENDMETHOD.
METHOD book_outside_period_hidden.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240101'.
lv_to = '20240331'.
SELECT SINGLE book_id
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'B5'
INTO @DATA(lv_book).
cl_abap_unit_assert=>assert_initial( lv_book ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,20 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Book revenue in period'
define view entity {{P}}I_BOOK_REVENUE
with parameters
p_from : abap.dats,
p_to : abap.dats
as select from {{p}}book as bk
inner join {{p}}sale as sl on sl.book_id = bk.book_id
{
key bk.book_id as book_id,
bk.title as title,
bk.category as category,
sum( sl.quantity ) as sold_quantity,
sum( cast( sl.quantity as abap.dec( 10, 0 ) ) * bk.price ) as revenue
}
where sl.sale_date between $parameters.p_from and $parameters.p_to
group by
bk.book_id,
bk.title,
bk.category

View File

@@ -0,0 +1,62 @@
CLASS {{p}}t20_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 revenue_of_one_book FOR TESTING.
METHODS period_is_inclusive FOR TESTING.
ENDCLASS.
CLASS {{p}}t20_test IMPLEMENTATION.
METHOD class_setup.
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_BOOK_REVENUE' ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
DATA lt_book TYPE STANDARD TABLE OF {{p}}book WITH EMPTY KEY.
DATA lt_sale TYPE STANDARD TABLE OF {{p}}sale WITH EMPTY KEY.
go_env->clear_doubles( ).
lt_book = VALUE #(
( book_id = 'A1' title = 'Test Book' category = 'TECH' price = '10.00' ) ).
lt_sale = VALUE #(
( book_id = 'A1' sale_date = '20240101' quantity = 2 )
( book_id = 'A1' sale_date = '20240131' quantity = 3 )
( book_id = 'A1' sale_date = '20240201' quantity = 9 ) ).
go_env->insert_test_data( lt_book ).
go_env->insert_test_data( lt_sale ).
ENDMETHOD.
METHOD revenue_of_one_book.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240101'.
lv_to = '20240131'.
SELECT SINGLE sold_quantity, revenue
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'A1'
INTO @DATA(ls_row).
cl_abap_unit_assert=>assert_equals( exp = 5 act = CONV i( ls_row-sold_quantity ) ).
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '50.00' )
act = CONV decfloat34( ls_row-revenue ) ).
ENDMETHOD.
METHOD period_is_inclusive.
DATA lv_from TYPE d.
DATA lv_to TYPE d.
lv_from = '20240101'.
lv_to = '20240101'.
SELECT SINGLE sold_quantity
FROM {{p}}i_book_revenue( p_from = @lv_from, p_to = @lv_to )
WHERE book_id = 'A1'
INTO @DATA(lv_sold).
cl_abap_unit_assert=>assert_equals( exp = 2 act = CONV i( lv_sold ) ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,7 @@
{
"decision": "accept",
"note": "Survived join mutant is equivalent (WHERE on the right table).",
"by": "Claude",
"date": "2026-10-03",
"failed_checks": {}
}

View File

@@ -0,0 +1,13 @@
@EndUserText.label : 'Book master data'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table {{p}}book {
key client : abap.clnt not null;
key book_id : abap.char(10) not null;
title : abap.char(40);
category : abap.char(10);
price : abap.dec(15,2);
stock : abap.int4;
}

View File

@@ -0,0 +1,11 @@
@EndUserText.label : 'Book sales'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table {{p}}sale {
key client : abap.clnt not null;
key book_id : abap.char(10) not null;
key sale_date : abap.dats not null;
quantity : abap.int4;
}

View File

@@ -0,0 +1 @@
Create the CDS view entity {{P}}I_BOOK_REVENUE in package $TMP. The view shows the sales of each book for the period given by input parameters P_FROM (DATS) and P_TO (DATS). P_FROM is the first day of the period. P_TO is the last day of the period. Both limits belong to the period. The view has one row for each book that has at least one sale whose sale date is in the period. A book without a sale in the period has no row. The elements are BOOK_ID as key, TITLE, CATEGORY, SOLD_QUANTITY, and REVENUE. SOLD_QUANTITY is the sum of QUANTITY of all sales of the book in the period. REVENUE is the sum of QUANTITY multiplied by PRICE of the book over all sales of the book in the period. REVENUE has 2 decimals. TITLE and CATEGORY are the title and category of the book. No authorization check is required. Create the global ABAP Unit test class {{P}}T20_TEST for the view. The view must be active and have no syntax error. The hidden tests must pass. {{P}}T20_TEST must use CL_CDS_TEST_ENVIRONMENT and pass. Release target is 7.58. Do not change {{P}}BOOK and {{P}}SALE.

View File

@@ -0,0 +1,79 @@
{
"id": "G0183",
"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}}BOOK",
"file": "seed/book.tabl.asabap",
"description": "Book master data"
},
{
"type": "TABL",
"name": "{{P}}SALE",
"file": "seed/sale.tabl.asabap",
"description": "Book sales"
}
],
"contract": [
{
"type": "DDLS",
"name": "{{P}}I_BOOK_REVENUE",
"fields": [
"BOOK_ID",
"TITLE",
"CATEGORY",
"SOLD_QUANTITY",
"REVENUE"
],
"parameters": [
{
"name": "P_FROM",
"type": "DATS"
},
{
"name": "P_TO",
"type": "DATS"
}
]
}
],
"out_of_scope": [
"{{P}}BOOK",
"{{P}}SALE"
],
"hidden_tests": [
{
"type": "CLAS",
"name": "{{P}}T20_HIDDEN",
"file": "hidden/t20_hidden.clas.abap",
"description": "T20 hidden tests"
}
],
"reference": [
{
"type": "DDLS",
"name": "{{P}}I_BOOK_REVENUE",
"file": "reference/i_book_revenue.ddls.asddls",
"description": "Book revenue in a period"
},
{
"type": "CLAS",
"name": "{{P}}T20_TEST",
"file": "reference/t20_test.clas.abap",
"description": "T20 own tests"
}
],
"craft_checks": [],
"base_task": "G0020",
"input_style": "incomplete",
"tool_schema": "generic_v0"
}