Skip to content

Commit 36c82a7

Browse files
Merge testimize-mcp-minimal-separate-methods into main
2 parents d24df93 + 52cdae5 commit 36c82a7

File tree

98 files changed

+7172
-471
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+7172
-471
lines changed

.claude/settings.local.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(mkdir:*)",
5+
"Bash(dotnet test:*)",
6+
"Bash(dotnet build:*)",
7+
"Bash(dir:*)",
8+
"Bash(findstr:*)",
9+
"Bash(del:*)"
10+
],
11+
"deny": [],
12+
"ask": []
13+
}
14+
}

.dockerignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
**/bin/
2+
**/obj/
3+
**/.vs/
4+
**/.vscode/
5+
**/node_modules/
6+
**/.git/
7+
**/.gitignore
8+
**/README.md
9+
**/*.md
10+
**/Dockerfile
11+
**/.dockerignore
12+
**/docker-compose.yml
13+
**/docker-compose.override.yml

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,3 +398,10 @@ FodyWeavers.xsd
398398

399399
# JetBrains Rider
400400
*.sln.iml
401+
402+
# Claude Code configuration
403+
CLAUDE.md
404+
405+
.claude
406+
.github
407+
/.claude

DiagramsEN/1. Use Case Diagrams/usecase-diagram1.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ actor "GitHub CI Server" as CI
88
actor "NuGet Gallery" as NuGet
99

1010
rectangle "Testimize Development Workflow" {
11-
usecase UC1 as "Клониране на репозиторито"
12-
usecase UC2 as "Създаване на feature branch"
13-
usecase UC3 as "Разработка и локални тестове"
14-
usecase UC4 as "Push към remote branch"
15-
usecase UC5 as "Създаване на Pull Request"
16-
usecase UC6 as "Одобрение на PR"
17-
usecase UC7 as "Merge към main"
18-
usecase UC8 as "CI билд и тестове (ci.yml)"
19-
usecase UC9 as "Създаване на нов git tag версия"
20-
usecase UC10 as "Одобрение на release"
21-
usecase UC11 as "Публикация в NuGet (publish-nuget.yml)"
11+
usecase UC1 as "Clone repository"
12+
usecase UC2 as "Create feature branch"
13+
usecase UC3 as "Development and local tests"
14+
usecase UC4 as "Push to remote branch"
15+
usecase UC5 as "Create Pull Request"
16+
usecase UC6 as "PR approval"
17+
usecase UC7 as "Merge to main"
18+
usecase UC8 as "CI build and tests (ci.yml)"
19+
usecase UC9 as "Create new git tag version"
20+
usecase UC10 as "Release approval"
21+
usecase UC11 as "Publish to NuGet (publish-nuget.yml)"
2222
}
2323

2424
Contributor --> UC1
@@ -35,7 +35,7 @@ CI --> UC11
3535
Contributor --> UC9
3636
UC9 --> UC10 : <<include>>
3737
UC10 --> UC11
38-
UC11 --> NuGet : "Публикуване на пакет"
38+
UC11 --> NuGet : "Publish package"
3939

4040
Maintainer --> UC6
4141
Maintainer --> UC10

DiagramsEN/2. Class Diagrams/class-diagram-1.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
'https://editor.plantuml.com/
2-
'Клас Диаграма 1: Как работи HybridArtificialBeeColonyTestCaseGenerator
2+
'Class Diagram 1: How HybridArtificialBeeColonyTestCaseGenerator works
33

44
@startuml
55
' === Визуален стил ===
-31.9 KB
Loading

DiagramsEN/3. Sequence Diagrams/sequence_diagram1.txt

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
'https://editor.plantuml.com/
2-
'Sequence Diagram 1– Генериране на тест кейсове с ABC генератора
2+
'Sequence Diagram 1 - Test Case Generation with Hybrid ABC Algorithm
33

44
@startuml
5-
' === Класически UML стил със силно визуално присъствие ===
5+
' === Classic UML style with strong visual presence ===
66
skinparam style strictuml
77
skinparam roundcorner 0
88
skinparam ArrowColor Black
@@ -19,58 +19,68 @@ participant outputStrategy as "outputStrategy : ITestCaseOutputGenerator"
1919
client -> generator : GenerateTestCases(methodName, parameters, category)
2020

2121
note right of generator
22-
Фаза 0: Извличане на стратегии от Settings
22+
Phase 0: Initialize strategies from Settings
2323
end note
2424

2525
generator -> settings : get_TestCaseGenerator()
2626
generator -> settings : get_TestCaseEvaluator()
2727
generator -> settings : get_OutputGenerator()
2828

