?? ?? - AgentLoopService? ?? ?? ? ?? ??? ?? ??? ??? ?? ??? ? ??? ??? ??? ?? - XLSX dashboard workbook? PPT deck? ?? ?? ??? ??? ?? dashboard, storyline ?? ????? ? ? ????? ?? ?? ???? - AgentQueuedCommandProjector? ??? queued command ??? queued_input_interrupt, queue_notification, queue_resume, queued_prompt ?? ???? thinking/user ???? ???? ?? helper? ?? - AgentLoopService? drain? ? ??? ?? switch? ?? ?? projector ??? ???? ??? ??? - ArtifactQualityReviewService? dashboard sheet? KPI, trend, decision ?? ?? ??? ???? workbook review ??? ?? - ArtifactRepairGuideService? ? dashboard ??? core story ?? ?? ???? ????? ?? - DeckQualityReviewService? storyline? Options, Roadmap, Appendix? ????? ?? ????? ?? ? ?? ?? ??? ????? ?? - DeckRepairGuideService? storyline ?? ??? deck storyline ?? ???? ????? ?? - AgentQueuedCommandProjectorTests, DeckQualityReviewServiceTests, ArtifactQualityReviewServiceTests, ArtifactRepairGuideServiceTests, DeckRepairGuideServiceTests? ??? ??? ?? - README.md? docs/DEVELOPMENT.md? 2026-04-15 09:24 (KST) ?? ??? ?? ??? ?? ?? ?? - dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_doc_finish2\\ -p:IntermediateOutputPath=obj\\verify_loop_doc_finish2\\ : ?? 0 / ?? 0 - dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentQueuedCommandProjectorTests|AgentCommandQueueTests|ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|DeckQualityReviewServiceTests|DeckRepairGuideServiceTests|PptxSkillGoldenDeckTests|ExcelSkillDashboardSummaryTests" -p:OutputPath=bin\\verify_loop_doc_finish2_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_doc_finish2_tests\\ : ?? 25
74 lines
2.3 KiB
C#
74 lines
2.3 KiB
C#
using AxCopilot.Services.Agent;
|
|
using FluentAssertions;
|
|
using Xunit;
|
|
|
|
namespace AxCopilot.Tests.Services;
|
|
|
|
public class DeckRepairGuideServiceTests
|
|
{
|
|
[Fact]
|
|
public void BuildGuide_ShouldReturnNone_WhenNoIssues()
|
|
{
|
|
var report = new DeckQualityReport(92, ["Includes Recommendation"], [], []);
|
|
|
|
var guide = DeckRepairGuideService.BuildGuide(report);
|
|
|
|
guide.Should().Be("Deck repair guide: none");
|
|
}
|
|
|
|
[Fact]
|
|
public void BuildGuide_ShouldTranslateDeckIssuesIntoActionableGuidance()
|
|
{
|
|
var report = new DeckQualityReport(
|
|
61,
|
|
[],
|
|
[
|
|
new DeckReviewIssue("Executive Summary slide is missing.", DeckReviewSeverity.Critical),
|
|
new DeckReviewIssue("Slide 3: content density is high and should be simplified.", DeckReviewSeverity.Warning),
|
|
new DeckReviewIssue("Evidence slides such as charts, tables, or comparisons are limited.", DeckReviewSeverity.Warning),
|
|
],
|
|
[]);
|
|
|
|
var guide = DeckRepairGuideService.BuildGuide(report);
|
|
|
|
guide.Should().Contain("Executive Summary");
|
|
guide.Should().Contain("Reduce text density");
|
|
guide.Should().Contain("evidence");
|
|
}
|
|
|
|
[Fact]
|
|
public void BuildGuide_ShouldSurfaceAppendixAndHeadlineActions()
|
|
{
|
|
var report = new DeckQualityReport(
|
|
58,
|
|
[],
|
|
[
|
|
new DeckReviewIssue("Appendix or evidence slide is limited.", DeckReviewSeverity.Info),
|
|
new DeckReviewIssue("Found 2 duplicate headline(s).", DeckReviewSeverity.Warning)
|
|
],
|
|
[]);
|
|
|
|
var guide = DeckRepairGuideService.BuildGuide(report);
|
|
|
|
guide.Should().Contain("appendix");
|
|
guide.Should().Contain("distinct message");
|
|
}
|
|
|
|
[Fact]
|
|
public void BuildGuide_ShouldTranslateStorylineGapIntoConcreteAction()
|
|
{
|
|
var report = new DeckQualityReport(
|
|
63,
|
|
[],
|
|
[
|
|
new DeckReviewIssue("Storyline expects an options or comparison slide but none is present.", DeckReviewSeverity.Warning)
|
|
],
|
|
["Executive Summary", "Options"]);
|
|
|
|
var guide = DeckRepairGuideService.BuildGuide(report);
|
|
|
|
guide.Should().Contain("comparison slide");
|
|
guide.Should().Contain("storyline");
|
|
}
|
|
}
|