Stufe 4c (#764): Bezeichner auf Englisch - Typen, Methoden, Felder, Parameter, Locals, Testnamen

Mit Roslyn umbenannt (Verweise folgen, Zeichenketten bleiben unberuehrt).
Nicht umbenannt, weil gespeichert oder ueber die API gebunden (Stufe 4e):
Properties, Record-Parameter, Enum-Member sowie die Parameter der
Endpunkt-Handler (Routen-/Query-Bindung ueber den Namen). Die JSON-Felder
anonymer Objekte bleiben ausdruecklich benannt (JsonFilter: pfad).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-10-04 13:18:43 +02:00
co-authored by Claude Opus 5.5
parent 837a634a22
commit 77062facc9
190 changed files with 4813 additions and 4813 deletions
@@ -48,7 +48,7 @@ public sealed class ContextCompactorTests
[InlineData(6)]
[InlineData(7)]
[InlineData(8)]
public async Task Compaction_erhaelt_gueltige_Sequenz_bei_beliebiger_Toolzyklus_Laenge(int toolCallsPerCycle)
public async Task Compaction_keeps_a_valid_sequence_for_any_tool_cycle_length(int toolCallsPerCycle)
{
// Depending on the number of tool calls the "last 6 messages" boundary falls
// at a different place in the cycle. At least one variant hits right in the middle.
@@ -65,7 +65,7 @@ public sealed class ContextCompactorTests
}
[Fact]
public async Task Compaction_trennt_Toolantwort_nie_von_ihrem_Aufruf()
public async Task Compaction_never_separates_a_tool_answer_from_its_call()
{
// Constructed on purpose: the tail of 6 messages begins exactly at a tool answer.
var (compactor, _) = CreateCompactor();
@@ -101,7 +101,7 @@ public sealed class ContextCompactorTests
// ═══════════════════════════════════════════════════════════
[Fact]
public async Task Compaction_behaelt_den_SystemPrompt_an_Position_0()
public async Task Compaction_keeps_the_SystemPrompt_at_position_0()
{
const string systemPrompt = "Du bist ein sehr spezifischer Testagent.";
var (compactor, _) = CreateCompactor();
@@ -115,7 +115,7 @@ public sealed class ContextCompactorTests
}
[Fact]
public async Task Compaction_erfindet_keinen_SystemPrompt_wenn_keiner_da_war()
public async Task Compaction_does_not_invent_a_SystemPrompt_when_there_was_none()
{
var (compactor, _) = CreateCompactor();
var messages = Conversation.Start(systemPrompt: null).Repeat(6).Build();
@@ -130,7 +130,7 @@ public sealed class ContextCompactorTests
// ═══════════════════════════════════════════════════════════
[Fact]
public async Task Compaction_laesst_Nachrichten_unveraendert_wenn_die_Zusammenfassung_fehlschlaegt()
public async Task Compaction_leaves_messages_unchanged_when_the_summary_fails()
{
var client = new FakeChatClient().Throws(new HttpRequestException("API nicht erreichbar"));
var compactor = new ContextCompactor(client, TestLogging.Factory);
@@ -144,7 +144,7 @@ public sealed class ContextCompactorTests
}
[Fact]
public async Task Compaction_laesst_Nachrichten_unveraendert_wenn_die_Zusammenfassung_leer_ist()
public async Task Compaction_leaves_messages_unchanged_when_the_summary_is_empty()
{
var client = new FakeChatClient().AlwaysRespondsWithText(" ");
var compactor = new ContextCompactor(client, TestLogging.Factory);
@@ -162,7 +162,7 @@ public sealed class ContextCompactorTests
// ═══════════════════════════════════════════════════════════
[Fact]
public async Task Pruning_kuerzt_lange_Toolergebnisse_ausserhalb_des_geschuetzten_Endes()
public async Task Pruning_shortens_long_tool_results_outside_the_protected_end()
{
var (compactor, _) = CreateCompactor();
var messages = Conversation.Start()
@@ -178,7 +178,7 @@ public sealed class ContextCompactorTests
}
[Fact]
public async Task Pruning_laesst_kurze_Toolergebnisse_unveraendert()
public async Task Pruning_leaves_short_tool_results_unchanged()
{
var (compactor, _) = CreateCompactor();
var messages = Conversation.Start()
@@ -196,22 +196,22 @@ public sealed class ContextCompactorTests
// ═══════════════════════════════════════════════════════════
[Fact]
public void EstimateTokens_waechst_monoton_mit_dem_Inhalt()
public void EstimateTokens_grows_monotonically_with_the_content()
{
var klein = Conversation.Start().Repeat(1).Build();
var mittel = Conversation.Start().Repeat(5).Build();
var gross = Conversation.Start().Repeat(20).Build();
var small = Conversation.Start().Repeat(1).Build();
var average = Conversation.Start().Repeat(5).Build();
var large = Conversation.Start().Repeat(20).Build();
var a = ContextCompactor.EstimateTokens(klein);
var b = ContextCompactor.EstimateTokens(mittel);
var c = ContextCompactor.EstimateTokens(gross);
var a = ContextCompactor.EstimateTokens(small);
var b = ContextCompactor.EstimateTokens(average);
var c = ContextCompactor.EstimateTokens(large);
a.ShouldBeLessThan(b);
b.ShouldBeLessThan(c);
}
[Fact]
public async Task Unterhalb_der_Schwelle_wird_kein_ApiCall_ausgeloest()
public async Task Below_the_threshold_no_ApiCall_is_triggered()
{
// Important for the budget: compaction must not fire up a model unnecessarily.
var (compactor, client) = CreateCompactor();
@@ -224,7 +224,7 @@ public sealed class ContextCompactorTests
}
[Fact]
public async Task Compaction_reduziert_die_Nachrichtenzahl_deutlich()
public async Task Compaction_reduces_the_message_count_clearly()
{
var (compactor, _) = CreateCompactor();
var messages = Conversation.Start().Repeat(15).Build();