2929
note right of generator
30-
Фаза 1: Генериране на начална популация
30+
Phase 1: Generate initial population
3131
end note
3232

3333
generator -> generatorStrategy : GenerateTestCases(parameters)
3434
generatorStrategy --> generator : HashSet<TestCase>
3535

3636
note right of generator
37-
Фаза 2: Оценка на началната популация
37+
Phase 2: Evaluate initial population
3838
end note
3939

4040
generator -> evaluatorStrategy : EvaluatePopulation(initialPopulation)
4141

42-
loop за всяко поколение
42+
loop for each generation (1 to TotalGenerations)
4343

4444
note right of generator
45-
Фаза 3: Мутация и подобрение
45+
Phase 3: Elite selection
4646
end note
4747

48-
generator -> generator : ApplyMutation()
48+
generator -> generator : SelectElitePopulation(evaluatedPopulation, eliteCount)
4949

5050
note right of generator
51-
Фаза 4: Преоценка
51+
Phase 4: Onlooker selection (if enabled)
5252
end note
5353

54-
generator -> evaluatorStrategy : EvaluatePopulation(mutatedPopulation)
54+
generator -> generator : MaintainDiversePopulationOnlookerSelection(nonElite, evaluated, eliteCount)
5555

5656
note right of generator
57-
Фаза 5: Селекция (Elite, Onlooker, Scout)
57+
Phase 5: Mutation with temperature control
5858
end note
5959

60-
generator -> generator : SelectEliteBees()
61-
generator -> generator : SelectOnlookerBees()
62-
generator -> generator : SelectScoutBees()
60+
generator -> generator : MutatePopulation(evaluatedPopulation, nonElite, parameters, currentGen)
61+
62+
note right of generator
63+
Phase 6: Scout phase (if currentGen >= threshold)
64+
end note
65+
66+
generator -> generator : PerformScoutPhaseIfNeeded(parameters, evaluated, nonElite, currentGen)
67+
68+
note right of generator
69+
Phase 7: Re-evaluate population
70+
end note
71+
72+
generator -> evaluatorStrategy : EvaluatePopulation(evaluatedPopulation)
6373

6474
end
6575

6676
note right of generator
67-
Фаза 6: Финална селекция
77+
Phase 8: Apply final selection ratio
6878
end note
6979

70-
generator -> generator : SelectFinalPopulation()
80+
generator -> generator : LimitFinalPopulationBasedOnSelectionRatio(evaluatedPopulation)
7181

7282
note right of generator
73-
Фаза 7: Генериране на изход
83+
Phase 9: Generate output (if output generator provided)
7484
end note
7585

7686
generator -> outputStrategy : GenerateOutput(methodName, finalTestCases, category)

DiagramsEN/3. Sequence Diagrams/sequence_diagram2.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
'https://editor.plantuml.com/
2-
'Sequence Diagram 2 - Конфигуриране и изпълнение чрез TestimizeEngine
2+
'Sequence Diagram 2 - Configuration and execution through TestimizeEngine
33

44
@startuml
5-
' === Класически UML стил със силно визуално присъствие ===
5+
' === Classic UML style with strong visual presence ===
66
skinparam style strictuml
77
skinparam roundcorner 0
88
skinparam ArrowColor Black
@@ -20,7 +20,7 @@ participant generator as "generator : HybridArtificialBeeColonyTestCaseGenerator
2020
participant outputGenerator as "outputGenerator : NUnitTestCaseOutputGenerator"
2121

2222
note over client, engine
23-
Фаза 1: Клиентът извиква конфигурация с делегати
23+
Phase 1: Client invokes configuration with delegates
2424
end note
2525

2626
client -> engine : Configure(parametersLambda, settingsLambda)
@@ -30,15 +30,15 @@ engine -> inputBuilder : new TestimizeInputBuilder()
3030
activate inputBuilder
3131

3232
note right of inputBuilder
33-
Извикване на AddText(...) чрез делегат
33+
Calling AddText(...) through delegate
3434
end note
3535

3636
inputBuilder -> paramBuilder : new ParameterBuilder<Text>
3737
paramBuilder -> valueBuilder : Valid("admin")
3838
valueBuilder -> paramBuilder : WithExpectedMessage("valid input")
3939

4040
note right of inputBuilder
41-
Build() се извиква вътрешно в AddText()
41+
Build() is called internally in AddText()
4242
end note
4343

4444
deactivate inputBuilder
@@ -48,7 +48,7 @@ engine -> builder : new TestSuiteBuilder(...)
4848
deactivate engine
4949

5050
note over client, generator
51-
Фаза 2: Генериране чрез DI и ABC алгоритъм
51+
Phase 2: Generation through DI and ABC algorithm
5252
end note
5353

