136 lines
58 KiB
Markdown
136 lines
58 KiB
Markdown
# Acceptance Test Map
|
|
|
|
The Gherkin features under [features/](features/) are verified by JUnit tests, not by a Cucumber runner.
|
|
This map links every requirement ID to its tests and status.
|
|
`FeatureFilesTest` parses the features and fails when an ID is missing here or named here without a feature.
|
|
|
|
| ID | Feature | Tests | Status |
|
|
| --------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
| MC-001 | 01-metric | `MethodEvaluatorTest.scoreFollowsTheFormula` (one case per row) | passing |
|
|
| MC-002 | 01-metric | `MethodEvaluatorTest.onlyNonEligibleMutantsGiveNoScore` | passing (core); report visibility in step 5 |
|
|
| MC-003 | 01-metric | `MethodEvaluatorTest.methodWithoutResultsIsNotShownAsWellTested` | passing (core); report in step 5 |
|
|
| MC-004 | 01-metric | `MethodEvaluatorTest.negativeKilledCountIsRejected`, `.negativeComplexityIsRejected`, `.complexityZeroForAScoredMethodIsRejected` | passing |
|
|
| MC-005 | 02-status-policy | `MethodEvaluatorTest.uncoveredMutantsStayInTheDenominator` | passing |
|
|
| MC-006 | 02-status-policy | `MethodEvaluatorTest.excludedStatusesDoNotRaiseTheTestStrength` (one case per row) | passing |
|
|
| MC-007 | 02-status-policy | `MethodEvaluatorTest.ambiguousFinalResultsPreventARegularScore` (one case per row) | passing under `strict-v1`; the default `timeouts-killed-v1` counts `TIMED_OUT` as killed (ADR 0006, `TimeoutsKilledV1Test`) |
|
|
| MC-008 | 03-complexity-and-identity | `JacocoComplexityTest.totalComplexityWithoutExecutionData`, `PitWalkingSkeletonTest.noExtraTestRunAndNoJacocoExecutionData` | passing |
|
|
| MC-009 | 03-complexity-and-identity | `JacocoComplexityTest.sameComplexitiesWithoutDebugInformation` | passing (adapter level, compiled with `-g` and `-g:none`) |
|
|
| MC-010 | 03-complexity-and-identity | `JacocoComplexityTest.overloadsStaySeparate`, `JoinTest.overloadsUseOnlyTheirOwnComplexityAndMutants` | passing |
|
|
| MC-011 | 03-complexity-and-identity | `JoinTest.resultsOfAnUnreadableClassAreComplexityUnavailable`, `InventoryBuilderTest.aSelectedClassWithoutClassFileMakesTheScopeIncomplete`, `GateTest.missingComplexityIsAnAnalysisError` | passing |
|
|
| MC-012 | 03-complexity-and-identity | `InventoryBuilderTest.everyMethodWithABodyOfASelectedClassIsInTheInventory`, `PitWalkingSkeletonTest.aClassWithoutAnyResultBlockStaysInTheInventory` | passing |
|
|
| MC-013 | 03-complexity-and-identity | `MutationCrapListenerTest.anExcludedMethodKeepsItsResultsButLeavesTheEvaluation`, `PitWalkingSkeletonTest.theOptionsFromPluginConfigurationTakeEffect`, `ExclusionRulesTest`, `GateTest.excludedMethodsTakeNoPart` | passing |
|
|
| MC-014 | 04-pit-lifecycle | `MutationCrapListenerTest.severalBlocksOfOneClassAreMerged`, `MutantAggregatorTest.resultsOfSeveralBlocksAddUp` | passing |
|
|
| MC-015 | 04-pit-lifecycle | `MutationCrapListenerTest.orderOfBlocksDoesNotChangeTheReport`, `MutantAggregatorTest.orderDoesNotMatter` | passing |
|
|
| MC-016 | 04-pit-lifecycle | `MutationCrapListenerTest.repeatedResultIsCountedOnce`, `MutantAggregatorTest.repeatedIdenticalResultsCountOnce` | passing |
|
|
| MC-017 | 04-pit-lifecycle | `MutationCrapListenerTest.contradictingResultsMakeTheMethodInconclusive`, `MutantAggregatorTest.contradictingFinalResultsAreNotLastWriteWins`, `MethodEvaluatorTest.contradictedMutantsMakeTheMethodInconclusive` | passing |
|
|
| MC-018 | 04-pit-lifecycle | `PitWalkingSkeletonTest`: `theNormalPitReportsAreWrittenAlongside`, `pitRanItsAnalysisOnce`, `noExtraTestRunAndNoJacocoExecutionData`, `everyMutantOfPitsOwnReportIsCountedExactlyOnce`, `theMarkdownReportAndTheConsoleSummaryAreWritten` | passing |
|
|
| MC-019 | 05-reports-and-gate | `GateTest.withoutLimitTheGateIsInactive`, `GateFunctionalTest.withoutLimitTheReportsAreWrittenAndNothingFails` | passing |
|
|
| MC-020 | 05-reports-and-gate | `GateTest.onlyARealExcessViolates` (one case per row), `MutationCrapTest.equalityPassesTheLimit`, `GateFunctionalTest.aLimitAboveTheScorePasses` | passing |
|
|
| MC-021 | 05-reports-and-gate | `GateTest.theExactValueIsCompared`, `MutationCrapTest.comparisonUsesTheExactValue`, `GateFunctionalTest.theRoundedValueAsLimitFailsAndTheReportsStay` | passing |
|
|
| MC-022 | 05-reports-and-gate | `GateTest`: `inconclusiveIsAnAnalysisError`, `missingComplexityIsAnAnalysisError`, `incompleteScopeIsAnAnalysisError`, `missingOrUnreadableReportIsAnAnalysisError`, `unsupportedSchemaVersionIsAnAnalysisError`; `GateFunctionalTest.aMissingReportIsAnAnalysisError` | passing |
|
|
| MC-023 | 05-reports-and-gate | `GateTest.emptyEvaluationFails`, `GateFunctionalTest.anEmptyEvaluationFails` | passing |
|
|
| MC-024 | 05-reports-and-gate | `GateTest.emptyEvaluationCanBeAllowed`, `GateFunctionalTest.anEmptyEvaluationCanBeAllowed` | passing |
|
|
| MC-025 | 05-reports-and-gate | `GateFunctionalTest.theRoundedValueAsLimitFailsAndTheReportsStay` | passing |
|
|
| MC-026 | 05-reports-and-gate | `MutationCrapListenerTest.theReportIsSelfDescribingAndSchemaValid`, `PitWalkingSkeletonTest.theReportConformsToTheShippedSchema`, `ReportContractTest` | passing |
|
|
| MC-027 | 06-gradle-integration | `IntegrationTestsFunctionalTest.pitUsesBothSourceSetsAndNoTestTaskRuns` | passing |
|
|
| MC-028 | 06-gradle-integration | `MultiProjectFunctionalTest.eachSubprojectGetsItsOwnReportAndContext` | passing |
|
|
| MC-029 | 06-gradle-integration | Kotlin DSL: every functional test consumes the plugins from `build/functional-test-repo`; Groovy DSL: `GroovyDslFunctionalTest` | passing |
|
|
| MC-030 | 06-gradle-integration | `GateFunctionalTest.aChangedLimitIsJudgedWithoutAnotherPitRun`, `.theRoundedValueAsLimitFailsAndTheReportsStay` | passing |
|
|
| MC-031 | 06-gradle-integration | `GateFunctionalTest.aFailedPitRunDoesNotUseAnOlderReport`, `MutationCrapListenerTest.runStartReplacesBothReportsWithAMarkerThatIsNoResult` | passing |
|
|
| MC-032 | 04-pit-lifecycle | `ProgressTest.aLineNamesTheEstimatedTotal`, `.atMostOneLineAMinute`, `.aClassCountsOnce`, `MutationCrapListenerTest.progressEstimatesTheTotalFromThePreviousReport`, `.progressCountsFromPitsNanoTimeStart` | passing |
|
|
| MC-033 | 04-pit-lifecycle | `ProgressTest.withoutPreviousRunNoTotal`, `.noTotalFromUnfinishedOrUnreadableReports`, `.totalOfAFinishedReport`, `MutationCrapListenerTest.progressWithoutTotalAfterAnUnfinishedRun` | passing |
|
|
| MC-034 | 04-pit-lifecycle | `ProgressTest.moreMutantsThanBefore` | passing |
|
|
| MC-035 | 04-pit-lifecycle | `ProgressTest.theLastLine`, `MutationCrapListenerTest.theConsoleGetsAFewLinesAndThePathToTheReports` | passing |
|
|
| MC-CC-001 | 07-codecharta | `BuildingsTest.oneBuildingPerTopLevelClass`, `CodeChartaExportTest.classesOutsideThePitRunAreGreyBuildings`, `CodeCityTest.packagesBecomeNestedFolders`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-002 | 07-codecharta | `RealLinesTest.anEntityCountsItsAnnotationsAndFieldsButNoGeneratedCode`, `.commentMarkersInLiteralsAreText`, `.textBlockLinesAreCode`, `CodeChartaExportTest.theReportAndTheOriginalClassFileMakeTheCity`, `CodeChartaFunctionalTest.theMetricsComeFromTheReport` | passing |
|
|
| MC-CC-003 | 07-codecharta | `BuildingsTest.complexityIsTheSum`, `.aMissingComplexityGivesAPartialSum`, `CodeChartaFunctionalTest.theMetricsComeFromTheReport` | passing |
|
|
| MC-CC-004 | 07-codecharta | `BuildingsTest.mutationCrapIsTheExactMaximum`, `CodeCityTest.mutationCrapIsRoundedAsInTheReport`, `CodeChartaFunctionalTest.theMetricsComeFromTheReport` | passing |
|
|
| MC-CC-005 | 07-codecharta | `BuildingsTest.withoutScoredMethodNoMutationCrap`, `CodeCityTest.aMissingValueIsOmitted`, `CodeChartaFunctionalTest.aClassWithoutScoredMethodHasNoMutationCrap` | passing |
|
|
| MC-CC-006 | 07-codecharta | `ClassReferencesTest.signaturesAnnotationsCatchAndLiteralsAreUses`, `LevelizationTest.aCycleIsTwoCyclicEdgesOneOfThemUpwards`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-007 | 07-codecharta | `ClassReferencesTest.distinctThingsUsedAreCounted`, `DependenciesTest.usesOfOnePairBecomeOneEdge` | passing |
|
|
| MC-CC-008 | 07-codecharta | `LevelizationTest.aCycleIsTwoCyclicEdgesOneOfThemUpwards`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-009 | 07-codecharta | `DependenciesTest.usesOfClassesWithoutBuildingAndWithinOneBuildingAreDropped`, `ClassReferencesTest.theInnerClassesAttributeIsNoUse` | passing |
|
|
| MC-CC-010 | 07-codecharta | `CodeCityTest.theCommitAndTheLinksAreWritten`, `CodeChartaExportTest.aTemplateLinksTheBuildings`, `CodeChartaFunctionalTest.inAGitCheckoutTheCityNamesTheCommitAndLinksTheSources` | passing |
|
|
| MC-CC-011 | 07-codecharta | `SourceLinksTest`, `BuildingsTest.theLinkLineIsTheHotspot`, `CodeChartaExportTest.aTemplateLinksTheBuildings`, `.aTemplateWithoutCommitStopsTheExport`, `.aClassWithoutCodeIsLinkedAtLineOne`, `CodeChartaFunctionalTest.inAGitCheckoutTheCityNamesTheCommitAndLinksTheSources` | passing |
|
|
| MC-CC-012 | 07-codecharta | `CodeCityTest.theOrderOfTheInputDoesNotMatter`, `LevelizationTest.theOrderOfTheDependenciesDoesNotMatter`, `CodeChartaFunctionalTest.aSecondExportGivesTheSameBytes` | passing |
|
|
| MC-CC-013 | 07-codecharta | `CodeCityTest.theDocumentPassesTheViewersChecks`, `LevelizationTest.packagesGetLevelsAndOnlyTheFeedbackEdgePointsUpwards`, `.theContractCatchesWhatTheViewerRefusesOrIgnores`, `CodeChartaExportTest.theReportAndTheOriginalClassFileMakeTheCity`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-014 | 07-codecharta | `BuildingsTest.inconclusiveMethodsAreFlagged`, `CodeChartaExportTest.inconclusiveMethodsAreNamedInAWarning` | passing |
|
|
| MC-CC-015 | 07-codecharta | `BuildingsTest.nestedClassesBelongToTheirTopLevelClass`, `.topLevelNames`, `CodeChartaFunctionalTest.theMetricsComeFromTheReport` | passing |
|
|
| MC-CC-016 | 07-codecharta | `CodeChartaExportTest.aChangedClassFileStopsTheExport`, `.aMissingClassFileStopsTheExport`, `CodeChartaFunctionalTest.classFilesCompiledAfterThePitRunStopTheExport` | passing |
|
|
| MC-CC-017 | 07-codecharta | `CodeCityTest.chainsOfSingleFoldersAreCompacted` | passing |
|
|
| MC-CC-018 | 07-codecharta | `CodeCityTest.maximaAreRelativeEverythingElseAbsolute` | passing |
|
|
| MC-CC-019 | 07-codecharta | `RealLinesTest.anEntityCountsItsAnnotationsAndFieldsButNoGeneratedCode` | passing |
|
|
| MC-CC-020 | 07-codecharta | `JacocoLinesTest.onlyLinesWithInstructionsCount`, `BuildingsTest.locCountsDistinctLinesOfCountedMethods`, `.withoutLineInformationLocIsMissingNotZero` | passing |
|
|
| MC-CC-021 | 07-codecharta | `CodeChartaExportTest.withoutSourceFileNoRloc` | passing |
|
|
| MC-CC-022 | 07-codecharta | `CodeChartaExportTest.classesOutsideThePitRunAreGreyBuildings`, `CodeCityPageTest.thePageExplainsHowUnscoredClassesTurnGrey` | passing |
|
|
| MC-CC-023 | 07-codecharta | `CodeChartaExportTest.classesOutsideThePitRunAreGreyBuildings` | passing |
|
|
| MC-CC-024 | 07-codecharta | `CodeChartaExportTest.classesOutsideThePitRunAreGreyBuildings`, `ExclusionRulesTest.onlyClassRulesExcludeAClassAsAWhole`, `CodeChartaFunctionalTest.aClassCanBeLeftOutOfTheCity` | passing |
|
|
| MC-CC-025 | 07-codecharta | `CodeCityPageTest.thePageLinksTheViewerWithTheFileAndTheMapping`; the script itself was tried in a browser (PR#18) | passing |
|
|
| MC-CC-026 | 07-codecharta | `CodeCityPageTest.byDefaultThePageLinksThePatchedViewer`, `.aConfiguredViewerIsLinked`, `.aViewerThatIsNoHttpUrlIsRefused`, `CodeChartaFunctionalTest.theViewerOfThePageIsConfigurable` | passing |
|
|
| MC-CC-027 | 07-codecharta | `LevelizationTest.packagesGetLevelsAndOnlyTheFeedbackEdgePointsUpwards`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-028 | 07-codecharta | `LevelizationTest.withoutLevelizationTheOriginalViewerAccepts`, `CodeChartaFunctionalTest.withoutLevelizationTheOriginalViewerAccepts` | passing |
|
|
| MC-CC-029 | 07-codecharta | `CodeCityPageTest.theLinkShowsRedShortlyBeforeTheLimit`, `.withoutLimitTheLinkSetsFiveAndNine`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-030 | 07-codecharta | `CodeCityPageTest.redFromCanBeSet`, `.aRatchetKeepsYellow`, `.redFromAboveTheLimitIsRefused`, `CodeChartaFunctionalTest.whereRedStartsIsConfigurable` | passing |
|
|
| MC-CC-031 | 07-codecharta | `CodeCityPageTest.yellowFromCanBeSet`, `.yellowFromAboveRedIsRefused`, `CodeChartaFunctionalTest.whereRedStartsIsConfigurable` | passing |
|
|
| MC-CC-032 | 07-codecharta | `CodeCityScenariosTest.oneScenarioPerView`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-033 | 07-codecharta | `CodeCityScenariosTest.withoutLimitCouplingHasNoBand`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-034 | 07-codecharta | `CodeCityPageTest.theLinkHandsTheViewerTheScenarios`; applying the scenarios: the fork of the viewer (`mihoe/scenario-url-param`) | passing |
|
|
| MC-CC-035 | 07-codecharta | `CodeCityTest.theCityShowsTheChangeRisk`, `CodeCityScenariosTest.changeRiskIsTheFourthScenario`, `CodeCityPageTest.thePageOpensTheCityByChangeRisk`, `CodeChartaFunctionalTest.aRealBuildWritesAValidCity` | passing |
|
|
| MC-CC-036 | 07-codecharta | `CodeCityPageTest.thePageLeadsWithTheFourViews` | passing |
|
|
| MC-CK-001 | 08-cohesion-coupling | `DesignAnalysisTest.twoIndependentPartsAreTwoGroups` | passing |
|
|
| MC-CK-002 | 08-cohesion-coupling | `DesignAnalysisTest.constructorsGeneratedAndStaticMethodsConnectNothing` | passing |
|
|
| MC-CK-003 | 08-cohesion-coupling | `DesignAnalysisTest.callsGettersAndLambdasConnect` | passing |
|
|
| MC-CK-004 | 08-cohesion-coupling | `DesignAnalysisTest.nestedClassesCountForTheirTopLevelClass` | passing |
|
|
| MC-CK-005 | 08-cohesion-coupling | `DesignAnalysisTest.couplingCountsTheOtherTopLevelClasses` | passing |
|
|
| MC-CK-006 | 08-cohesion-coupling | `MutationCrapListenerTest.theReportCarriesCohesionAndCouplingOfEveryClass`, `GateTest` (schema version 2, since 0.22.0 3) | passing |
|
|
| MC-CK-007 | 08-cohesion-coupling | `DesignAnalysisTest.recordComponentAccessorsAreGenerated` | passing |
|
|
| MC-CK-008 | 08-cohesion-coupling | `CodeCityTest.theCityShowsCohesionAndCoupling`, `CodeChartaFunctionalTest.theMetricsComeFromTheReport` | passing |
|
|
| MC-CK-009 | 08-cohesion-coupling | `CodeCityPageTest.thePageOpensTheCityByCohesionOrCoupling` | passing |
|
|
| MC-CK-010 | 08-cohesion-coupling | `DesignAnalysisTest.methodsWithoutStateDoNotCount`, `MutationCrapListenerTest.theReportCarriesCohesionAndCouplingOfEveryClass` | passing |
|
|
| MC-CK-011 | 08-cohesion-coupling | `GateTest.cohesionAndCouplingHaveLimitsOfTheirOwn`, `GateFunctionalTest.cohesionAndCouplingLimitsReachTheGate` | passing |
|
|
| MC-CK-012 | 08-cohesion-coupling | `GateTest.aDimensionWithoutALimitIsOnlyReported`, `.classLimitsNeedTheSectionClasses`, `GateFunctionalTest.cohesionAndCouplingLimitsReachTheGate` | passing |
|
|
| MC-CR-001 | 09-change-risk | `ChangeRiskTest.isMutationCrapOverTheWholeClass`, `ChangeRisksTest.sumsTheMethodsOfTheClass`, `JsonReportTest.theClassEntryCarriesTheChangeRisk` | passing |
|
|
| MC-CR-002 | 09-change-risk | `ChangeRiskTest.cohesionAndCouplingRaiseTheBase`, `ChangeRisksTest.takesCohesionAndCouplingOfTheClass` | passing |
|
|
| MC-CR-003 | 09-change-risk | `ChangeRisksTest.onlyScoredMethodsOfTheTopLevelClassAndItsNestedClassesCount`, `ChangeRiskTest.aClassWithoutLcom4CountsAsCohesive` | passing |
|
|
| MC-CR-004 | 09-change-risk | `ChangeRisksTest.anUnclearMethodVoidsTheChangeRisk`, `JsonReportTest.theClassEntryCarriesTheChangeRisk` | passing |
|
|
| MC-CR-005 | 09-change-risk | `GateTest.changeRiskIsNotJudged` | passing |
|
|
| MC-CR-006 | 09-change-risk | `MarkdownReportTest.theTenClassesWithTheHighestChangeRisk` | passing |
|
|
| MC-SV-001 | 10-structure-view | `StructurePageTest.thePageLoadsNothingFromElsewhere`, `CodeChartaFunctionalTest.theExportWritesTheStructurePage` | passing |
|
|
| MC-SV-002 | 10-structure-view | `StructurePageTest.thePageStartsAtTheTopFolder`, `StructurePageBrowserTest.thePageStartsAtTheTopPackage` | passing |
|
|
| MC-SV-003 | 10-structure-view | `StructurePageBrowserTest.aClickOpensAPackageAndTheBreadcrumbLeadsBack` | passing |
|
|
| MC-SV-004 | 10-structure-view | `StructurePageBrowserTest.usedByOnTopDependsOnAtTheBottom` | passing |
|
|
| MC-SV-005 | 10-structure-view | `StructurePageBrowserTest.redMeansInACycle` | passing |
|
|
| MC-SV-006 | 10-structure-view | `StructurePageBrowserTest.aPackageCycleShowsItsClasses` | passing |
|
|
| MC-SV-007 | 10-structure-view | `StructurePageBrowserTest.fillByLcom4HeightByComplexity` | passing |
|
|
| MC-SV-008 | 10-structure-view | `StructurePageBrowserTest.tooltipsExplainValuesAndColours` | passing |
|
|
| MC-SV-009 | 10-structure-view | `StructurePageBrowserTest.theStartPageListsTheCycles` | passing |
|
|
| MC-SV-010 | 10-structure-view | `StructurePageTest.theLevelsAndTheFlagsAreThoseOfLevelization`, `.theCyclesAreTheComponentsOfLevelization`, `CodeChartaExportTest.withoutLevelizationThePageStillHasTheCycles` | passing |
|
|
| MC-SV-011 | 10-structure-view | `StructurePageTest.theSameInputGivesTheSameBytes` | passing |
|
|
| MC-SV-012 | 10-structure-view | `CodeCityPageTest.theStructureButtonIsAlwaysVisible` | passing |
|
|
| MC-SV-013 | 10-structure-view | `StructurePageTest.withoutJavaScriptASentenceSaysWhy`, `StructurePageBrowserTest.withoutJavaScriptASentenceSaysWhy` | passing |
|
|
| MC-SV-014 | 10-structure-view | `MatrixPageTest.theMatrixLoadsNothingFromElsewhere`, `CodeChartaFunctionalTest.theExportWritesTheMatrixPage` | passing |
|
|
| MC-SV-015 | 10-structure-view | `MatrixPageBrowserTest.theMatrixStartsWithTheTopPackagesChildren` | passing |
|
|
| MC-SV-016 | 10-structure-view | `MatrixPageBrowserTest.aPackageOpensInPlaceAndCloses` | passing |
|
|
| MC-SV-017 | 10-structure-view | `MatrixPageBrowserTest.cellsInACycleAreRed` | passing |
|
|
| MC-SV-018 | 10-structure-view | `MatrixPageBrowserTest.theColumnHeadsNameThePackages` | passing |
|
|
| MC-SV-019 | 10-structure-view | `MatrixPageBrowserTest.theColourFieldShowsLcom4OrChangeRisk` | passing |
|
|
| MC-SV-020 | 10-structure-view | `MatrixPageBrowserTest.theOpenPackagesAreInTheUrl` | passing |
|
|
| MC-SV-021 | 10-structure-view | `MatrixPageBrowserTest.expandAllAndCollapseAll` | passing |
|
|
| MC-SV-022 | 10-structure-view | `MatrixPageTest.bothPagesHaveTheTabs`, `CodeCityPageTest.theMatrixButtonIsAlwaysVisible` | passing |
|
|
| MC-SV-023 | 10-structure-view | `MatrixPageTest.theSameInputGivesTheSameBytes` | passing |
|
|
| MC-SV-024 | 10-structure-view | `MatrixPageTest.withoutJavaScriptASentenceSaysWhy`, `MatrixPageBrowserTest.withoutJavaScriptASentenceSaysWhy` | passing |
|
|
| MC-SV-025 | 10-structure-view | `MatrixPageBrowserTest.expandAllIsOffAbove500Classes` | passing |
|
|
| MC-SV-026 | 10-structure-view | `LevelizationTest.twoSubPackagesInACycleRunAcrossTheHierarchy`, `.aClassCycleInsideOnePackageIsNoPackageCycle`, `StructurePageTest.eachEdgeNamesItsPackageCycle`, `StructurePageBrowserTest.everyEdgeOfAPackageCycleAcrossTheHierarchyIsRed` | passing |
|
|
| MC-SV-027 | 10-structure-view | `LevelizationTest.oneSubPackageAndItsFolderRunAlongTheHierarchy`, `StructurePageTest.eachEdgeNamesItsPackageCycle`, `StructurePageBrowserTest.aPackageCycleAlongTheHierarchyIsAmber` | passing |
|
|
| MC-SV-028 | 10-structure-view | `MatrixPageBrowserTest.cellsOfACycleAlongTheHierarchyAreAmber` | passing |
|
|
| MC-SV-029 | 10-structure-view | `StructurePageBrowserTest.theStartPageCountsBothKindsOfPackageCycles` | passing |
|
|
| MC-SV-030 | 10-structure-view | `CodeCityPageTest.thePageHasTheStyleAndTheTabsOfTheStructurePages` | passing |
|
|
| MC-SV-031 | 10-structure-view | `StructurePageBrowserTest.theLinesOfAWrappedLevelHaveRoomAndAreStaggered` | passing |
|
|
| MC-KT-001 | 11-kotlin-jvm | `KotlinBasicTest.ordinaryMethodsAndOverloadsAreScoredApart` | passing (optional-kotlin) |
|
|
| MC-KT-002 | 11-kotlin-jvm | `KotlinBasicTest.aLambdaIsScoredApartFromItsEnclosingFunction` | passing (optional-kotlin) |
|
|
| MC-KT-003 | 11-kotlin-jvm | `KotlinBasicTest.generatedMethodsAreMarkedWithTheirReason` | passing (optional-kotlin) |
|
|
| MC-KT-004 | 11-kotlin-jvm | `KotlinBasicTest.anInlineFunctionsOwnBodyIsNeverCovered` | passing (optional-kotlin) |
|
|
| MC-KT-005 | 11-kotlin-jvm | `KotlinBasicTest.aSuspendFunctionCountsTheMutantsOfItsStateMachine` | passing (optional-kotlin) |
|
|
|
|
Unit tests live under `*/src/test/java/`, functional tests under `*/src/functionalTest/java/` of `werkcrappit-pit` and `werkcrappit-gradle-plugin`.
|