5454
client -> builder : Generate()
@@ -62,7 +62,7 @@ generator -> generator : RunABCAlgorithm()
6262
generator -> outputGenerator : GenerateOutput(methodName, testCases, category)
6363

6464
note right of outputGenerator
65-
Извежда към Console и Clipboard
65+
Outputs to Console and Clipboard
6666
end note
6767

6868
generator --> builder : HashSet<TestCase>
Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
'https://editor.plantuml.com/
2-
'Sequence Diagram 3: Internal ABC Iterative Loop
2+
'Sequence Diagram 3: Simplified ABC Algorithm Internal Loop
33

44
@startuml
55
' === Classic UML style with strong visual presence ===
@@ -9,50 +9,54 @@ skinparam ArrowColor Black
99
skinparam ArrowFontColor Black
1010
skinparam sequenceMessageAlignment center
1111

12-
participant generator as "generator : HybridArtificialBeeColonyTestCaseGenerator"
13-
participant evaluator as "evaluator : ITestCaseEvaluator"
14-
participant randomizer as "randomizer : Random"
12+
participant generator as "ABC Generator"
13+
participant evaluator as "Fitness Evaluator"
14+
participant randomizer as "Random Selector"
1515

1616
note over generator
17-
Phase 1: Start RunABCAlgorithm()
17+
Phase 1: Initialize algorithm
1818
end note
1919

20-
generator -> generator : CreateInitialPopulation()
21-
generator -> evaluator : EvaluatePopulation(initialPopulation)
20+
generator -> generator : Generate initial test population
21+
generator -> evaluator : Evaluate initial population fitness
2222

2323
loop for each generation
2424

2525
note over generator
26-
Phase 2: Mutation of the population
26+
Phase 2: Preserve best solutions
2727
end note
2828

29-
generator -> randomizer : Select test cases for mutation
30-
generator -> generator : Apply mutations
29+
generator -> generator : Select elite population
3130

3231
note over generator
33-
Phase 3: Evaluation of the new population
32+
Phase 3: Exploration phase
3433
end note
3534

36-
generator -> evaluator : EvaluatePopulation(mutatedPopulation)
35+
generator -> randomizer : Select candidates for mutation
36+
generator -> generator : Apply mutations to non-elite
3737

3838
note over generator
39-
Phase 4: Check for stagnation and improvement
39+
Phase 4: Fitness assessment
4040
end note
4141

42-
generator -> generator : Check improvement
42+
generator -> evaluator : Evaluate mutated population
4343

44-
alt If no improvement
45-
generator -> generator : IncreaseStagnationCounter()
46-
else If improvement exists
47-
generator -> generator : UpdateBestPopulation()
44+
note over generator
45+
Phase 5: Diversity maintenance
46+
end note
47+
48+
alt Scout phase enabled and threshold reached
49+
generator -> generator : Identify stagnant solutions
50+
generator -> randomizer : Replace poor performers with new solutions
4851
end
4952

5053
end
5154

5255
note over generator
53-
Phase 5: Final selection
56+
Phase 6: Final optimization
5457
end note
5558

56-
generator -> generator : SelectFinalPopulation()
59+
generator -> generator : Apply final selection ratio
60+
generator -> generator : Return optimized test suite
5761

58-
@enduml
62+
@enduml

DiagramsEN/4. Communication Diagrams/communication_diagram1.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
'https://editor.plantuml.com/
2-
'Communication Diagram 1– Генериране на тест кейсове с ABC генератора
2+
'Communication Diagram 1 - Test case generation with ABC generator
33

44
@startuml
55

6-
' === Визуални настройки ===
6+
' === Visual settings ===
77
skinparam shadowing false
88
skinparam roundcorner 0
99
skinparam nodesep 100
1010
skinparam ranksep 220
1111
left to right direction
1212

13-
' === Участници с "име : Клас" (валидно UML 2.x) ===
13+
' === Participants with "name : Class" (valid UML 2.x) ===
1414
rectangle "client : Client" as client
1515
rectangle "generator : HybridArtificialBeeColonyTestCaseGenerator" as generator
1616
rectangle "settings : ABCGenerationSettings" as settings
1717
rectangle "generatorStrategy : ITestCaseGenerator" as generatorStrategy
1818
rectangle "evaluatorStrategy : ITestCaseEvaluator" as evaluatorStrategy
1919
rectangle "outputStrategy : ITestCaseOutputGenerator" as outputStrategy
2020

21-
' === Връзки и номерация ===
21+
' === Links and numbering ===
2222
client --> generator : 1. GenerateTestCases(...)
2323

2424
generator --> settings : 1.1 get_TestCaseGenerator()

0 commit comments

Comments
 (0)